3.18.53-stable review
Subsystems (2)
Greg Kroah-Hartman
maintainerPATCH 3/39 mtd: cfi: reduce stack size
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Arnd Bergmann <[email protected]>
commit d09957fbb4d0b059b3176b510540df69048ad170 upstream.
The cfi_staa_write_buffers function uses a large amount of kernel stack whenever CONFIG_MTD_MAP_BANK_WIDTH_32 is set, and that results in a warning on ARM allmodconfig builds:
drivers/mtd/chips/cfi_cmdset_0020.c: In function 'cfi_staa_write_buffers':drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
It turns out that this is largely a result of a suboptimal implementation of map_word_andequal(). Replacing this function with a straightforward one reduces the stack size in this function by exactly 200 bytes, shrinks the .text segment for this file from 27648 bytes to 26608 bytes, and makes the warning go away.
--- include/linux/mtd/map.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
include/linux/mtd/map.h +11 -1
@@ -309,7 +309,17 @@ static inline map_word map_word_or(strucreturn r; } -#define map_word_andequal (m, a, b, z) map_word_equal(m, z, map_word_and(m, a, b)) +static inline int map_word_andequal (struct map_info *map,map_word val1,map_word val2,map_word val3) +{ +int i; + +for (i =0 ; i <map_words (map); i++) { +if ((val1.x[i] & val2.x[i]) != val3.x[i]) +return 0 ; + } + +return 1 ; +}static inline int map_word_bitsset (struct map_info *map,map_word val1,map_word val2) {
Greg Kroah-Hartman
maintainerPATCH 4/39 ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ard Biesheuvel <[email protected]>
commit 5008efc83bf85b647aa1cbc44718b1675bbb7444 upstream.
The PJ4 inline asm sequence to write to cp15 cannot be built in Thumb-2 mode, due to the way it performs arithmetic on the program counter, so it is built in ARM mode instead. However, building C files in ARM mode under CONFIG_THUMB2_KERNEL is problematic, since the instrumentation performed by subsystems like ftrace does not expect having to deal with interworking branches.
Since the sequence in question is simply a poor man's ISB instruction, let's use a straight 'isb' instead when building in Thumb2 mode. Thumb2 implies V7, so 'isb' should always be supported in that case.
--- arch/arm/kernel/Makefile | 1 - arch/arm/kernel/pj4-cp0.c | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-)
arch/arm/kernel/Makefile +0 -1
@@ -84,7 +84,6 @@ obj-$(CONFIG_CPU_PJ4B) += pj4-cp0.o obj-$(CONFIG_IWMMXT) += iwmmxt.o obj-$(CONFIG_PERF_EVENTS) += perf_regs.o obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o perf_event_cpu.o -CFLAGS_pj4-cp0.o := -marm AFLAGS_iwmmxt.o := -Wa,-mcpu=iwmmxt obj-$(CONFIG_ARM_CPU_TOPOLOGY) += topology.o
arch/arm/kernel/pj4-cp0.c +4 -0
@@ -66,9 +66,13 @@ static void __init pj4_cp_access_write(u __asm__ __volatile__ ( "mcr p15, 0, %1, c1, c0, 2\n\t" +#ifdef CONFIG_THUMB2_KERNEL + "isb\n\t" +#else"mrc p15, 0, %0, c1, c0, 2\n\t" "mov %0, %0\n\t" "sub pc, pc, #4\n\t" +#endif :"=r" (temp) :"r" (value)); }
Greg Kroah-Hartman
maintainerPATCH 5/39 cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ben Hutchings <[email protected]>
commit 4cca0457686e4ee1677d69469e4ddfd94d389a80 upstream.
The switch that conditionally sets CPUPOWER_CAP_HAS_TURBO_RATIO and CPUPOWER_CAP_IS_SNB flags is missing a break, so all cores get both flags set and an assumed base clock of 100 MHz for turbo values.
References: https://bugs.debian.org/859978
--- tools/power/cpupower/utils/helpers/cpuid.c | 1 + 1 file changed, 1 insertion(+)
tools/power/cpupower/utils/helpers/cpuid.c +1 -0
@@ -156,6 +156,7 @@ out:*/ case 0x2C :/* Westmere EP - Gulftown */ cpu_info->caps |=CPUPOWER_CAP_HAS_TURBO_RATIO ; +break ;case 0x2A :/* SNB */ case 0x2D :/* SNB Xeon */ case 0x3A :/* IVB */
Greg Kroah-Hartman
maintainerPATCH 7/39 power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liam Breck <[email protected]>
commit 767eee362fd72bb2ca44cc80419ca4b38c6d8369 upstream.
The interrupt signal is TRIGGER_FALLING. This is is specified in the data sheet PIN FUNCTIONS: "The INT pin sends active low, 256us pulse to host to report charger device status and fault."
Also the direction can be seen in the data sheet Figure 37 "BQ24190 with D+/D- Detection and USB On-The-Go (OTG)" which shows a 10k pull-up resistor installed for the sample configurations.
--- drivers/power/bq24190_charger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/power/bq24190_charger.c +1 -1
@@ -1400,7 +1400,7 @@ static int bq24190_probe(struct i2c_clie ret =devm_request_threaded_irq (dev, bdi->irq,NULL , bq24190_irq_handler_thread, -IRQF_TRIGGER_RISING |IRQF_ONESHOT , +IRQF_TRIGGER_FALLING |IRQF_ONESHOT ,"bq24190-charger" , bdi);if (ret <0 ) {dev_err (dev,"Can't set up irq handler\n" );
Greg Kroah-Hartman
maintainerPATCH 8/39 power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Liam Breck <[email protected]>
commit e05ad7e0741ce0505e1df157c62b22b95172bb97 upstream.
pm_resume() does a register_reset() which clears charger host mode.
Fix by calling set_mode_host() after the reset.
--- drivers/power/bq24190_charger.c | 1 + 1 file changed, 1 insertion(+)
drivers/power/bq24190_charger.c +1 -0
@@ -1496,6 +1496,7 @@ static int bq24190_pm_resume(struct devipm_runtime_get_sync (bdi->dev);bq24190_register_reset (bdi); +bq24190_set_mode_host (bdi);pm_runtime_put_sync (bdi->dev);/* Things may have changed while suspended so alert upper layer */
Greg Kroah-Hartman
maintainerPATCH 10/39 mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Brian Norris <[email protected]>
commit 6183468a23fc6b6903f8597982017ad2c7fdefcf upstream.
Similar to commit fcd2042e8d36 ("mwifiex: printk() overflow with 32-byte SSIDs"), we failed to account for the existence of 32-char SSIDs in our debugfs code. Unlike in that case though, we zeroed out the containing struct first, and I'm pretty sure we're guaranteed to have some padding after the 'ssid.ssid' and 'ssid.ssid_len' fields (the struct is 33 bytes long).
So, this is the difference between:
# cat /sys/kernel/debug/mwifiex/mlan0/info ... essid="0123456789abcdef0123456789abcdef " ...
and the correct output:
# cat /sys/kernel/debug/mwifiex/mlan0/info ... essid="0123456789abcdef0123456789abcdef" ...
--- drivers/net/wireless/mwifiex/debugfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/net/wireless/mwifiex/debugfs.c +2 -1
@@ -220,7 +220,8 @@ mwifiex_info_read(struct file *file, chaif (GET_BSS_ROLE (priv) ==MWIFIEX_BSS_ROLE_STA ) { p +=sprintf (p,"multicast_count=\"%d\"\n" ,netdev_mc_count (netdev)); - p +=sprintf (p,"essid=\"%s\"\n" , info.ssid.ssid); + p +=sprintf (p,"essid=\"%.*s\"\n" , info.ssid.ssid_len, + info.ssid.ssid); p +=sprintf (p,"bssid=\"%pM\"\n" , info.bssid); p +=sprintf (p,"channel=\"%d\"\n" , (int ) info.bss_chan); p +=sprintf (p,"country_code = \"%s\"\n" , info.country_code);
Greg Kroah-Hartman
maintainerPATCH 11/39 mwifiex: Avoid skipping WEP key deletion for AP
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ganapathi Bhat <[email protected]>
commit a5b60de6972decc6b50a39abb376077c3c3621c8 upstream.
This patch fixes the issue specific to AP. AP is started with WEP security and external station is connected to it. Data path works in this case. Now if AP is restarted with WPA/WPA2 security, station is able to connect but ping fails.
Driver skips the deletion of WEP keys if interface type is AP. Removing that redundant check resolves the issue.
--- drivers/net/wireless/mwifiex/sta_ioctl.c | 2 -- 1 file changed, 2 deletions(-)
drivers/net/wireless/mwifiex/sta_ioctl.c +0 -2
@@ -1074,8 +1074,6 @@ int mwifiex_set_encode(struct mwifiex_pr encrypt_key.is_rx_seq_valid = true; } }else { -if (GET_BSS_ROLE (priv) ==MWIFIEX_BSS_ROLE_UAP ) -return 0 ; encrypt_key.key_disable = true;if (mac_addr)memcpy (encrypt_key.mac_addr, mac_addr,ETH_ALEN );
PATCH 12/39 x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
In reply to a message not in the archive3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nikola Pajkovsky <[email protected]>
commit 68dee8e2f2cacc54d038394e70d22411dee89da2 upstream.
commit 8fd524b355da ("x86: Kill bad_dma_address variable") has killed bad_dma_address variable and used instead of macro DMA_ERROR_CODE which is always zero. Since dma_addr is unsigned, the statement
dma_addr >= DMA_ERROR_CODE
is always true, and not needed.
arch/x86/kernel/pci-calgary_64.c: In function ‘iommu_free’:arch/x86/kernel/pci-calgary_64.c:299:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
if (unlikely((dma_addr >= DMA_ERROR_CODE) && (dma_addr < badend))) {
--- arch/x86/kernel/pci-calgary_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/kernel/pci-calgary_64.c +1 -1
@@ -296,7 +296,7 @@ static void iommu_free(struct iommu_tabl/* were we called with bad_dma_address? */ badend =DMA_ERROR_CODE + (EMERGENCY_PAGES *PAGE_SIZE ); -if (unlikely ((dma_addr >=DMA_ERROR_CODE ) && (dma_addr < badend))) { +if (unlikely (dma_addr < badend)) {WARN (1 ,KERN_ERR "Calgary: driver tried unmapping bad DMA " "address 0x%Lx\n" , dma_addr);return ;
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu
Greg Kroah-Hartman
maintainerPATCH 14/39 x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Andy Shevchenko <[email protected]>
commit 80354c29025833acd72ddac1ffa21c6cb50128cd upstream.
The interrupt line used for the watchdog is 12, according to the official Intel Edison BSP code.
And indeed after fixing it we start getting an interrupt and thus the watchdog starts working again:
[ 191.699951] Kernel panic - not syncing: Kernel Watchdog
--- arch/x86/platform/intel-mid/device_libs/platform_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/x86/platform/intel-mid/device_libs/platform_wdt.c +1 -1
@@ -17,7 +17,7 @@#include <asm/intel-mid.h> #include <asm/io_apic.h> -#define TANGIER_EXT_TIMER0_MSI 15 +#define TANGIER_EXT_TIMER0_MSI 12static struct platform_device wdt_dev = { .name ="intel_mid_wdt" ,
Greg Kroah-Hartman
maintainerPATCH 16/39 usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Krzysztof Kozlowski <[email protected]>
commit 3f6026b1dcb3c8ee71198c485a72ac674c6890dd upstream.
Returning from for_each_available_child_of_node() loop requires cleaning up node refcount. Error paths lacked it so for example in case of deferred probe, the refcount of phy node was left increased.
--- drivers/usb/host/ehci-exynos.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/usb/host/ehci-exynos.c +2 -0
@@ -78,10 +78,12 @@ static int exynos_ehci_get_phy(struct deif (IS_ERR (phy)) { ret =PTR_ERR (phy);if (ret == -EPROBE_DEFER ) { +of_node_put (child);return ret; }else if (ret != -ENOSYS && ret != -ENODEV ) {dev_err (dev,"Error retrieving usb2 phy: %d\n" , ret); +of_node_put (child);return ret; } }
Greg Kroah-Hartman
maintainerPATCH 17/39 usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Krzysztof Kozlowski <[email protected]>
commit 68bd6fc3cfa98ef253e17307ccafd8ef907b5556 upstream.
Returning from for_each_available_child_of_node() loop requires cleaning up node refcount. Error paths lacked it so for example in case of deferred probe, the refcount of phy node was left increased.
--- drivers/usb/host/ohci-exynos.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/usb/host/ohci-exynos.c +2 -0
@@ -67,10 +67,12 @@ static int exynos_ohci_get_phy(struct deif (IS_ERR (phy)) { ret =PTR_ERR (phy);if (ret == -EPROBE_DEFER ) { +of_node_put (child);return ret; }else if (ret != -ENOSYS && ret != -ENODEV ) {dev_err (dev,"Error retrieving usb2 phy: %d\n" , ret); +of_node_put (child);return ret; } }
Greg Kroah-Hartman
maintainerPATCH 19/39 USB: serial: digi_acceleport: fix incomplete rx sanity check
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 1b0aed2b1600f6e5c7b9acfbd610a4e351ef5232 upstream.
Make sure the received data has the required headers before parsing it.
Also drop the redundant urb-status check, which has already been handled by the caller.
--- drivers/usb/serial/digi_acceleport.c | 38 +++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 15 deletions(-)
drivers/usb/serial/digi_acceleport.c +23 -15
@@ -1399,25 +1399,30 @@ static int digi_read_inb_callback(struct {struct usb_serial_port *port = urb->context;struct digi_port *priv =usb_get_serial_port_data (port); -int opcode = ((unsigned char *)urb->transfer_buffer)[0 ]; -int len = ((unsigned char *)urb->transfer_buffer)[1 ]; -int port_status = ((unsigned char *)urb->transfer_buffer)[2 ]; -unsigned char *data = ((unsigned char *)urb->transfer_buffer) +3 ; +unsigned char *buf = urb->transfer_buffer; +int opcode; +int len; +int port_status; +unsigned char *data;int flag, throttled; -int status = urb->status; - -/* do not process callbacks on closed ports */ -/* but do continue the read chain */ -if (urb->status == -ENOENT ) -return 0 ;/* short/multiple packet check */ +if (urb->actual_length <2 ) { +dev_warn (&port->dev,"short packet received\n" ); +return -1 ; + } + + opcode = buf[0 ]; + len = buf[1 ]; +if (urb->actual_length != len +2 ) { -dev_err (&port->dev,"%s: INCOMPLETE OR MULTIPLE PACKET, " -"status=%d, port=%d, opcode=%d, len=%d, " -"actual_length=%d, status=%d\n" , __func__, status, - priv->dp_port_num, opcode, len, urb->actual_length, - port_status); +dev_err (&port->dev,"malformed packet received: port=%d, opcode=%d, len=%d, actual_length=%u\n" , + priv->dp_port_num, opcode, len, urb->actual_length); +return -1 ; + } + +if (opcode ==DIGI_CMD_RECEIVE_DATA && len <1 ) { +dev_err (&port->dev,"malformed data packet received\n" );return -1 ; }
@@ -1431,6 +1436,9 @@ static int digi_read_inb_callback(struct/* receive data */ if (opcode ==DIGI_CMD_RECEIVE_DATA ) { + port_status = buf[2 ]; + data = &buf[3 ]; +/* get flag from port_status */ flag =0 ;
Greg Kroah-Hartman
maintainerPATCH 21/39 USB: serial: io_edgeport: fix epic-descriptor handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit e4457d9798adb96272468e93da663de9bd0a4198 upstream.
Use a dedicated buffer for the DMA transfer and make sure to detect short transfers to avoid parsing a corrupt descriptor.
--- drivers/usb/serial/io_edgeport.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-)
drivers/usb/serial/io_edgeport.c +18 -6
@@ -492,20 +492,24 @@ static int get_epic_descriptor(struct edint result;struct usb_serial *serial = ep->serial;struct edgeport_product_info *product_info = &ep->product_info; -struct edge_compatibility_descriptor *epic = &ep->epic_descriptor; +struct edge_compatibility_descriptor *epic;struct edge_compatibility_bits *bits;struct device *dev = &serial->dev->dev; ep->is_epic =0 ; + + epic =kmalloc (sizeof (*epic),GFP_KERNEL ); +if (!epic) +return -ENOMEM ; + result =usb_control_msg (serial->dev,usb_rcvctrlpipe (serial->dev,0 ),USB_REQUEST_ION_GET_EPIC_DESC ,0xC0 ,0x00 ,0x00 , - &ep->epic_descriptor, -sizeof (struct edge_compatibility_descriptor ), + epic,sizeof (*epic),300 ); - -if (result >0 ) { +if (result ==sizeof (*epic)) { ep->is_epic =1 ; +memcpy (&ep->epic_descriptor, epic,sizeof (*epic));memset (product_info,0 ,sizeof (struct edgeport_product_info )); product_info->NumPorts = epic->NumPorts;
@@ -534,8 +538,16 @@ static int get_epic_descriptor(struct eddev_dbg (dev," IOSPWriteLCR : %s\n" , bits->IOSPWriteLCR ?"TRUE" :"FALSE" );dev_dbg (dev," IOSPSetBaudRate : %s\n" , bits->IOSPSetBaudRate ?"TRUE" :"FALSE" );dev_dbg (dev," TrueEdgeport : %s\n" , bits->TrueEdgeport ?"TRUE" :"FALSE" ); + + result =0 ; + }else if (result >=0 ) { +dev_warn (&serial->interface->dev,"short epic descriptor received: %d\n" , + result); + result = -EIO ; } +kfree (epic); +return result; }
@@ -2784,7 +2796,7 @@ static int edge_startup(struct usb_seriadev_info (&serial->dev->dev,"%s detected\n" , edge_serial->name);/* Read the epic descriptor */ -if (get_epic_descriptor (edge_serial) <=0 ) { +if (get_epic_descriptor (edge_serial) <0 ) {/* memcpy descriptor to Supports structures */ memcpy (&edge_serial->epic_descriptor.Supports, descriptor,sizeof (struct edge_compatibility_bits ));
Greg Kroah-Hartman
maintainerPATCH 22/39 USB: serial: ti_usb_3410_5052: fix control-message error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 39712e8bfa8d3aa6ce1e60fc9d62c9b076c17a30 upstream.
Make sure to detect and return an error on zero-length control-message transfers when reading from the device.
This addresses a potential failure to detect an empty transmit buffer during close.
Also remove a redundant check for short transfer when sending a command.
--- drivers/usb/serial/ti_usb_3410_5052.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)
drivers/usb/serial/ti_usb_3410_5052.c +4 -8
@@ -1343,13 +1343,10 @@ static int ti_command_out_sync(struct ti (USB_TYPE_VENDOR |USB_RECIP_DEVICE |USB_DIR_OUT ), value, moduleid, data, size, 1000); -if (status == size) - status =0 ; - -if (status >0 ) - status = -ECOMM ; +if (status <0 ) +return status; -return status; +return 0 ; }
@@ -1365,8 +1362,7 @@ static int ti_command_in_sync(struct ti_if (status == size) status =0 ; - -if (status >0 ) +else if (status >=0 ) status = -ECOMM ;return status;
Greg Kroah-Hartman
maintainerPATCH 23/39 USB: serial: ark3116: fix open error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit b631433b175f1002a31020e09bbfc2e5caecf290 upstream.
Fix open error handling which failed to detect errors when reading the MSR and LSR registers, something which could lead to the shadow registers being initialised from errnos.
Note that calling the generic close implementation is sufficient in the error paths as the interrupt urb has not yet been submitted and the register updates have not been made.
and add close and release functions.")
--- drivers/usb/serial/ark3116.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-)
drivers/usb/serial/ark3116.c +19 -6
@@ -366,23 +366,29 @@ static int ark3116_open(struct tty_strucdev_dbg (&port->dev,"%s - usb_serial_generic_open failed: %d\n" , __func__, result); - goto err_out; + goto err_free; }/* remove any data still left: also clears error state */ ark3116_read_reg (serial,UART_RX , buf);/* read modem status */ - priv->msr =ark3116_read_reg (serial,UART_MSR , buf); + result =ark3116_read_reg (serial,UART_MSR , buf); +if (result <0 ) + goto err_close; + priv->msr = *buf; +/* read line status */ - priv->lsr =ark3116_read_reg (serial,UART_LSR , buf); + result =ark3116_read_reg (serial,UART_LSR , buf); +if (result <0 ) + goto err_close; + priv->lsr = *buf; result =usb_submit_urb (port->interrupt_in_urb,GFP_KERNEL );if (result) {dev_err (&port->dev,"submit irq_in urb failed %d\n" , result); -ark3116_close (port); - goto err_out; + goto err_close; }/* activate interrupts */
@@ -395,8 +401,15 @@ static int ark3116_open(struct tty_strucif (tty)ark3116_set_termios (tty, port,NULL ); -err_out:kfree (buf); + +return 0 ; + +err_close: +usb_serial_generic_close (port); +err_free: +kfree (buf); +return result; }
Greg Kroah-Hartman
maintainerPATCH 26/39 USB: serial: mct_u232: fix modem-status error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 36356a669eddb32917fc4b5c2b9b8bf80ede69de upstream.
Make sure to detect short control-message transfers so that errors are logged when reading the modem status at open.
Note that while this also avoids initialising the modem status using uninitialised heap data, these bits could not leak to user space as they are currently not used.
--- drivers/usb/serial/mct_u232.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/usb/serial/mct_u232.c +5 -1
@@ -322,8 +322,12 @@ static int mct_u232_get_modem_stat(strucMCT_U232_GET_REQUEST_TYPE ,0 ,0 , buf,MCT_U232_GET_MODEM_STAT_SIZE , WDR_TIMEOUT); -if (rc <0 ) { +if (rc <MCT_U232_GET_MODEM_STAT_SIZE ) {dev_err (&port->dev,"Get MODEM STATus failed (error = %d)\n" , rc); + +if (rc >=0 ) + rc = -EIO ; + *msr =0 ; }else { *msr = buf[0 ];
Greg Kroah-Hartman
maintainerPATCH 27/39 USB: serial: io_edgeport: fix descriptor error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 3c0e25d883d06a1fbd1ad35257e8abaa57befb37 upstream.
Make sure to detect short control-message transfers and log an error when reading incomplete manufacturer and boot descriptors.
Note that the default all-zero descriptors will now be used after a short transfer is detected instead of partially initialised ones.
--- drivers/usb/serial/io_edgeport.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-)
drivers/usb/serial/io_edgeport.c +15 -9
@@ -2109,8 +2109,7 @@ static int rom_write(struct usb_serial ** rom_read * reads a number of bytes from the Edgeport device starting at the given * address. -* If successful returns the number of bytes read, otherwise it returns -* a negative error number of the problem. +* Returns zero on success or a negative error number. ****************************************************************************/ static int rom_read (struct usb_serial *serial,__u16 extAddr,__u16 addr,__u16 length,__u8 *data)
@@ -2135,12 +2134,17 @@ static int rom_read(struct usb_serial *sUSB_REQUEST_ION_READ_ROM ,0xC0 , addr, extAddr, transfer_buffer, current_length, 300); -if (result <0 ) +if (result < current_length) { +if (result >=0 ) + result = -EIO ;break ; + }memcpy (data, transfer_buffer, current_length); length -= current_length; addr += current_length; data += current_length; + + result =0 ; }kfree (transfer_buffer);
@@ -2597,9 +2601,10 @@ static void get_manufacturing_desc(strucEDGE_MANUF_DESC_LEN , (__u8 *)(&edge_serial->manuf_descriptor)); -if (response <1 ) -dev_err (dev,"error in getting manufacturer descriptor\n" ); -else { +if (response <0 ) { +dev_err (dev,"error in getting manufacturer descriptor: %d\n" , + response); + }else {char string[30 ];dev_dbg (dev,"**Manufacturer Descriptor\n" ); dev_dbg(dev, " RomSize: %dK\n",
@@ -2656,9 +2661,10 @@ static void get_boot_desc(struct edgeporEDGE_BOOT_DESC_LEN , (__u8 *)(&edge_serial->boot_descriptor)); -if (response <1 ) -dev_err (dev,"error in getting boot descriptor\n" ); -else { +if (response <0 ) { +dev_err (dev,"error in getting boot descriptor: %d\n" , + response); + }else {dev_dbg (dev,"**Boot Descriptor:\n" );dev_dbg (dev," BootCodeLength: %d\n" ,le16_to_cpu (edge_serial->boot_descriptor.BootCodeLength));
Greg Kroah-Hartman
maintainerPATCH 28/39 USB: serial: sierra: fix bogus alternate-setting assumption
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 16620b483eaf7750413bae472f4363b6b959fcaa upstream.
Interface numbers do not change when enabling alternate settings as comment and code in this driver suggested.
Remove the confusing comment and redundant retrieval of the interface number in probe, while simplifying and renaming the interface-number helper.
--- drivers/usb/serial/sierra.c | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-)
drivers/usb/serial/sierra.c +5 -23
@@ -137,24 +137,9 @@ static int is_himemory(const u8 ifnum,return 0 ; } -static int sierra_calc_interface (struct usb_serial *serial) +static u8 sierra_interface_num (struct usb_serial *serial) { -int interface; -struct usb_interface *p_interface; -struct usb_host_interface *p_host_interface; - -/* Get the interface structure pointer from the serial struct */ - p_interface = serial->interface; - -/* Get a pointer to the host interface structure */ - p_host_interface = p_interface->cur_altsetting; - -/* read the interface descriptor for this active altsetting -* to find out the interface number we are on -*/ - interface = p_host_interface->desc.bInterfaceNumber; - -return interface; +return serial->interface->cur_altsetting->desc.bInterfaceNumber; } static int sierra_probe(struct usb_serial *serial,
@@ -165,7 +150,7 @@ static int sierra_probe(struct usb_seriau8 ifnum; udev = serial->dev; - ifnum =sierra_calc_interface (serial); + ifnum =sierra_interface_num (serial);/* * If this interface supports more than 1 alternate
@@ -178,9 +163,6 @@ static int sierra_probe(struct usb_seriausb_set_interface (udev, ifnum,1 ); } -/* ifnum could have changed - by calling usb_set_interface */ - ifnum =sierra_calc_interface (serial); -if (is_blacklisted (ifnum, (struct sierra_iface_info *)id->driver_info)) { dev_dbg(&serial->dev->dev,
@@ -342,7 +324,7 @@ static int sierra_send_setup(struct usb_/* If composite device then properly report interface */ if (serial->num_ports ==1 ) { - interface =sierra_calc_interface (serial); + interface =sierra_interface_num (serial);/* Control message is sent only to interfaces with * interrupt_in endpoints */
@@ -916,7 +898,7 @@ static int sierra_port_probe(struct usb_/* Determine actual memory requirements */ if (serial->num_ports ==1 ) {/* Get interface number for composite device */ - ifnum =sierra_calc_interface (serial); + ifnum =sierra_interface_num (serial); himemoryp = &typeB_interface_list; }else {/* This is really the usb-serial port number of the interface
Greg Kroah-Hartman
maintainerPATCH 33/39 tcp: do not underestimate skb->truesize in tcp_trim_head()
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eric Dumazet <[email protected]>
[ Upstream commit 7162fb242cb8322beb558828fd26b33c3e9fc805 ]
Andrey found a way to trigger the WARN_ON_ONCE(delta < len) in skb_try_coalesce() using syzkaller and a filter attached to a TCP socket over loopback interface.
I believe one issue with looped skbs is that tcp_trim_head() can end up producing skb with under estimated truesize.
It hardly matters for normal conditions, since packets sent over loopback are never truncated.
Bytes trimmed from skb->head should not change skb truesize, since skb->head is not reallocated.
--- net/ipv4/tcp_output.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)
net/ipv4/tcp_output.c +12 -7
@@ -1212,7 +1212,7 @@ int tcp_fragment(struct sock *sk, struct* eventually). The difference is that pulled data not copied, but * immediately discarded. */ -static void __pskb_trim_head (struct sk_buff *skb,int len) +static int __pskb_trim_head (struct sk_buff *skb,int len) {struct skb_shared_info *shinfo;int i, k, eat;
@@ -1222,7 +1222,7 @@ static void __pskb_trim_head(struct sk_b__skb_pull (skb, eat); len -= eat;if (!len) -return ; +return 0 ; } eat = len; k =0 ;
@@ -1248,23 +1248,28 @@ static void __pskb_trim_head(struct sk_bskb_reset_tail_pointer (skb); skb->data_len -= len; skb->len = skb->data_len; +return len; }/* Remove acked data from a packet in the transmit queue. */ int tcp_trim_head (struct sock *sk,struct sk_buff *skb,u32 len) { +u32 delta_truesize; +if (skb_unclone (skb,GFP_ATOMIC ))return -ENOMEM ; -__pskb_trim_head (skb, len); + delta_truesize =__pskb_trim_head (skb, len);TCP_SKB_CB (skb)->seq += len; skb->ip_summed =CHECKSUM_PARTIAL ; - skb->truesize -= len; - sk->sk_wmem_queued -= len; -sk_mem_uncharge (sk, len); -sock_set_flag (sk,SOCK_QUEUE_SHRUNK ); +if (delta_truesize) { + skb->truesize -= delta_truesize; + sk->sk_wmem_queued -= delta_truesize; +sk_mem_uncharge (sk, delta_truesize); +sock_set_flag (sk,SOCK_QUEUE_SHRUNK ); + }/* Any change of skb->len requires recalculation of tso factor. */ if (tcp_skb_pcount (skb) >1 )
Greg Kroah-Hartman
maintainerPATCH 38/39 f2fs: sanity check segment count
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jin Qian <[email protected]>
commit b9dd46188edc2f0d1f37328637860bb65a771124 upstream.
F2FS uses 4 bytes to represent block address. As a result, supported size of disk is 16 TB and it equals to 16 * 1024 * 1024 / 2 segments.
--- fs/f2fs/super.c | 7 +++++++ include/linux/f2fs_fs.h | 6 ++++++ 2 files changed, 13 insertions(+)
fs/f2fs/super.c +7 -0
@@ -913,6 +913,13 @@ static int sanity_check_raw_super(structreturn 1 ; } +if (le32_to_cpu (raw_super->segment_count) >F2FS_MAX_SEGMENT ) { +f2fs_msg (sb,KERN_INFO , +"Invalid segment count (%u)" , +le32_to_cpu (raw_super->segment_count)); +return 1 ; + } +/* check CP/SIT/NAT/SSA/MAIN_AREA area boundary */ if (sanity_check_area_boundary (sb, raw_super))return 1 ;
include/linux/f2fs_fs.h +6 -0
@@ -269,6 +269,12 @@ struct f2fs_nat_block {#define SIT_ENTRY_PER_BLOCK (PAGE_CACHE_SIZE / sizeof(struct f2fs_sit_entry))/* +* F2FS uses 4 bytes to represent block address. As a result, supported size of +* disk is 16 TB and it equals to 16 * 1024 * 1024 / 2 segments. +*/ +#define F2FS_MAX_SEGMENT ((16 * 1024 * 1024) / 2) + +/* * Note that f2fs_sit_entry->vblocks has the following bit-field information. * [15:10] : allocation type such as CURSEG_XXXX_TYPE * [9:0] : valid block count
Greg Kroah-Hartman
maintainerPATCH 1/39 9p: fix a potential acl leak
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Cong Wang <[email protected]>
commit b5c66bab72a6a65edb15beb60b90d3cb84c5763b upstream.
posix_acl_update_mode() could possibly clear 'acl', if so we leak the memory pointed by 'acl'. Save this pointer before calling posix_acl_update_mode() and release the memory if 'acl' really gets cleared.
--- fs/9p/acl.c | 2 ++ 1 file changed, 2 insertions(+)
fs/9p/acl.c +2 -0
@@ -321,6 +321,7 @@ static int v9fs_xattr_set_acl(struct den name =POSIX_ACL_XATTR_ACCESS ;if (acl) {struct iattr iattr; +struct posix_acl *old_acl = acl; retval =posix_acl_update_mode (inode, &iattr.ia_mode, &acl);if (retval)
@@ -331,6 +332,7 @@ static int v9fs_xattr_set_acl(struct den* by the mode bits. So don't * update ACL. */ +posix_acl_release (old_acl); value =NULL ; size =0 ; }
Greg Kroah-Hartman
maintainercover 3.18.53-stable review
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.53-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.18.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 3.18.53-rc1
Nicolai Hähnle <[email protected]>
drm/ttm: fix use-after-free races in vm fault handling
Jin Qian <[email protected]>
f2fs: sanity check segment count
Eric Dumazet <[email protected]>
tcp: fix wraparound issue in tcp_lp
WANG Cong <[email protected]>
ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
WANG Cong <[email protected]>
ipv6: initialize route null entry in addrconf_init()
Alexander Potapenko <[email protected]>
ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
Eric Dumazet <[email protected]>
tcp: do not underestimate skb->truesize in tcp_trim_head()
Arnd Bergmann <[email protected]>
staging: emxx_udc: remove incorrect __init annotations
James Hughes <[email protected]>
brcmfmac: Make skb header writable before use
James Hughes <[email protected]>
brcmfmac: Ensure pointer correctly set if skb data location changes
Dan Carpenter <[email protected]>
scsi: scsi_dh_emc: return success in clariion_std_inquiry()
Johan Hovold <[email protected]>
USB: serial: sierra: fix bogus alternate-setting assumption
Johan Hovold <[email protected]>
USB: serial: io_edgeport: fix descriptor error handling
Johan Hovold <[email protected]>
USB: serial: mct_u232: fix modem-status error handling
Johan Hovold <[email protected]>
USB: serial: quatech2: fix control-message error handling
Johan Hovold <[email protected]>
USB: serial: ftdi_sio: fix latency-timer error handling
Johan Hovold <[email protected]>
USB: serial: ark3116: fix open error handling
Johan Hovold <[email protected]>
USB: serial: ti_usb_3410_5052: fix control-message error handling
Johan Hovold <[email protected]>
USB: serial: io_edgeport: fix epic-descriptor handling
Johan Hovold <[email protected]>
USB: serial: ssu100: fix control-message error handling
Johan Hovold <[email protected]>
USB: serial: digi_acceleport: fix incomplete rx sanity check
Johan Hovold <[email protected]>
USB: serial: keyspan_pda: fix receive sanity checks
Krzysztof Kozlowski <[email protected]>
usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
Krzysztof Kozlowski <[email protected]>
usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
Jim Mattson <[email protected]>
Revert "KVM: nested VMX: disable perf cpuid reporting"
Andy Shevchenko <[email protected]>
x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
Masami Hiramatsu <[email protected]>
kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
Nikola Pajkovsky <[email protected]>
x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
Ganapathi Bhat <[email protected]>
mwifiex: Avoid skipping WEP key deletion for AP
Brian Norris <[email protected]>
mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
Matthijs van Duin <[email protected]>
ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
Liam Breck <[email protected]>
power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
Liam Breck <[email protected]>
power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
Michael Ellerman <[email protected]>
powerpc/powernv: Fix opal_exit tracepoint opcode
Ben Hutchings <[email protected]>
cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
Ard Biesheuvel <[email protected]>
ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode
Arnd Bergmann <[email protected]>
mtd: cfi: reduce stack size
Arnd Bergmann <[email protected]>
tty: remove platform_sysrq_reset_seq
Cong Wang <[email protected]>
9p: fix a potential acl leak
-------------
Diffstat:
Makefile | 4 +- arch/arm/kernel/Makefile | 1 - arch/arm/kernel/pj4-cp0.c | 4 ++ arch/arm/mach-omap2/omap-headsmp.S | 3 +- arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +- arch/x86/kernel/kprobes/common.h | 2 +- arch/x86/kernel/kprobes/core.c | 6 +-- arch/x86/kernel/kprobes/opt.c | 2 +- arch/x86/kernel/pci-calgary_64.c | 2 +- arch/x86/kvm/cpuid.c | 6 --- arch/x86/kvm/vmx.c | 2 - .../platform/intel-mid/device_libs/platform_wdt.c | 2 +- drivers/gpu/drm/ttm/ttm_bo_vm.c | 12 ++++++ .../net/wireless/brcm80211/brcmfmac/dhd_linux.c | 23 ++++------- drivers/net/wireless/mwifiex/debugfs.c | 3 +- drivers/net/wireless/mwifiex/sta_ioctl.c | 2 - drivers/power/bq24190_charger.c | 3 +- drivers/scsi/device_handler/scsi_dh_emc.c | 2 +- drivers/staging/emxx_udc/emxx_udc.c | 4 +- drivers/tty/sysrq.c | 19 +-------- drivers/usb/host/ehci-exynos.c | 2 + drivers/usb/host/ohci-exynos.c | 2 + drivers/usb/serial/ark3116.c | 25 ++++++++--- drivers/usb/serial/digi_acceleport.c | 38 ++++++++++------- drivers/usb/serial/ftdi_sio.c | 7 +++- drivers/usb/serial/io_edgeport.c | 48 +++++++++++++++------- drivers/usb/serial/keyspan_pda.c | 19 ++++++--- drivers/usb/serial/mct_u232.c | 6 ++- drivers/usb/serial/quatech2.c | 24 ++++++----- drivers/usb/serial/sierra.c | 28 +++---------- drivers/usb/serial/ssu100.c | 31 ++++++++++---- drivers/usb/serial/ti_usb_3410_5052.c | 12 ++---- fs/9p/acl.c | 2 + fs/f2fs/super.c | 7 ++++ include/linux/f2fs_fs.h | 6 +++ include/linux/mtd/map.h | 12 +++++- include/net/addrconf.h | 2 + include/net/ip6_route.h | 1 + net/ipv4/raw.c | 3 ++ net/ipv4/tcp_lp.c | 6 ++- net/ipv4/tcp_output.c | 19 +++++---- net/ipv6/addrconf.c | 3 ++ net/ipv6/raw.c | 2 + net/ipv6/route.c | 39 ++++++++++++------ tools/power/cpupower/utils/helpers/cpuid.c | 1 + 45 files changed, 273 insertions(+), 176 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 6/39 powerpc/powernv: Fix opal_exit tracepoint opcode
3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Michael Ellerman <[email protected]>
commit a7e0fb6c2029a780444d09560f739e020d54fe4d upstream.
Currently the opal_exit tracepoint usually shows the opcode as 0:
<idle>-0 [047] d.h. 635.654292: opal_entry: opcode=63 <idle>-0 [047] d.h. 635.654296: opal_exit: opcode=0 retval=0 kopald-1209 [019] d... 636.420943: opal_entry: opcode=10 kopald-1209 [019] d... 636.420959: opal_exit: opcode=0 retval=0
This is because we incorrectly load the opcode into r0 before calling __trace_opal_exit(), whereas it expects the opcode in r3 (first function parameter). In fact we are leaving the retval in r3, so opcode and retval will always show the same value.
Instead load the opcode into r3, resulting in:
<idle>-0 [040] d.h. 636.618625: opal_entry: opcode=63 <idle>-0 [040] d.h. 636.618627: opal_exit: opcode=63 retval=0
--- arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/powerpc/platforms/powernv/opal-wrappers.S +1 -1
@@ -148,7 +148,7 @@ opal_tracepoint_entry: opal_tracepoint_return: std r3,STK_REG(R31)(r1) mr r4,r3 - ld r0,STK_REG(R23)(r1) + ld r3,STK_REG(R23)(r1) bl __trace_opal_exit ld r3,STK_REG(R31)(r1) addi r1,r1,STACKFRAMESIZE
Greg Kroah-Hartman
maintainerPATCH 2/39 tty: remove platform_sysrq_reset_seq
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Arnd Bergmann <[email protected]>
commit ffb6e0c9a0572f8e5f8e9337a1b40ac2ec1493a1 upstream.
The platform_sysrq_reset_seq code was intended as a way for an embedded platform to provide its own sysrq sequence at compile time. After over two years, nobody has started using it in an upstream kernel, and the platforms that were interested in it have moved on to devicetree, which can be used to configure the sequence without requiring kernel changes. The method is also incompatible with the way that most architectures build support for multiple platforms into a single kernel.
Now the code is producing warnings when built with gcc-5.1:
drivers/tty/sysrq.c: In function 'sysrq_init':drivers/tty/sysrq.c:959:33: warning: array subscript is above array bounds [-Warray-bounds]
key = platform_sysrq_reset_seq[i];
We could fix this, but it seems unlikely that it will ever be used, so let's just remove the code instead. We still have the option to pass the sequence either in DT, using the kernel command line, or using the /sys/module/sysrq/parameters/reset_seq file.
--- drivers/tty/sysrq.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-)
drivers/tty/sysrq.c +1 -18
@@ -55,9 +55,6 @@static int __read_mostly sysrq_enabled =CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE ;static bool __read_mostly sysrq_always_enabled; -unsigned short platform_sysrq_reset_seq[]__weak = {KEY_RESERVED }; -int sysrq_reset_downtime_ms__weak ; -static bool sysrq_on (void ) {return sysrq_enabled || sysrq_always_enabled;
@@ -567,6 +564,7 @@ void handle_sysrq(int key)EXPORT_SYMBOL (handle_sysrq);#ifdef CONFIG_INPUT +static int sysrq_reset_downtime_ms;/* Simple translation table for the SysRq keys */ static const unsigned char sysrq_xlate[KEY_CNT] =
@@ -947,23 +945,8 @@ static bool sysrq_handler_registered;static inline void sysrq_register_handler (void ) { -unsigned short key;int error; -int i; - -/* First check if a __weak interface was instantiated. */ -for (i =0 ; i <ARRAY_SIZE (sysrq_reset_seq); i++) { - key = platform_sysrq_reset_seq[i]; -if (key ==KEY_RESERVED || key >KEY_MAX ) -break ; - - sysrq_reset_seq[sysrq_reset_seq_len++] = key; - } -/* -* DT configuration takes precedence over anything that would -* have been defined via the __weak interface. -*/ sysrq_of_get_keyreset_config (); error =input_register_handler (&sysrq_handler);
Greg Kroah-Hartman
maintainerPATCH 9/39 ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Matthijs van Duin <[email protected]>
commit 448c077eeb02240c430db2a2c3bf5285a4c65d66 upstream.
'adr' yields a data-pointer, not a function-pointer.
CPU in HYP mode")
--- arch/arm/mach-omap2/omap-headsmp.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/mach-omap2/omap-headsmp.S +2 -1
@@ -17,6 +17,7 @@ #include <linux/linkage.h> #include <linux/init.h> +#include <asm/assembler.h> #include "omap44xx.h"
@@ -56,7 +57,7 @@ wait_2: ldr r2, =AUX_CORE_BOOT0_PA @ rea cmp r0, r4 bne wait_2 ldr r12, =API_HYP_ENTRY - adr r0, hyp_boot + badr r0, hyp_boot smc #0 hyp_boot: b secondary_startup
Greg Kroah-Hartman
maintainerPATCH 20/39 USB: serial: ssu100: fix control-message error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 1eac5c244f705182d1552a53e2f74e2775ed95d6 upstream.
Make sure to detect short control-message transfers rather than continue with zero-initialised data when retrieving modem status and during device initialisation.
--- drivers/usb/serial/ssu100.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-)
drivers/usb/serial/ssu100.c +24 -7
@@ -80,9 +80,17 @@ static inline int ssu100_setdevice(strucstatic inline int ssu100_getdevice (struct usb_device *dev,u8 *data) { -return usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), -QT_SET_GET_DEVICE ,0xc0 ,0 ,0 , - data,3 ,300 ); +int ret; + + ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), +QT_SET_GET_DEVICE ,0xc0 ,0 ,0 , + data,3 ,300 ); +if (ret <3 ) { +if (ret >=0 ) + ret = -EIO ; + } + +return ret; } static inline int ssu100_getregister(struct usb_device *dev,
@@ -90,10 +98,17 @@ static inline int ssu100_getregister(strunsigned short reg, u8 *data) { - return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), - QT_SET_GET_REGISTER, 0xc0, reg, - uart, data, sizeof(*data), 300); + int ret; + ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), +QT_SET_GET_REGISTER ,0xc0 , reg, + uart, data,sizeof (*data),300 ); +if (ret <sizeof (*data)) { +if (ret >=0 ) + ret = -EIO ; + } + +return ret; }
@@ -289,8 +304,10 @@ static int ssu100_open(struct tty_structQT_OPEN_CLOSE_CHANNEL ,QT_TRANSFER_IN ,0x01 , 0, data, 2, 300); -if (result <0 ) { +if (result <2 ) {dev_dbg (&port->dev,"%s - open failed %i\n" , __func__, result); +if (result >=0 ) + result = -EIO ;kfree (data);return result; }
Greg Kroah-Hartman
maintainerPATCH 13/39 kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Masami Hiramatsu <[email protected]>
commit 75013fb16f8484898eaa8d0b08fed942d790f029 upstream.
Fix to the exception table entry check by using probed address instead of the address of copied instruction.
This bug may cause unexpected kernel panic if user probe an address where an exception can happen which should be fixup by __ex_table (e.g. copy_from_user.)
Unless user puts a kprobe on such address, this doesn't cause any problem.
This bug has been introduced years ago, by commit:
464846888d9a ("x86/kprobes: Fix a bug which can modify kernel code permanently").
--- arch/x86/kernel/kprobes/common.h | 2 +- arch/x86/kernel/kprobes/core.c | 6 +++--- arch/x86/kernel/kprobes/opt.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-)
arch/x86/kernel/kprobes/common.h +1 -1
@@ -67,7 +67,7 @@#endif /* Ensure if the instruction can be boostable */ -extern int can_boost (kprobe_opcode_t *instruction); +extern int can_boost (kprobe_opcode_t *instruction,void *addr);/* Recover instruction if given address is probed */ extern unsigned long recover_probed_instruction (kprobe_opcode_t *buf,unsigned long addr);
arch/x86/kernel/kprobes/core.c +3 -3
@@ -163,12 +163,12 @@ NOKPROBE_SYMBOL(skip_prefixes);* Returns non-zero if opcode is boostable. * RIP relative instructions are adjusted at copying time in 64 bits mode */ -int can_boost (kprobe_opcode_t *opcodes) +int can_boost (kprobe_opcode_t *opcodes,void *addr) {kprobe_opcode_t opcode;kprobe_opcode_t *orig_opcodes = opcodes; -if (search_exception_tables ((unsigned long )opcodes)) +if (search_exception_tables ((unsigned long )addr))return 0 ;/* Page fault may occur on this address. */ retry:
@@ -385,7 +385,7 @@ static int arch_copy_kprobe(struct kprob* __copy_instruction can modify the displacement of the instruction, * but it doesn't affect boostable check. */ -if (can_boost (p->ainsn.insn)) +if (can_boost (p->ainsn.insn, p->addr)) p->ainsn.boostable =0 ;else p->ainsn.boostable =-1 ;
arch/x86/kernel/kprobes/opt.c +1 -1
@@ -177,7 +177,7 @@ static int copy_optimized_instructions(uwhile (len <RELATIVEJUMP_SIZE ) { ret =__copy_instruction (dest + len, src + len); -if (!ret || !can_boost (dest + len)) +if (!ret || !can_boost (dest + len, src + len))return -EINVAL ; len += ret; }
Greg Kroah-Hartman
maintainerPATCH 18/39 USB: serial: keyspan_pda: fix receive sanity checks
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit c528fcb116e61afc379a2e0a0f70906b937f1e2c upstream.
Make sure to check for short transfers before parsing the receive buffer to avoid acting on stale data.
--- drivers/usb/serial/keyspan_pda.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
drivers/usb/serial/keyspan_pda.c +14 -5
@@ -139,6 +139,7 @@ static void keyspan_pda_rx_interrupt(str {struct usb_serial_port *port = urb->context;unsigned char *data = urb->transfer_buffer; +unsigned int len = urb->actual_length;int retval;int status = urb->status;struct keyspan_pda_private *priv;
@@ -159,18 +160,26 @@ static void keyspan_pda_rx_interrupt(str goto exit; } +if (len <1 ) { +dev_warn (&port->dev,"short message received\n" ); + goto exit; + } +/* see if the message is data or a status interrupt */ switch (data[0 ]) {case 0 :/* rest of message is rx data */ -if (urb->actual_length) { -tty_insert_flip_string (&port->port, data +1 , - urb->actual_length -1 ); -tty_flip_buffer_push (&port->port); - } +if (len <2 ) +break ; +tty_insert_flip_string (&port->port, data +1 , len -1 ); +tty_flip_buffer_push (&port->port);break ;case 1 :/* status interrupt */ +if (len <3 ) { +dev_warn (&port->dev,"short interrupt message received\n" ); +break ; + }dev_dbg (&port->dev,"rx int, d1=%d, d2=%d\n" , data[1 ], data[2 ]);switch (data[1 ]) {case 1 :/* modemline change */
Greg Kroah-Hartman
maintainerPATCH 31/39 brcmfmac: Make skb header writable before use
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: James Hughes <[email protected]>
commit 9cc4b7cb86cbcc6330a3faa8cd65268cd2d3c227 upstream.
The driver was making changes to the skb_header without ensuring it was writable (i.e. uncloned).
This patch also removes some boiler plate header size checking/adjustment code as that is also handled by the skb_cow_header function used to make header writable.
--- drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-)
drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +5 -14
@@ -213,22 +213,13 @@ static netdev_tx_t brcmf_netdev_start_xm goto done; } -/* Make sure there's enough room for any header */ -if (skb_headroom (skb) < drvr->hdrlen) { -struct sk_buff *skb2; - -brcmf_dbg (INFO ,"%s: insufficient headroom\n" , +/* Make sure there's enough writable headroom*/ + ret =skb_cow_head (skb, drvr->hdrlen); +if (ret <0 ) { +brcmf_err ("%s: skb_cow_head failed\n" ,brcmf_ifname (drvr, ifp->bssidx)); - drvr->bus_if->tx_realloc++; - skb2 =skb_realloc_headroom (skb, drvr->hdrlen);dev_kfree_skb (skb); - skb = skb2; -if (skb ==NULL ) { -brcmf_err ("%s: skb_realloc_headroom failed\n" , -brcmf_ifname (drvr, ifp->bssidx)); - ret = -ENOMEM ; - goto done; - } + goto done; }/* validate length for ether packet */
Greg Kroah-Hartman
maintainerPATCH 34/39 ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alexander Potapenko <[email protected]>
[ Upstream commit 86f4c90a1c5c1493f07f2d12c1079f5bf01936f2 ]
raw_send_hdrinc() and rawv6_send_hdrinc() expect that the buffer copied from the userspace contains the IPv4/IPv6 header, so if too few bytes are copied, parts of the header may remain uninitialized.
This bug has been detected with KMSAN.
For the record, the KMSAN report:
==================================================================
BUG: KMSAN: use of unitialized memory in nf_ct_frag6_gather+0xf5a/0x44a0 inter: 0 CPU: 0 PID: 1036 Comm: probe Not tainted 4.11.0-rc5+ #2455 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:16 dump_stack+0x143/0x1b0 lib/dump_stack.c:52 kmsan_report+0x16b/0x1e0 mm/kmsan/kmsan.c:1078 __kmsan_warning_32+0x5c/0xa0 mm/kmsan/kmsan_instr.c:510 nf_ct_frag6_gather+0xf5a/0x44a0 net/ipv6/netfilter/nf_conntrack_reasm.c:577 ipv6_defrag+0x1d9/0x280 net/ipv6/netfilter/nf_defrag_ipv6_hooks.c:68 nf_hook_entry_hookfn ./include/linux/netfilter.h:102 nf_hook_slow+0x13f/0x3c0 net/netfilter/core.c:310 nf_hook ./include/linux/netfilter.h:212 NF_HOOK ./include/linux/netfilter.h:255 rawv6_send_hdrinc net/ipv6/raw.c:673 rawv6_sendmsg+0x2fcb/0x41a0 net/ipv6/raw.c:919 inet_sendmsg+0x3f8/0x6d0 net/ipv4/af_inet.c:762 sock_sendmsg_nosec net/socket.c:633 sock_sendmsg net/socket.c:643 SYSC_sendto+0x6a5/0x7c0 net/socket.c:1696 SyS_sendto+0xbc/0xe0 net/socket.c:1664 do_syscall_64+0x72/0xa0 arch/x86/entry/common.c:285 entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.S:246 RIP: 0033:0x436e03 RSP: 002b:00007ffce48baf38 EFLAGS: 00000246 ORIG_RAX: 000000000000002c RAX: ffffffffffffffda RBX: 00000000004002b0 RCX: 0000000000436e03 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003 RBP: 00007ffce48baf90 R08: 00007ffce48baf50 R09: 000000000000001c R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000401790 R14: 0000000000401820 R15: 0000000000000000 origin: 00000000d9400053 save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:362 kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:257 kmsan_poison_shadow+0x6d/0xc0 mm/kmsan/kmsan.c:270 slab_alloc_node mm/slub.c:2735 __kmalloc_node_track_caller+0x1f4/0x390 mm/slub.c:4341 __kmalloc_reserve net/core/skbuff.c:138 __alloc_skb+0x2cd/0x740 net/core/skbuff.c:231 alloc_skb ./include/linux/skbuff.h:933 alloc_skb_with_frags+0x209/0xbc0 net/core/skbuff.c:4678 sock_alloc_send_pskb+0x9ff/0xe00 net/core/sock.c:1903 sock_alloc_send_skb+0xe4/0x100 net/core/sock.c:1920 rawv6_send_hdrinc net/ipv6/raw.c:638 rawv6_sendmsg+0x2918/0x41a0 net/ipv6/raw.c:919 inet_sendmsg+0x3f8/0x6d0 net/ipv4/af_inet.c:762 sock_sendmsg_nosec net/socket.c:633 sock_sendmsg net/socket.c:643 SYSC_sendto+0x6a5/0x7c0 net/socket.c:1696 SyS_sendto+0xbc/0xe0 net/socket.c:1664 do_syscall_64+0x72/0xa0 arch/x86/entry/common.c:285 return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.S:246 ==================================================================
, triggered by the following syscalls:
socket(PF_INET6, SOCK_RAW, IPPROTO_RAW) = 3
sendto(3, NULL, 0, 0, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "ff00::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EPERM
A similar report is triggered in net/ipv4/raw.c if we use a PF_INET socket instead of a PF_INET6 one.
--- net/ipv4/raw.c | 3 +++ net/ipv6/raw.c | 2 ++ 2 files changed, 5 insertions(+)
net/ipv4/raw.c +3 -0
@@ -345,6 +345,9 @@ static int raw_send_hdrinc(struct sock * rt->dst.dev->mtu);return -EMSGSIZE ; } +if (length <sizeof (struct iphdr )) +return -EINVAL ; +if (flags&MSG_PROBE ) goto out;
net/ipv6/raw.c +2 -0
@@ -624,6 +624,8 @@ static int rawv6_send_hdrinc(struct sockipv6_local_error (sk,EMSGSIZE , fl6, rt->dst.dev->mtu);return -EMSGSIZE ; } +if (length <sizeof (struct ipv6hdr )) +return -EINVAL ;if (flags&MSG_PROBE ) goto out;
Greg Kroah-Hartman
maintainerPATCH 24/39 USB: serial: ftdi_sio: fix latency-timer error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit e3e574ad85a208cb179f33720bb5f12b453de33c upstream.
Make sure to detect short responses when reading the latency timer to avoid using stale buffer data.
Note that no heap data would currently leak through sysfs as ASYNC_LOW_LATENCY is set by default.
--- drivers/usb/serial/ftdi_sio.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/usb/serial/ftdi_sio.c +5 -2
@@ -1437,10 +1437,13 @@ static int read_latency_timer(struct usbFTDI_SIO_GET_LATENCY_TIMER_REQUEST_TYPE ,0 , priv->interface, buf, 1, WDR_TIMEOUT); -if (rv <0 ) +if (rv <1 ) {dev_err (&port->dev,"Unable to read latency timer: %i\n" , rv); -else +if (rv >=0 ) + rv = -EIO ; + }else { priv->latency = buf[0 ]; + }kfree (buf);
Greg Kroah-Hartman
maintainerPATCH 25/39 USB: serial: quatech2: fix control-message error handling
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit 8c34cb8ddfe808d557b51da983ff10c02793beb2 upstream.
Make sure to detect short control-message transfers when fetching modem and line state in open and when retrieving registers.
This specifically makes sure that an errno is returned to user space on errors in TIOCMGET instead of a zero bitmask.
Also drop the unused getdevice function which also lacked appropriate error handling.
--- drivers/usb/serial/quatech2.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-)
drivers/usb/serial/quatech2.c +13 -11
@@ -188,22 +188,22 @@ static inline int qt2_setdevice(struct u } -static inline int qt2_getdevice (struct usb_device *dev,u8 *data) -{ -return usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), -QT_SET_GET_DEVICE ,0xc0 ,0 ,0 , - data,3 ,QT2_USB_TIMEOUT ); -} -static inline int qt2_getregister (struct usb_device *dev,u8 uart,u8 reg,u8 *data) { -return usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), -QT_SET_GET_REGISTER ,0xc0 , reg, - uart, data,sizeof (*data),QT2_USB_TIMEOUT ); +int ret; + ret =usb_control_msg (dev,usb_rcvctrlpipe (dev,0 ), +QT_SET_GET_REGISTER ,0xc0 , reg, + uart, data,sizeof (*data),QT2_USB_TIMEOUT ); +if (ret <sizeof (*data)) { +if (ret >=0 ) + ret = -EIO ; + } + +return ret; } static inline int qt2_setregister(struct usb_device *dev,
@@ -372,9 +372,11 @@ static int qt2_open(struct tty_struct *t0xc0 ,0 , device_port, data, 2, QT2_USB_TIMEOUT); -if (status <0 ) { +if (status <2 ) {dev_err (&port->dev,"%s - open port failed %i\n" , __func__, status); +if (status >=0 ) + status = -EIO ;kfree (data);return status; }
Greg Kroah-Hartman
maintainerPATCH 32/39 staging: emxx_udc: remove incorrect __init annotations
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Arnd Bergmann <[email protected]>
commit 4f3445067d5f78fb8d1970b02610f85c2f377ea4 upstream.
The probe function is not marked __init, but some other functions are. This leads to a warning on older compilers (e.g. gcc-4.3), and can cause executing freed memory when built with those compilers:
WARNING: drivers/staging/emxx_udc/emxx_udc.o(.text+0x2d78): Section mismatch in reference from the function nbu2ss_drv_probe() to the function .init.text:nbu2ss_drv_contest_init()
This removes the annotations.
--- drivers/staging/emxx_udc/emxx_udc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/emxx_udc/emxx_udc.c +2 -2
@@ -3286,7 +3286,7 @@ static void __init nbu2ss_drv_set_ep_inf }/*-------------------------------------------------------------------------*/ -static void __init nbu2ss_drv_ep_init (struct nbu2ss_udc *udc) +static void nbu2ss_drv_ep_init (struct nbu2ss_udc *udc) {int i;
@@ -3302,7 +3302,7 @@ static void __init nbu2ss_drv_ep_init(st/*-------------------------------------------------------------------------*/ /* platform_driver */ -static int __init nbu2ss_drv_contest_init ( +static int nbu2ss_drv_contest_init (struct platform_device *pdev,struct nbu2ss_udc *udc) {
Greg Kroah-Hartman
maintainerPATCH 29/39 scsi: scsi_dh_emc: return success in clariion_std_inquiry()
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Carpenter <[email protected]>
commit 4d7d39a18b8b81511f0b893b7d2203790bf8a58b upstream.
We accidentally return an uninitialized variable on success.
--- drivers/scsi/device_handler/scsi_dh_emc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/device_handler/scsi_dh_emc.c +1 -1
@@ -464,7 +464,7 @@ static int clariion_prep_fn(struct scsi_static int clariion_std_inquiry (struct scsi_device *sdev,struct clariion_dh_data *csdev) { -int err; +int err =SCSI_DH_OK ;char *sp_model; err =send_inquiry_cmd (sdev,0 , csdev);
Greg Kroah-Hartman
maintainerPATCH 30/39 brcmfmac: Ensure pointer correctly set if skb data location changes
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: James Hughes <[email protected]>
commit 455a1eb4654c24560eb9dfc634f29cba3d87601e upstream.
The incoming skb header may be resized if header space is insufficient, which might change the data adddress in the skb. Ensure that a cached pointer to that data is correctly set by moving assignment to after any possible changes.
--- drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +3 -1
@@ -192,7 +192,7 @@ static netdev_tx_t brcmf_netdev_start_xmint ret;struct brcmf_if *ifp =netdev_priv (ndev);struct brcmf_pub *drvr = ifp->drvr; -struct ethhdr *eh = (struct ethhdr *)(skb->data); +struct ethhdr *eh;brcmf_dbg (DATA ,"Enter, idx=%d\n" , ifp->bssidx);
@@ -238,6 +238,8 @@ static netdev_tx_t brcmf_netdev_start_xm goto done; } + eh = (struct ethhdr *)(skb->data); +if (eh->h_proto ==htons (ETH_P_PAE ))atomic_inc (&ifp->pend_8021x_cnt);
Greg Kroah-Hartman
maintainerPATCH 36/39 ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: WANG Cong <[email protected]>
[ Upstream commit 242d3a49a2a1a71d8eb9f953db1bcaa9d698ce00 ]
For each netns (except init_net), we initialize its null entry in 3 places:
1) The template itself, as we use kmemdup()
2) Code around dst_init_metrics() in ip6_route_net_init()
3) ip6_route_dev_notify(), which is supposed to initialize it after loopback registers
Unfortunately the last one still happens in a wrong order because we expect to initialize net->ipv6.ip6_null_entry->rt6i_idev to net->loopback_dev's idev, thus we have to do that after we add idev to loopback. However, this notifier has priority == 0 same as ipv6_dev_notf, and ipv6_dev_notf is registered after ip6_route_dev_notifier so it is called actually after ip6_route_dev_notifier. This is similar to commit 2f460933f58e ("ipv6: initialize route null entry in addrconf_init()") which fixes init_net.
Fix it by picking a smaller priority for ip6_route_dev_notifier. Also, we have to release the refcnt accordingly when unregistering loopback_dev because device exit functions are called before subsys exit functions.
--- include/net/addrconf.h | 2 ++ net/ipv6/addrconf.c | 1 + net/ipv6/route.c | 13 +++++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-)
include/net/addrconf.h +2 -0
@@ -19,6 +19,8 @@#define ADDRCONF_TIMER_FUZZ (HZ / 4)#define ADDRCONF_TIMER_FUZZ_MAX (HZ) +#define ADDRCONF_NOTIFY_PRIORITY 0 +#include <linux/in.h> #include <linux/in6.h>
net/ipv6/addrconf.c +1 -0
@@ -2984,6 +2984,7 @@ static int addrconf_notify(struct notifi*/ static struct notifier_block ipv6_dev_notf = { .notifier_call = addrconf_notify, + .priority =ADDRCONF_NOTIFY_PRIORITY , };static void addrconf_type_change (struct net_device *dev,unsigned long event)
net/ipv6/route.c +11 -2
@@ -2815,7 +2815,10 @@ static int ip6_route_dev_notify(struct nstruct net_device *dev =netdev_notifier_info_to_dev (ptr);struct net *net =dev_net (dev); -if (event ==NETDEV_REGISTER && (dev->flags &IFF_LOOPBACK )) { +if (!(dev->flags &IFF_LOOPBACK )) +return NOTIFY_OK ; + +if (event ==NETDEV_REGISTER ) { net->ipv6.ip6_null_entry->dst.dev = dev; net->ipv6.ip6_null_entry->rt6i_idev =in6_dev_get (dev);#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -2824,6 +2827,12 @@ static int ip6_route_dev_notify(struct n net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev =in6_dev_get (dev);#endif + }else if (event ==NETDEV_UNREGISTER ) { +in6_dev_put (net->ipv6.ip6_null_entry->rt6i_idev); +#ifdef CONFIG_IPV6_MULTIPLE_TABLES +in6_dev_put (net->ipv6.ip6_prohibit_entry->rt6i_idev); +in6_dev_put (net->ipv6.ip6_blk_hole_entry->rt6i_idev); +#endif }return NOTIFY_OK ;
@@ -3130,7 +3139,7 @@ static struct pernet_operations ip6_routstatic struct notifier_block ip6_route_dev_notifier = { .notifier_call = ip6_route_dev_notify, - .priority =0 , + .priority =ADDRCONF_NOTIFY_PRIORITY -10 , };void __init ip6_route_init_special_entries (void )
Greg Kroah-Hartman
maintainerPATCH 35/39 ipv6: initialize route null entry in addrconf_init()
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: WANG Cong <[email protected]>
[ Upstream commit 2f460933f58eee3393aba64f0f6d14acb08d1724 ]
Andrey reported a crash on init_net.ipv6.ip6_null_entry->rt6i_idev since it is always NULL.
This is clearly wrong, we have code to initialize it to loopback_dev, unfortunately the order is still not correct.
loopback_dev is registered very early during boot, we lose a chance to re-initialize it in notifier. addrconf_init() is called after ip6_route_init(), which means we have no chance to correct it.
Fix it by moving this initialization explicitly after ipv6_add_dev(init_net.loopback_dev) in addrconf_init().
--- include/net/ip6_route.h | 1 + net/ipv6/addrconf.c | 2 ++ net/ipv6/route.c | 26 +++++++++++++++----------- 3 files changed, 18 insertions(+), 11 deletions(-)
include/net/ip6_route.h +1 -0
@@ -69,6 +69,7 @@ struct dst_entry *ip6_route_output(strucstruct dst_entry *ip6_route_lookup (struct net *net,struct flowi6 *fl6,int flags); +void ip6_route_init_special_entries (void );int ip6_route_init (void );void ip6_route_cleanup (void );
net/ipv6/addrconf.c +2 -0
@@ -5441,6 +5441,8 @@ int __init addrconf_init(void) goto errlo; } +ip6_route_init_special_entries (); +for (i =0 ; i <IN6_ADDR_HSIZE ; i++)INIT_HLIST_HEAD (&inet6_addr_lst[i]);
net/ipv6/route.c +15 -11
@@ -3133,6 +3133,21 @@ static struct notifier_block ip6_route_d .priority = 0, }; +void __init ip6_route_init_special_entries (void ) +{ +/* Registering of the loopback is done before this portion of code, +* the loopback reference in rt6_info will not be taken, do it +* manually for init_net */ + init_net.ipv6.ip6_null_entry->dst.dev = init_net.loopback_dev; + init_net.ipv6.ip6_null_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); +#ifdef CONFIG_IPV6_MULTIPLE_TABLES + init_net.ipv6.ip6_prohibit_entry->dst.dev = init_net.loopback_dev; + init_net.ipv6.ip6_prohibit_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); + init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; + init_net.ipv6.ip6_blk_hole_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); +#endif +} +int __init ip6_route_init (void ) {int ret;
@@ -3158,17 +3173,6 @@ int __init ip6_route_init(void) ip6_dst_blackhole_ops.kmem_cachep = ip6_dst_ops_template.kmem_cachep; -/* Registering of the loopback is done before this portion of code, -* the loopback reference in rt6_info will not be taken, do it -* manually for init_net */ - init_net.ipv6.ip6_null_entry->dst.dev = init_net.loopback_dev; - init_net.ipv6.ip6_null_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); -#ifdef CONFIG_IPV6_MULTIPLE_TABLES - init_net.ipv6.ip6_prohibit_entry->dst.dev = init_net.loopback_dev; - init_net.ipv6.ip6_prohibit_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); - init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; - init_net.ipv6.ip6_blk_hole_entry->rt6i_idev =in6_dev_get (init_net.loopback_dev); -#endif ret =fib6_init ();if (ret) goto out_register_subsys;
Greg Kroah-Hartman
maintainerPATCH 37/39 tcp: fix wraparound issue in tcp_lp
In reply to Greg Kroah-Hartman3.18-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eric Dumazet <[email protected]>
[ Upstream commit a9f11f963a546fea9144f6a6d1a307e814a387e7 ]
Be careful when comparing tcp_time_stamp to some u32 quantity, otherwise result can be surprising.
--- net/ipv4/tcp_lp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
net/ipv4/tcp_lp.c +4 -2
@@ -264,13 +264,15 @@ static void tcp_lp_pkts_acked(struct soc {struct tcp_sock *tp =tcp_sk (sk);struct lp *lp =inet_csk_ca (sk); +u32 delta;if (rtt_us >0 )tcp_lp_rtt_sample (sk, rtt_us);/* calc inference */ -if (tcp_time_stamp > tp->rx_opt.rcv_tsecr) - lp->inference =3 * (tcp_time_stamp - tp->rx_opt.rcv_tsecr); + delta = tcp_time_stamp - tp->rx_opt.rcv_tsecr; +if ((s32 )delta >0 ) + lp->inference =3 * delta;/* test if within inference */ if (lp->last_drop && (tcp_time_stamp - lp->last_drop < lp->inference))
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
c39a78443b01 ("ARM: OMAP5 / DRA7: Fix HYP mode boot for thumb2 build") results in
Error log:arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'
with arm:allmodconfig, arm:multi_v7_defconfig and arm:omap2plus_defconfig. I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ? Copying the author.
Guenter
Quoted 4 lines · Guenter Roeck
arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ?
It was introduced in kernel 4.2 by
14327c662822 "ARM: replace BSYM() with badr assembly macro"
The correct backport would therefore just be:
- adr r0, hyp_boot
+ adr r0, BSYM(hyp_boot)
Right?
Quoted 14 lines · Matthijs van Duin
Quoted 4 lines · Guenter Roeck
arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ?
It was introduced in kernel 4.2 by
14327c662822 "ARM: replace BSYM() with badr assembly macro"The correct backport would therefore just be:
(quoted diff) +1
-1- adr r0, hyp_boot + adr r0, BSYM(hyp_boot)
Quoted 1 line
Right?
Or just skip this for v3.18 until somebody actually needs thumb kernel with hypervisor and can provide a Tested-by.
Regards,
Tony
Greg Kroah-Hartman
maintainerQuoted 12 lines · Tony Lindgren
Quoted 11 lines · Matthijs van Duin
Quoted 4 lines · Guenter Roeck
arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ?
It was introduced in kernel 4.2 by
14327c662822 "ARM: replace BSYM() with badr assembly macro"The correct backport would therefore just be:
Quoted 7 lines
Quoted 4 lines
(quoted diff) +1
-1- adr r0, hyp_boot + adr r0, BSYM(hyp_boot)Right?
Or just skip this for v3.18 until somebody actually needs thumb kernel with hypervisor and can provide a Tested-by.
Ok, I'll drop this patch for now, it was added to fix a build warning that Arnd found. I'll wait for a proper backport if people really get annoyed by it :)
thanks,
greg k-h
Quoted 16 lines · Greg Kroah-Hartman
Quoted 15 lines · Tony Lindgren
Quoted 14 lines · Matthijs van Duin
Quoted 4 lines · Guenter Roeck
arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ?
It was introduced in kernel 4.2 by
14327c662822 "ARM: replace BSYM() with badr assembly macro"The correct backport would therefore just be:
(quoted diff) +1
-1- adr r0, hyp_boot + adr r0, BSYM(hyp_boot)
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Right?
Or just skip this for v3.18 until somebody actually needs thumb kernel with hypervisor and can provide a Tested-by.
Ok, I'll drop this patch for now, it was added to fix a build warning that Arnd found. I'll wait for a proper backport if people really get annoyed by it :)
Are you sure it was one of mine? While it seems like an important fix, I don't remember seeing it and it doesn't look like a warning fix but a boot regression.
If I did send you this commit ID, it was probably a mistake on my end, but then I'd like to find out where I went wrong.
Arnd
Greg Kroah-Hartman
maintainerQuoted 27 lines · Arnd Bergmann
Quoted 16 lines · Greg Kroah-Hartman
Quoted 15 lines · Tony Lindgren
Quoted 14 lines · Matthijs van Duin
Quoted 4 lines · Guenter Roeck
arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'I see "badr" used in later kernels, but not in v3.18. Does this possibly require some secondary patches ?
It was introduced in kernel 4.2 by
14327c662822 "ARM: replace BSYM() with badr assembly macro"The correct backport would therefore just be:
(quoted diff) +1
-1- adr r0, hyp_boot + adr r0, BSYM(hyp_boot)Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Right?
Or just skip this for v3.18 until somebody actually needs thumb kernel with hypervisor and can provide a Tested-by.
Ok, I'll drop this patch for now, it was added to fix a build warning that Arnd found. I'll wait for a proper backport if people really get annoyed by it :)
Quoted 6 lines
Are you sure it was one of mine? While it seems like an important fix, I don't remember seeing it and it doesn't look like a warning fix but a boot regression.
If I did send you this commit ID, it was probably a mistake on my end, but then I'd like to find out where I went wrong.
Ok, no, this was my fault, it came from a list of patches I was digging through that went into 4.11 to see if they were applicable to older kernels as well.
sorry for the noise,
greg k-h
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.53-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-3.18.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2
Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:
total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfig
Failure is still
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'
as reported earlier.
Details are available at http://kerneltests.org/builders.
Guenter
Greg Kroah-Hartman
maintainerQuoted 35 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfig
Quoted 6 lines
Failure is still
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'as reported earlier.
Ugh, I dropped the wrong arm patch from my queue :(
Ok, I think I've fixed it up now...
thanks,
greg k-h
Quoted 38 lines · Greg Kroah-Hartman
Quoted 37 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfigFailure is still
Quoted 9 lines
Quoted 4 lines
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'as reported earlier.
Ugh, I dropped the wrong arm patch from my queue :(
Ok, I think I've fixed it up now...
Maybe I am confused, and/or it is still too early, but linux-3.18.y ingit://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
now points to v3.18.52, ie the old version.
Guenter
Greg Kroah-Hartman
maintainerQuoted 44 lines · Guenter Roeck
Quoted 43 lines · Greg Kroah-Hartman
Quoted 41 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfigFailure is still
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'as reported earlier.
Quoted 8 lines
Quoted 4 lines
Ugh, I dropped the wrong arm patch from my queue :(
Ok, I think I've fixed it up now...
Maybe I am confused, and/or it is still too early, but linux-3.18.y in
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
now points to v3.18.52, ie the old version.
Nope, I blew away the old -rc releases when I updated the new stable releases, sorry about that. The 3.18.y branch should now have the -rc1 series in it.
thanks,
greg k-h
Quoted 50 lines · Greg Kroah-Hartman
Quoted 49 lines · Guenter Roeck
Quoted 47 lines · Greg Kroah-Hartman
Quoted 35 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfigQuoted 6 lines
Failure is still
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'as reported earlier.
Ugh, I dropped the wrong arm patch from my queue :(
Ok, I think I've fixed it up now...
Quoted 8 lines
Quoted 3 lines
Maybe I am confused, and/or it is still too early, but linux-3.18.y in
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
now points to v3.18.52, ie the old version.Nope, I blew away the old -rc releases when I updated the new stable releases, sorry about that. The 3.18.y branch should now have the -rc1 series in it.
Confirmed. For v3.18.52-37-gf15fc0e:
Build results:
total: 136 pass: 136 fail: 0 Qemu test results: total: 111 pass: 111 fail: 0
Thanks,
Guenter
Greg Kroah-Hartman
maintainerQuoted 60 lines · Guenter Roeck
Quoted 50 lines · Greg Kroah-Hartman
Quoted 49 lines · Guenter Roeck
Quoted 47 lines · Greg Kroah-Hartman
Quoted 35 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.18.53 release. There are 39 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Sat May 13 13:02:15 UTC 2017. Anything received after that time might be too late.
[ This is with v3.18.52-39-g710739d ]
Build results:
total: 136 pass: 134 fail: 2Failed builds:
arm:allmodconfig
arm:omap2plus_defconfig
Qemu test results:total: 111 pass: 96 fail: 15 Failed tests: arm:beagle:multi_v7_defconfig:omap3-beagle arm:beaglexm:multi_v7_defconfig:omap3-beagle-xm arm:overo:multi_v7_defconfig:omap3-overo-tobi arm:sabrelite:multi_v7_defconfig:imx6dl-sabrelite arm:vexpress-a9:multi_v7_defconfig:vexpress-v2p-ca9 arm:vexpress-a15:multi_v7_defconfig:vexpress-v2p-ca15-tc1 arm:vexpress-a15-a7:multi_v7_defconfig:vexpress-v2p-ca15_a7 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc702 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zc706 arm:xilinx-zynq-a9:multi_v7_defconfig:zynq-zed arm:midway:multi_v7_defconfig:ecx-2000 arm:beagle:omap2plus_defconfig:omap3-beagle arm:beaglexm:omap2plus_defconfig:omap3-beagle-xm arm:overo:omap2plus_defconfig:omap3-overo-tobi powerpc:g3beige:nosmp:ppc_book3s_defconfigQuoted 6 lines
Failure is still
arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:arch/arm/mach-omap2/omap-headsmp.S:60: Error: bad instruction `badr r0,hyp_boot'as reported earlier.
Ugh, I dropped the wrong arm patch from my queue :(
Ok, I think I've fixed it up now...
Quoted 8 lines
Quoted 3 lines
Maybe I am confused, and/or it is still too early, but linux-3.18.y in
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
now points to v3.18.52, ie the old version.Nope, I blew away the old -rc releases when I updated the new stable releases, sorry about that. The 3.18.y branch should now have the -rc1 series in it.
Quoted 6 lines
Confirmed. For v3.18.52-37-gf15fc0e:
Build results:
total: 136 pass: 136 fail: 0 Qemu test results: total: 111 pass: 111 fail: 0
Ah, thanks for letting me know, sorry for getting this wrong the last time.
greg k-h