3.4.61-stable review
Subsystems (24)
Greg Kroah-Hartman
maintainercover 3.4.61-stable review
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. 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.0/stable-review/patch-3.4.61-rc1.gz
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 3.4.61-rc1
Roland Dreier <[email protected]>
SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a signal
Nicholas Bellinger <[email protected]>
target: Fix trailing ASCII space usage in INQUIRY vendor+model
Lan Tianyu <[email protected]>
ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
Stanislaw Gruszka <[email protected]>
iwl4965: fix rfkill set state regression
Helmut Schaa <[email protected]>
ath9k_htc: Restore skb headroom when returning skb to mac80211
Trond Myklebust <[email protected]>
SUNRPC: Fix memory corruption issue on 32-bit highmem systems
Imre Deak <[email protected]>
drm/i915: ivb: fix edp voltage swing reg val
Jakob Bornecrantz <[email protected]>
drm/vmwgfx: Split GMR2_REMAP commands if they are to large
Russ Anderson <[email protected]>
drivers/base/memory.c: fix show_mem_removable() to handle missing sections
Paul Bolle <[email protected]>
regmap: silence GCC warning
Eugene Surovegin <[email protected]>
powerpc/hvsi: Increase handshake timeout from 200ms to 400ms.
Paul Mackerras <[email protected]>
powerpc: Work around gcc miscompilation of __pa() on 64-bit
Takashi Iwai <[email protected]>
ALSA: opti9xx: Fix conflicting driver object name
Dave Kleikamp <[email protected]>
jfs: fix readdir cookie incompatibility with NFSv4
-------------
Diffstat:
Makefile | 4 +- arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/page.h | 10 +++++ drivers/acpi/ec.c | 4 ++ drivers/base/memory.c | 2 + drivers/base/regmap/regmap.c | 2 +- drivers/gpu/drm/i915/i915_reg.h | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 58 ++++++++++++++++++--------- drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 10 +++++ drivers/net/wireless/iwlegacy/4965-mac.c | 2 +- drivers/target/target_core_cdb.c | 9 +++-- drivers/tty/hvc/hvsi_lib.c | 4 +- fs/bio.c | 20 ++++++--- fs/jfs/jfs_dtree.c | 31 ++++++++++---- net/sunrpc/xdr.c | 9 +++-- sound/isa/opti9xx/opti92x-ad1848.c | 8 +--- 16 files changed, 125 insertions(+), 51 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/14 jfs: fix readdir cookie incompatibility with NFSv4
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dave Kleikamp <[email protected]>
commit 44512449c0ab368889dd13ae0031fba74ee7e1d2 upstream.
NFSv4 reserves readdir cookie values 0-2 for special entries (. and ..), but jfs allows a value of 2 for a non-special entry. This incompatibility can result in the nfs client reporting a readdir loop.
This patch doesn't change the value stored internally, but adds one to the value exposed to the iterate method.
[bwh: Backported to 3.2:
- Adjust context
- s/ctx->pos/filp->f_pos/]
--- fs/jfs/jfs_dtree.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-)
fs/jfs/jfs_dtree.c +23 -8
@@ -3047,6 +3047,14 @@ int jfs_readdir(struct file *filp, void dir_index = (u32 ) filp->f_pos; +/* +* NFSv4 reserves cookies 1 and 2 for . and .. so we add +* the value we return to the vfs is one greater than the +* one we use internally. +*/ +if (dir_index) + dir_index--; +if (dir_index >1 ) {struct dir_table_slot dirtab_slot;
@@ -3086,7 +3094,7 @@ int jfs_readdir(struct file *filp, voidif (p->header.flag &BT_INTERNAL ) {jfs_err ("jfs_readdir: bad index table" );DT_PUTPAGE (mp); - filp->f_pos =-1 ; + filp->f_pos =DIREND ;return 0 ; } }else {
@@ -3094,7 +3102,7 @@ int jfs_readdir(struct file *filp, void/* * self "." */ - filp->f_pos =0 ; + filp->f_pos =1 ;if (filldir (dirent,"." ,1 ,0 , ip->i_ino,DT_DIR ))return 0 ;
@@ -3102,7 +3110,7 @@ int jfs_readdir(struct file *filp, void/* * parent ".." */ - filp->f_pos =1 ; + filp->f_pos =2 ;if (filldir (dirent,".." ,2 ,1 ,PARENT (ip),DT_DIR ))return 0 ;
@@ -3123,24 +3131,25 @@ int jfs_readdir(struct file *filp, void/* * Legacy filesystem - OS/2 & Linux JFS < 0.3.6 * -* pn = index = 0: First entry "." -* pn = 0; index = 1: Second entry ".." +* pn = 0; index = 1: First entry "." +* pn = 0; index = 2: Second entry ".." * pn > 0: Real entries, pn=1 -> leftmost page * pn = index = -1: No more entries */ dtpos = filp->f_pos; -if (dtpos ==0 ) { +if (dtpos <2 ) {/* build "." entry */ + filp->f_pos =1 ;if (filldir (dirent,"." ,1 , filp->f_pos, ip->i_ino,DT_DIR ))return 0 ; - dtoffset->index =1 ; + dtoffset->index =2 ; filp->f_pos = dtpos; }if (dtoffset->pn ==0 ) { -if (dtoffset->index ==1 ) { +if (dtoffset->index ==2 ) {/* build ".." entry */ if (filldir(dirent, "..", 2, filp->f_pos,
@@ -3233,6 +3242,12 @@ int jfs_readdir(struct file *filp, void } jfs_dirent->position = unique_pos++; } +/* +* We add 1 to the index because we may +* use a value of 2 internally, and NFSv4 +* doesn't like that. +*/ + jfs_dirent->position++; }else { jfs_dirent->position = dtpos; len =min (d_namleft,DTLHDRDATALEN_LEGACY );
Greg Kroah-Hartman
maintainerPATCH 2/14 ALSA: opti9xx: Fix conflicting driver object name
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <[email protected]>
commit fb615499f0ad28ed74201c1cdfddf9e64e205424 upstream.
The recent commit to delay the release of kobject triggered NULL dereferences of opti9xx drivers. The cause is that all snd-opti92x-ad1848, snd-opti92x-cs4231 and snd-opti93x drivers register the PnP card driver with the very same name, and also snd-opti92x-ad1848 and -cs4231 drivers register the ISA driver with the same name, too. When these drivers are built in, quick "register-release-and-re-register" actions occur, and this results in Oops because of the same name is assigned to the kobject.
The fix is simply to assign individual names. As a bonus, by using KBUILD_MODNAME, the patch reduces more lines than it adds.
The fix is based on the suggestion by Russell King.
--- sound/isa/opti9xx/opti92x-ad1848.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
sound/isa/opti9xx/opti92x-ad1848.c +2 -6
@@ -173,11 +173,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_opti9x#endif /* CONFIG_PNP */ -#ifdef OPTi93X -#define DEV_NAME "opti93x" -#else -#define DEV_NAME "opti92x" -#endif +#define DEV_NAME KBUILD_MODNAMEstatic char * snd_opti9xx_names[] = {"unknown" ,
@@ -1126,7 +1122,7 @@ static void __devexit snd_opti9xx_pnp_restatic struct pnp_card_driver opti9xx_pnpc_driver = { .flags =PNP_DRIVER_RES_DISABLE , - .name ="opti9xx" , + .name =DEV_NAME , .id_table = snd_opti9xx_pnpids, .probe = snd_opti9xx_pnp_probe, .remove =__devexit_p (snd_opti9xx_pnp_remove),
Greg Kroah-Hartman
maintainerPATCH 3/14 powerpc: Work around gcc miscompilation of __pa() on 64-bit
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Paul Mackerras <[email protected]>
commit bdbc29c19b2633b1d9c52638fb732bcde7a2031a upstream.
On 64-bit, __pa(&static_var) gets miscompiled by recent versions of gcc as something like:
addis 3,2,.LANCHOR1+4611686018427387904@toc@ha
addi 3,3,.LANCHOR1+4611686018427387904@toc@lThis ends up effectively ignoring the offset, since its bottom 32 bits are zero, and means that the result of __pa() still has 0xC in the top nibble. This happens with gcc 4.8.1, at least.
To work around this, for 64-bit we make __pa() use an AND operator, and for symmetry, we make __va() use an OR operator. Using an AND operator rather than a subtraction ends up with slightly shorter code since it can be done with a single clrldi instruction, whereas it takes three instructions to form the constant (-PAGE_OFFSET) and add it on. (Note that MEMORY_START is always 0 on 64-bit.)
--- arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/page.h | 10 ++++++++++ 2 files changed, 11 insertions(+)
arch/powerpc/Kconfig +1 -0
@@ -979,6 +979,7 @@ config RELOCATABLE must live at a different physical address than the primary kernel. +# This value must have zeroes in the bottom 60 bits otherwise lots will break config PAGE_OFFSET hex default "0xc000000000000000"
arch/powerpc/include/asm/page.h +10 -0
@@ -211,9 +211,19 @@ extern long long virt_phys_offset;#define __va (x) ((void *)(unsigned long)((phys_addr_t)(x) + VIRT_PHYS_OFFSET))#define __pa (x) ((unsigned long)(x) - VIRT_PHYS_OFFSET)#else +#ifdef CONFIG_PPC64 +/* +* gcc miscompiles (unsigned long)(&static_var) - PAGE_OFFSET +* with -mcmodel=medium, so we use & and | instead of - and + on 64-bit. +*/ +#define __va (x) ((void *)(unsigned long)((phys_addr_t)(x) | PAGE_OFFSET)) +#define __pa (x) ((unsigned long)(x) & 0x0fffffffffffffffUL) + +#else /* 32-bit, non book E */ #define __va (x) ((void *)(unsigned long)((phys_addr_t)(x) + PAGE_OFFSET - MEMORY_START))#define __pa (x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START)#endif +#endif /* * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,
Greg Kroah-Hartman
maintainerPATCH 4/14 powerpc/hvsi: Increase handshake timeout from 200ms to 400ms.
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eugene Surovegin <[email protected]>
commit d220980b701d838560a70de691b53be007e99e78 upstream.
This solves a problem observed in kexec'ed kernel where 200ms timeout is too short and bootconsole fails to initialize. Console did eventually become workable but much later into the boot process.
Observed timeout was around 260ms, but I decided to make it a little bigger for more reliability.
This has been tested on Power7 machine with Petitboot as a primary bootloader and PowerNV firmware.
--- drivers/tty/hvc/hvsi_lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/tty/hvc/hvsi_lib.c +2 -2
@@ -341,8 +341,8 @@ void hvsilib_establish(struct hvsi_privpr_devel ("HVSI@%x: ... waiting handshake\n" , pv->termno); -/* Try for up to 200s */ -for (timeout =0 ; timeout <20 ; timeout++) { +/* Try for up to 400ms */ +for (timeout =0 ; timeout <40 ; timeout++) {if (pv->established) goto established;if (!hvsi_get_packet (pv))
Greg Kroah-Hartman
maintainerPATCH 5/14 regmap: silence GCC warning
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Paul Bolle <[email protected]>
commit a8f28cfad8cd44d7c34b166d0e5ace1125dbee1f upstream.
Building regmap.o triggers this GCC warning:
drivers/base/regmap/regmap.c: In function ‘regmap_raw_read’:
drivers/base/regmap/regmap.c:1172:6: warning: ‘ret’ may be used uninitialized in this function [-Wmaybe-uninitialized]
Long story short: Jakub Jelinek pointed out that there is a type mismatch between 'num' in regmap_volatile_range() and 'val_count' in regmap_raw_read(). And indeed, converting 'num' to the type of 'val_count' (ie, size_t) makes this warning go away.
--- drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/base/regmap/regmap.c +1 -1
@@ -69,7 +69,7 @@ bool regmap_precious(struct regmap *map, }static bool regmap_volatile_range (struct regmap *map,unsigned int reg, -unsigned int num) +size_t num) {unsigned int i;
Greg Kroah-Hartman
maintainerPATCH 6/14 drivers/base/memory.c: fix show_mem_removable() to handle missing sections
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Russ Anderson <[email protected]>
commit 21ea9f5ace3a7317cc3ba1fbc749758021a83136 upstream.
"cat /sys/devices/system/memory/memory*/removable" crashed the system.
The problem is that show_mem_removable() is passing a bad pfn to is_mem_section_removable(), which causes
if (!node_online(page_to_nid(page)))
to blow up. Why is it passing in a bad pfn?
The reason is that show_mem_removable() will loop sections_per_block times. sections_per_block is 16, but mem->section_count is 8, indicating holes in this memory block. Checking that the memory section is present before checking to see if the memory section is removable fixes the problem.
harp5-sys:~ # cat /sys/devices/system/memory/memory*/removable 0
1
1
1
1
1
1
1
1
1
1
1
1
1
BUG: unable to handle kernel paging request at ffffea00c3200000
IP: [<ffffffff81117ed1>] is_pageblock_removable_nolock+0x1/0x90
PGD 83ffd4067 PUD 37bdfce067 PMD 0
Oops: 0000 [#1] SMP
Modules linked in: autofs4 binfmt_misc rdma_ucm rdma_cm iw_cm ib_addr ib_srp scsi_transport_srp scsi_tgt ib_ipoib ib_cm ib_uverbs ib_umad iw_cxgb3 cxgb3 mdio mlx4_en mlx4_ib ib_sa mlx4_core ib_mthca ib_mad ib_core fuse nls_iso8859_1 nls_cp437 vfat fat joydev loop hid_generic usbhid hid hwperf(O) numatools(O) dm_mod iTCO_wdt ipv6 iTCO_vendor_support igb i2c_i801 ioatdma i2c_algo_bit ehci_pci pcspkr lpc_ich i2c_core ehci_hcd ptp sg mfd_core dca rtc_cmos pps_core mperf button xhci_hcd sd_mod crc_t10dif usbcore usb_common scsi_dh_emc scsi_dh_hp_sw scsi_dh_alua scsi_dh_rdac scsi_dh gru(O) xvma(O) xfs crc32c libcrc32c thermal sata_nv processor piix mptsas mptscsih scsi_transport_sas mptbase megaraid_sas fan thermal_sys hwmon ext3 jbd ata_piix ahci libahci libata scsi_mod
CPU: 4 PID: 5991 Comm: cat Tainted: G O 3.11.0-rc5-rja-uv+ #10
Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
task: ffff88081f034580 ti: ffff880820022000 task.ti: ffff880820022000
RIP: 0010:[<ffffffff81117ed1>] [<ffffffff81117ed1>] is_pageblock_removable_nolock+0x1/0x90
RSP: 0018:ffff880820023df8 EFLAGS: 00010287
RAX: 0000000000040000 RBX: ffffea00c3200000 RCX: 0000000000000004
RDX: ffffea00c30b0000 RSI: 00000000001c0000 RDI: ffffea00c3200000
RBP: ffff880820023e38 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000001 R12: ffffea00c33c0000
R13: 0000160000000000 R14: 6db6db6db6db6db7 R15: 0000000000000001
FS: 00007ffff7fb2700(0000) GS:ffff88083fc80000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffea00c3200000 CR3: 000000081b954000 CR4: 00000000000407e0
Call Trace:
show_mem_removable+0x41/0x70
dev_attr_show+0x2a/0x60
sysfs_read_file+0xf7/0x1c0
vfs_read+0xc8/0x130
SyS_read+0x5d/0xa0
system_call_fastpath+0x16/0x1b--- drivers/base/memory.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/base/memory.c +2 -0
@@ -154,6 +154,8 @@ static ssize_t show_mem_removable(struct container_of(dev, struct memory_block, dev);for (i =0 ; i < sections_per_block; i++) { +if (!present_section_nr (mem->start_section_nr + i)) +continue ; pfn =section_nr_to_pfn (mem->start_section_nr + i); ret &=is_mem_section_removable (pfn,PAGES_PER_SECTION ); }
Greg Kroah-Hartman
maintainerPATCH 7/14 drm/vmwgfx: Split GMR2_REMAP commands if they are to large
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jakob Bornecrantz <[email protected]>
commit 6e4dcff3adbf25acb87e74500a58e3c07bdec40f upstream.
This fixes the piglit test texturing/max-texture-size causing the VM to die due to a too large SVGA command.
--- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 60 ++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 20 deletions(-)
drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c +40 -20
@@ -29,7 +29,9 @@#include "drmP.h" #include "ttm/ttm_bo_driver.h" -#define VMW_PPN_SIZE sizeof(unsigned long) +#define VMW_PPN_SIZE (sizeof(unsigned long)) +/* A future safe maximum remap size. */ +#define VMW_PPN_PER_REMAP ((31 * 1024) / VMW_PPN_SIZE) static int vmw_gmr2_bind(struct vmw_private *dev_priv, struct page *pages[],
@@ -38,43 +40,61 @@ static int vmw_gmr2_bind(struct vmw_priv {SVGAFifoCmdDefineGMR2 define_cmd;SVGAFifoCmdRemapGMR2 remap_cmd; -uint32_t define_size =sizeof (define_cmd) +4 ; -uint32_t remap_size =VMW_PPN_SIZE * num_pages +sizeof (remap_cmd) +4 ;uint32_t *cmd;uint32_t *cmd_orig; +uint32_t define_size =sizeof (define_cmd) +sizeof (*cmd); +uint32_t remap_num = num_pages /VMW_PPN_PER_REMAP + ((num_pages %VMW_PPN_PER_REMAP ) >0 ); +uint32_t remap_size =VMW_PPN_SIZE * num_pages + (sizeof (remap_cmd) +sizeof (*cmd)) * remap_num; +uint32_t remap_pos =0 ; +uint32_t cmd_size = define_size + remap_size;uint32_t i; - cmd_orig = cmd =vmw_fifo_reserve (dev_priv, define_size + remap_size); + cmd_orig = cmd =vmw_fifo_reserve (dev_priv, cmd_size);if (unlikely (cmd ==NULL ))return -ENOMEM ; define_cmd.gmrId = gmr_id; define_cmd.numPages = num_pages; + *cmd++ =SVGA_CMD_DEFINE_GMR2 ; +memcpy (cmd, &define_cmd,sizeof (define_cmd)); + cmd +=sizeof (define_cmd) /sizeof (*cmd); + +/* +* Need to split the command if there are too many +* pages that goes into the gmr. +*/ + remap_cmd.gmrId = gmr_id; remap_cmd.flags = (VMW_PPN_SIZE >sizeof (*cmd)) ?SVGA_REMAP_GMR2_PPN64 :SVGA_REMAP_GMR2_PPN32 ; - remap_cmd.offsetPages =0 ; - remap_cmd.numPages = num_pages; - *cmd++ =SVGA_CMD_DEFINE_GMR2 ; -memcpy (cmd, &define_cmd,sizeof (define_cmd)); - cmd +=sizeof (define_cmd) /sizeof (uint32); +while (num_pages >0 ) { +unsigned long nr =min (num_pages, (unsigned long )VMW_PPN_PER_REMAP ); + + remap_cmd.offsetPages = remap_pos; + remap_cmd.numPages = nr; - *cmd++ =SVGA_CMD_REMAP_GMR2 ; -memcpy (cmd, &remap_cmd,sizeof (remap_cmd)); - cmd +=sizeof (remap_cmd) /sizeof (uint32); - -for (i =0 ; i < num_pages; ++i) { -if (VMW_PPN_SIZE <=4 ) - *cmd =page_to_pfn (*pages++); -else - *((uint64_t *)cmd) =page_to_pfn (*pages++); + *cmd++ =SVGA_CMD_REMAP_GMR2 ; +memcpy (cmd, &remap_cmd,sizeof (remap_cmd)); + cmd +=sizeof (remap_cmd) /sizeof (*cmd); + +for (i =0 ; i < nr; ++i) { +if (VMW_PPN_SIZE <=4 ) + *cmd =page_to_pfn (*pages++); +else + *((uint64_t *)cmd) =page_to_pfn (*pages++); - cmd +=VMW_PPN_SIZE /sizeof (*cmd); + cmd +=VMW_PPN_SIZE /sizeof (*cmd); + } + + num_pages -= nr; + remap_pos += nr; } -vmw_fifo_commit (dev_priv, define_size + remap_size); +BUG_ON (cmd != cmd_orig + cmd_size /sizeof (*cmd)); + +vmw_fifo_commit (dev_priv, cmd_size);return 0 ; }
Greg Kroah-Hartman
maintainerPATCH 8/14 drm/i915: ivb: fix edp voltage swing reg val
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Imre Deak <[email protected]>
commit 77fa4cbd5fa389e28419bbe8ac491b5fdd54840d upstream.
Fix the typo introduced in
commit 1a2eb4604b85c5efb343da8a4dcf41288fcfca85
Author: Keith Packard <[email protected]> Date: Wed Nov 16 16:26:07 2011 -0800
drm/i915: Hook up Ivybridge eDP
This fixes eDP link-training failures and cases where all voltage swing /pre-emphasis levels were tried and failed during clock recovery and - as a fallback - we go on to do channel equalization with the last voltage swing/pre-emphasis level which will succeed. Both issues can lead to a blank screen.
v2:
- improve commit message
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64880
--- drivers/gpu/drm/i915/i915_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/i915/i915_reg.h +1 -1
@@ -3741,7 +3741,7 @@#define EDP_LINK_TRAIN_600MV_0DB_IVB (0x30 <<22)#define EDP_LINK_TRAIN_600MV_3_5DB_IVB (0x36 <<22)#define EDP_LINK_TRAIN_800MV_0DB_IVB (0x38 <<22) -#define EDP_LINK_TRAIN_800MV_3_5DB_IVB (0x33 <<22) +#define EDP_LINK_TRAIN_800MV_3_5DB_IVB (0x3e <<22)/* legacy values */ #define EDP_LINK_TRAIN_500MV_0DB_IVB (0x00 <<22)
Greg Kroah-Hartman
maintainerPATCH 9/14 SUNRPC: Fix memory corruption issue on 32-bit highmem systems
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <[email protected]>
commit 347e2233b7667e336d9f671f1a52dfa3f0416e2c upstream.
Some architectures, such as ARM-32 do not return the same base address when you call kmap_atomic() twice on the same page.
This causes problems for the memmove() call in the XDR helper routine "_shift_data_right_pages()", since it defeats the detection of overlapping memory ranges, and has been seen to corrupt memory.
The fix is to distinguish between the case where we're doing an inter-page copy or not. In the former case of we know that the memory ranges cannot possibly overlap, so we can additionally micro-optimise by replacing memmove() with memcpy().
--- net/sunrpc/xdr.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
net/sunrpc/xdr.c +6 -3
@@ -233,10 +233,13 @@ _shift_data_right_pages(struct page **pa pgfrom_base -= copy; vto =kmap_atomic (*pgto); - vfrom =kmap_atomic (*pgfrom); -memmove (vto + pgto_base, vfrom + pgfrom_base, copy); +if (*pgto != *pgfrom) { + vfrom =kmap_atomic (*pgfrom); +memcpy (vto + pgto_base, vfrom + pgfrom_base, copy); +kunmap_atomic (vfrom); + }else +memmove (vto + pgto_base, vto + pgfrom_base, copy);flush_dcache_page (*pgto); -kunmap_atomic (vfrom);kunmap_atomic (vto); }while ((len -= copy) !=0 );
Greg Kroah-Hartman
maintainerPATCH 10/14 ath9k_htc: Restore skb headroom when returning skb to mac80211
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Helmut Schaa <[email protected]>
commit d2e9fc141e2aa21f4b35ee27072d84e9aa6e2ba0 upstream.
ath9k_htc adds padding between the 802.11 header and the payload during TX by moving the header. When handing the frame back to mac80211 for TX status handling the header is not moved back into its original position. This can result in a too small skb headroom when entering ath9k_htc again (due to a soft retransmission for example) causing an skb_under_panic oops.
Fix this by moving the 802.11 header back into its original position before returning the frame to mac80211 as other drivers like rt2x00 or ath5k do.
--- drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +10 -0
@@ -448,6 +448,7 @@ static void ath9k_htc_tx_process(structstruct ieee80211_conf *cur_conf = &priv->hw->conf;bool txok;int slot; +int hdrlen, padsize; slot =strip_drv_header (priv, skb);if (slot <0 ) {
@@ -504,6 +505,15 @@ send_mac80211:ath9k_htc_tx_clear_slot (priv, slot); +/* Remove padding before handing frame back to mac80211 */ + hdrlen =ieee80211_get_hdrlen_from_skb (skb); + + padsize = hdrlen &3 ; +if (padsize && skb->len > hdrlen + padsize) { +memmove (skb->data + padsize, skb->data, hdrlen); +skb_pull (skb, padsize); + } +/* Send status to mac80211 */ ieee80211_tx_status (priv->hw, skb); }
Greg Kroah-Hartman
maintainerPATCH 11/14 iwl4965: fix rfkill set state regression
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Stanislaw Gruszka <[email protected]>
commit b2fcc0aee58a3435566dd6d8501a0b355552f28b upstream.
My current 3.11 fix:
commit 788f7a56fce1bcb2067b62b851a086fca48a0056
Author: Stanislaw Gruszka <[email protected]> Date: Thu Aug 1 12:07:55 2013 +0200
iwl4965: reset firmware after rfkill off
broke rfkill notification to user-space . I missed that bug, because I compiled without CONFIG_RFKILL, sorry about that.
--- drivers/net/wireless/iwlegacy/4965-mac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/iwlegacy/4965-mac.c +1 -1
@@ -4415,9 +4415,9 @@ il4965_irq_tasklet(struct il_priv *il)set_bit (S_RFKILL , &il->status); }else {clear_bit (S_RFKILL , &il->status); -wiphy_rfkill_set_hw_state (il->hw->wiphy, hw_rf_kill);il_force_reset (il, true); } +wiphy_rfkill_set_hw_state (il->hw->wiphy, hw_rf_kill); handled |=CSR_INT_BIT_RF_KILL ; }
Greg Kroah-Hartman
maintainerPATCH 12/14 ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Lan Tianyu <[email protected]>
commit 524f42fab787a9510be826ce3d736b56d454ac6d upstream.
The ECDT of ASUSTEK L4R doesn't provide correct command and data I/O ports. The DSDT provides the correct information instead.
For this reason, add this machine to quirk list for ECDT validation and use the EC information from the DSDT.
[rjw: Changelog]
References: https://bugzilla.kernel.org/show_bug.cgi?id=60765
--- drivers/acpi/ec.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/acpi/ec.c +4 -0
@@ -978,6 +978,10 @@ static struct dmi_system_id __initdata e ec_skip_dsdt_scan, "HP Folio 13", {DMI_MATCH (DMI_SYS_VENDOR ,"Hewlett-Packard" ), DMI_MATCH(DMI_PRODUCT_NAME, "HP Folio 13"),}, NULL}, + { + ec_validate_ecdt, "ASUS hardware", { +DMI_MATCH (DMI_SYS_VENDOR ,"ASUSTek Computer Inc." ), + DMI_MATCH(DMI_PRODUCT_NAME, "L4R"),}, NULL}, {}, };
Greg Kroah-Hartman
maintainerPATCH 13/14 target: Fix trailing ASCII space usage in INQUIRY vendor+model
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nicholas Bellinger <[email protected]>
commit ee60bddba5a5f23e39598195d944aa0eb2d455e5 upstream.
This patch fixes spc_emulate_inquiry_std() to add trailing ASCII spaces for INQUIRY vendor + model fields following SPC-4 text:
"ASCII data fields described as being left-aligned shall have any
unused bytes at the end of the field (i.e., highest offset) and the unused bytes shall be filled with ASCII space characters (20h)."
This addresses a problem with Falconstor NSS multipathing.
--- drivers/target/target_core_cdb.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/target/target_core_cdb.c +6 -3
@@ -97,9 +97,12 @@ target_emulate_inquiry_std(struct se_cmd buf[7 ] =0x2 ;/* CmdQue=1 */ -snprintf (&buf[8 ],8 ,"LIO-ORG" ); -snprintf (&buf[16 ],16 ,"%s" , dev->se_sub_dev->t10_wwn.model); -snprintf (&buf[32 ],4 ,"%s" , dev->se_sub_dev->t10_wwn.revision); +memcpy (&buf[8 ],"LIO-ORG " ,8 ); +memset (&buf[16 ],0x20 ,16 ); +memcpy (&buf[16 ], dev->se_sub_dev->t10_wwn.model, +min_t (size_t,strlen (dev->se_sub_dev->t10_wwn.model),16 )); +memcpy (&buf[32 ], dev->se_sub_dev->t10_wwn.revision, +min_t (size_t,strlen (dev->se_sub_dev->t10_wwn.revision),4 )); buf[4 ] =31 ;/* Set additional length to 31 */ return 0 ;
Greg Kroah-Hartman
maintainerPATCH 14/14 SCSI: sg: Fix user memory corruption when SG_IO is interrupted by a signal
In reply to Greg Kroah-Hartman3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Roland Dreier <[email protected]>
commit 35dc248383bbab0a7203fca4d722875bc81ef091 upstream.
There is a nasty bug in the SCSI SG_IO ioctl that in some circumstances leads to one process writing data into the address space of some other random unrelated process if the ioctl is interrupted by a signal. What happens is the following:
- A process issues an SG_IO ioctl with direction DXFER_FROM_DEV (ie the underlying SCSI command will transfer data from the SCSI device to the buffer provided in the ioctl)
- Before the command finishes, a signal is sent to the process waiting in the ioctl. This will end up waking up the sg_ioctl() code:
result = wait_event_interruptible(sfp->read_wait, (srp_done(sfp, srp) || sdp->detached));
but neither srp_done() nor sdp->detached is true, so we end up just setting srp->orphan and returning to userspace:
srp->orphan = 1; write_unlock_irq(&sfp->rq_list_lock); return result; /* -ERESTARTSYS because signal hit process */
At this point the original process is done with the ioctl and blithely goes ahead handling the signal, reissuing the ioctl, etc.
- Eventually, the SCSI command issued by the first ioctl finishes and ends up in sg_rq_end_io(). At the end of that function, we run through:
write_lock_irqsave(&sfp->rq_list_lock, iflags);
if (unlikely(srp->orphan)) {
if (sfp->keep_orphan)
srp->sg_io_owned = 0;
else
done = 0;
}
srp->done = done;
write_unlock_irqrestore(&sfp->rq_list_lock, iflags);
if (likely(done)) {
/* Now wake up any sg_read() that is waiting for this
* packet.
*/
wake_up_interruptible(&sfp->read_wait);
kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN);
kref_put(&sfp->f_ref, sg_remove_sfp);
} else {
INIT_WORK(&srp->ew.work, sg_rq_end_io_usercontext);
schedule_work(&srp->ew.work);
} Since srp->orphan *is* set, we set done to 0 (assuming the userspace app has not set keep_orphan via an SG_SET_KEEP_ORPHAN ioctl), and therefore we end up scheduling sg_rq_end_io_usercontext() to run in a workqueue.
- In workqueue context we go through sg_rq_end_io_usercontext() -> sg_finish_rem_req() -> blk_rq_unmap_user() -> ... -> bio_uncopy_user() -> __bio_copy_iov() -> copy_to_user().
The key point here is that we are doing copy_to_user() on a workqueue -- that is, we're on a kernel thread with current->mm equal to whatever random previous user process was scheduled before this kernel thread. So we end up copying whatever data the SCSI command returned to the virtual address of the buffer passed into the original ioctl, but it's quite likely we do this copying into a different address space!
As suggested by James Bottomley <[email protected]>, add a check for current->mm (which is NULL if we're on a kernel thread without a real userspace address space) in bio_uncopy_user(), and skip the copy if we're on a kernel thread.
There's no reason that I can think of for any caller of bio_uncopy_user() to want to do copying on a kernel thread with a random active userspace address space.
Huge thanks to Costa Sapuntzakis <[email protected]> for the original pointer to this bug in the sg code.
[lizf: backported to 3.4:
- Use __bio_for_each_segment() instead of bio_for_each_segment_all()]
--- fs/bio.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-)
fs/bio.c +15 -5
@@ -787,12 +787,22 @@ static int __bio_copy_iov(struct bio *biint bio_uncopy_user (struct bio *bio) {struct bio_map_data *bmd = bio->bi_private; -int ret =0 ; +struct bio_vec *bvec; +int ret =0 , i; -if (!bio_flagged (bio,BIO_NULL_MAPPED )) - ret =__bio_copy_iov (bio, bmd->iovecs, bmd->sgvecs, - bmd->nr_sgvecs,bio_data_dir (bio) ==READ , -0 , bmd->is_our_pages); +if (!bio_flagged (bio,BIO_NULL_MAPPED )) { +/* +* if we're in a workqueue, the request is orphaned, so +* don't copy into a random user address space, just free. +*/ +if (current->mm) + ret =__bio_copy_iov (bio, bmd->iovecs, bmd->sgvecs, + bmd->nr_sgvecs,bio_data_dir (bio) ==READ , +0 , bmd->is_our_pages); +else if (bmd->is_our_pages) +__bio_for_each_segment (bvec, bio, i,0 ) +__free_page (bvec->bv_page); + }bio_free_map_data (bmd);bio_put (bio);return ret;
Quoted 5 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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.
Quoted 7 lines
Responses should be made by Sat Sep 7 20:25:41 UTC 2013. 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.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
buildbot says:
total: 93 pass: 80 skipped: 8 fail: 5
This matches the test results for the previous release.
qemu test runs for microblaze, mips, mips64, ppc, x86, and x86_64 are also fine.
Details are available at http://server.roeck-us.net:8010/builders.
Guenter
Greg Kroah-Hartman
maintainerQuoted 9 lines · Guenter Roeck
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
Quoted 8 lines
Quoted 4 lines
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
buildbot says:
total: 93 pass: 80 skipped: 8 fail: 5This matches the test results for the previous release.
Hm, did we ever figure out how to fix those 5 failures? Or have we just given up on them for now (which is fine by me.)
Quoted 1 line
qemu test runs for microblaze, mips, mips64, ppc, x86, and
x86_64are also fine.
Thanks for testing and letting me know.
greg k-h
Quoted 15 lines · Greg Kroah-Hartman
Quoted 14 lines · Guenter Roeck
Quoted 12 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. 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.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
Quoted 7 lines
Quoted 3 lines
buildbot says:
total: 93 pass: 80 skipped: 8 fail: 5This matches the test results for the previous release.
Hm, did we ever figure out how to fix those 5 failures? Or have we just given up on them for now (which is fine by me.)
I concluded that the failues are too complex for me to fix, and/or there are too many failures.
Of course, if someone else wants to give it a try, here are the logs:
alpha-allmodconfig
http://server.roeck-us.net:8010/builders/stable-queue-alpha-3.4/builds/20/steps/buildcommand/logs/stdio arm-allmodcfonfig http://server.roeck-us.net:8010/builders/stable-queue-arm-3.4/builds/14/steps/buildcommand/logs/stdio [ easy to fix by itself but then there are secondary failures ] m32r:defconfig http://server.roeck-us.net:8010/builders/stable-queue-m32r-3.4/builds/5/steps/buildcommand/logs/stdio sparc64:allmodconfig http://server.roeck-us.net:8010/builders/stable-queue-sparc64-3.4/builds/11/steps/buildcommand/logs/stdioxtensa:defconfig http://server.roeck-us.net:8010/builders/stable-queue-xtensa-3.4/builds/12/steps/buildcommand/logs/stdio
Guenter
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
-------------
3.4.61-rc1 applied cleanly to 3.4.60
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
dmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Compile tested on Samsung Chromebook Exynos5 (ARMv7):
3.4.60 compile fail - it is not a regression. Existing issue in 3.4.y It has to do with missing config selections in arch/arm/mach-exynos/Kconfig for this system. Debugging now using the Kconfig selections from 3.10.y for this file.
Cross-compile testing: HP Compaq dc7700 SFF desktop: x86-64 Intel Core-i2:
Cross-compile tests results:
alpha: defconfig passed
arm: defconfig passed
arm64: not applicable
blackfin: defconfig passed
c6x: dsk6455_defconfig passed - defconfig isn't supported
mips: defconfig passed
mipsel: defconfig passed
powerpc: wii_defconfig passed
sh: defconfig passed
sparc: defconfig passed
tile: tilegx_defconfig passed
-- Shuah
Signature · 4 lines
Shuah Khan Senior Linux Kernel Developer - Open Source Group Samsung Research America(Silicon Valley) [email protected] | (970) 672-0658
Greg Kroah-Hartman
maintainerQuoted 22 lines · Shuah Khan
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
-------------
3.4.61-rc1 applied cleanly to 3.4.60
Quoted 8 lines
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphicsdmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Thanks for testing and letting me know.
Quoted 5 lines
Compile tested on Samsung Chromebook Exynos5 (ARMv7):
3.4.60 compile fail - it is not a regression. Existing issue in 3.4.y It has to do with missing config selections inarch/arm/mach-exynos/Kconfigfor this system. Debugging now using theKconfigselections from 3.10.y for this file.
Is there a patch I can backport for this to work properly? I'd like to get some type of ARM coverage if possible.
thanks,
greg k-h
Quoted 40 lines · Greg Kroah-Hartman
Quoted 22 lines · Shuah Khan
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
-------------
3.4.61-rc1 applied cleanly to 3.4.60
Quoted 8 lines
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphicsdmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Thanks for testing and letting me know.
Quoted 5 lines
Compile tested on Samsung Chromebook Exynos5 (ARMv7):
3.4.60 compile fail - it is not a regression. Existing issue in 3.4.y It has to do with missing config selections inarch/arm/mach-exynos/Kconfigfor this system. Debugging now using theKconfigselections from 3.10.y for this file.
Quoted 7 lines
Is there a patch I can backport for this to work properly? I'd like to get some type of ARM coverage if possible.
thanks,
greg k-h
Greg,
I did some debugging and found 3.4 needs several patches to that made exynos4 support common for exynos4 and exynos5. It appears some changes made it into 3.4, at least changing the directory name from mach-exynos4 to mach-exynos, however the rest of the support is not in 3.4. I identified the following commits:
6f9e95e6ed34ceff090ec1a1d27dfc85828d1dbd60e49ca654eea42e04912b259fa36bad2c3e56ef20ef9e08d27b3f5e09c32d4d371fa97f610a3069b1b3f49ce4606452279b58b17f2bbe2ba00304b
Essentially every single commit that adds support for these config options:
arch/arm/mach-exynos/Kconfig +5 -0
@@ -61,6 +61,11 @@ config SOC_EXYNOS5250 bool "SAMSUNG EXYNOS5250" default y depends on ARCH_EXYNOS5 + select PM_GENERIC_DOMAINS if PM + select S5P_PM if PM + select S5P_SLEEP if PM + select S5P_DEV_MFC + select SAMSUNG_DMADEV help Enable EXYNOS5250 SoC support
I am guessing you wouldn't want to make such extensive changes to 3.4 to add full support for Chromebook.
3.10.y has full support for all of the above.
Thoughts. Agree with my assessment?
-- Shuah
Signature · 4 lines
Shuah Khan Senior Linux Kernel Developer - Open Source Group Samsung Research America(Silicon Valley) [email protected] | (970) 672-0658
Greg Kroah-Hartman
maintainerQuoted 57 lines · Shuah Khan
Quoted 40 lines · Greg Kroah-Hartman
Quoted 22 lines · Shuah Khan
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
-------------
3.4.61-rc1 applied cleanly to 3.4.60
Quoted 8 lines
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphicsdmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Thanks for testing and letting me know.
Quoted 5 lines
Compile tested on Samsung Chromebook Exynos5 (ARMv7):
3.4.60 compile fail - it is not a regression. Existing issue in 3.4.y It has to do with missing config selections inarch/arm/mach-exynos/Kconfigfor this system. Debugging now using theKconfigselections from 3.10.y for this file.Quoted 7 lines
Is there a patch I can backport for this to work properly? I'd like to get some type of ARM coverage if possible.
thanks,
greg k-h
Greg,
I did some debugging and found 3.4 needs several patches to that made exynos4 support common for exynos4 and exynos5. It appears some changes made it into 3.4, at least changing the directory name from mach-exynos4 to mach-exynos, however the rest of the support is not in 3.4. I identified the following commits:
Quoted 3 lines
6f9e95e6ed34ceff090ec1a1d27dfc85828d1dbd60e49ca654eea42e04912b259fa36bad2c3e56ef20ef9e08d27b3f5e09c32d4d371fa97f610a3069
Those three are "reasonable".
Quoted 1 line
b1b3f49ce4606452279b58b17f2bbe2ba00304b
That just reorders the config options, is that really needed?
So, with those first 3 patches, does the kernel now work on that platform for you?
thanks,
greg k-h
Quoted 58 lines · Greg Kroah-Hartman
Quoted 57 lines · Shuah Khan
Quoted 40 lines · Greg Kroah-Hartman
Quoted 22 lines · Shuah Khan
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.4.61 release. There are 14 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 Sep 7 20:25:41 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.4.61-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
-------------
3.4.61-rc1 applied cleanly to 3.4.60
Quoted 8 lines
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphicsdmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Thanks for testing and letting me know.
Quoted 5 lines
Compile tested on Samsung Chromebook Exynos5 (ARMv7):
3.4.60 compile fail - it is not a regression. Existing issue in 3.4.y It has to do with missing config selections inarch/arm/mach-exynos/Kconfigfor this system. Debugging now using theKconfigselections from 3.10.y for this file.Quoted 7 lines
Is there a patch I can backport for this to work properly? I'd like to get some type of ARM coverage if possible.
thanks,
greg k-h
Greg,
I did some debugging and found 3.4 needs several patches to that made exynos4 support common for exynos4 and exynos5. It appears some changes made it into 3.4, at least changing the directory name from mach-exynos4 to mach-exynos, however the rest of the support is not in 3.4. I identified the following commits:
Quoted 5 lines
Quoted 3 lines
6f9e95e6ed34ceff090ec1a1d27dfc85828d1dbd60e49ca654eea42e04912b259fa36bad2c3e56ef20ef9e08d27b3f5e09c32d4d371fa97f610a3069Those three are "reasonable".
Cool. I will pull just these 3 patches and see if that works and let you know if it works.
Quoted 12 lines
Quoted 2 lines
b1b3f49ce4606452279b58b17f2bbe2ba00304bThat just reorders the config options, is that really needed?
So, with those first 3 patches, does the kernel now work on that platform for you?
thanks,
greg k-h
Yes the last one b1b3f49ce4606452279b58b17f2bbe2ba00304b, is a reordering patch.
-- Shuah
Signature · 4 lines
Shuah Khan Senior Linux Kernel Developer - Open Source Group Samsung Research America(Silicon Valley) [email protected] | (970) 672-0658