From: Greg Kroah-Hartman Date: Tue, 23 Nov 2010 00:24:09 +0000 (-0800) Subject: .32 patches X-Git-Tag: v2.6.27.57~70 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5c22c2e58ae6958791b04a140f7247681ce9ff7a;p=thirdparty%2Fkernel%2Fstable-queue.git .32 patches --- diff --git a/queue-2.6.32/microblaze-fix-build-with-make-3.82.patch b/queue-2.6.32/microblaze-fix-build-with-make-3.82.patch new file mode 100644 index 00000000000..ac72dd32287 --- /dev/null +++ b/queue-2.6.32/microblaze-fix-build-with-make-3.82.patch @@ -0,0 +1,45 @@ +From b843e4ec01991a386a9e0e9030703524446e03da Mon Sep 17 00:00:00 2001 +From: Thomas Backlund +Date: Thu, 21 Oct 2010 13:19:10 +0300 +Subject: microblaze: Fix build with make 3.82 + +From: Thomas Backlund + +commit b843e4ec01991a386a9e0e9030703524446e03da upstream. + +When running make headers_install_all on x86_64 and make 3.82 I hit this: + +arch/microblaze/Makefile:80: *** mixed implicit and normal rules. Stop. +make: *** [headers_install_all] Error 2 + +So split the rules to satisfy make 3.82. + +Signed-off-by: Thomas Backlund +Signed-off-by: Michal Simek +Signed-off-by: Greg Kroah-Hartman + +--- + arch/microblaze/Makefile | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/arch/microblaze/Makefile ++++ b/arch/microblaze/Makefile +@@ -69,12 +69,16 @@ export MMU DTB + + all: linux.bin + +-BOOT_TARGETS = linux.bin linux.bin.gz simpleImage.% ++# With make 3.82 we cannot mix normal and wildcard targets ++BOOT_TARGETS1 = linux.bin linux.bin.gz ++BOOT_TARGETS2 = simpleImage.% + + archclean: + $(Q)$(MAKE) $(clean)=$(boot) + +-$(BOOT_TARGETS): vmlinux ++$(BOOT_TARGETS1): vmlinux ++ $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ ++$(BOOT_TARGETS2): vmlinux + $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ + + define archhelp diff --git a/queue-2.6.32/series b/queue-2.6.32/series index a8f33131060..864f11e39cc 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -6,3 +6,5 @@ jme-fix-phy-power-off-error.patch irda-fix-parameter-extraction-stack-overflow.patch irda-fix-heap-memory-corruption-in-iriap.c.patch i2c-pca-platform-change-device-name-of-request_irq.patch +sunrpc-after-calling-xprt_release-we-must-restart-from-call_reserve.patch +microblaze-fix-build-with-make-3.82.patch diff --git a/queue-2.6.32/sunrpc-after-calling-xprt_release-we-must-restart-from-call_reserve.patch b/queue-2.6.32/sunrpc-after-calling-xprt_release-we-must-restart-from-call_reserve.patch new file mode 100644 index 00000000000..56377867f04 --- /dev/null +++ b/queue-2.6.32/sunrpc-after-calling-xprt_release-we-must-restart-from-call_reserve.patch @@ -0,0 +1,77 @@ +From 118df3d17f11733b294ea2cd988d56ee376ef9fd Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Sun, 24 Oct 2010 17:17:31 -0400 +Subject: SUNRPC: After calling xprt_release(), we must restart from call_reserve + +From: Trond Myklebust + +commit 118df3d17f11733b294ea2cd988d56ee376ef9fd upstream. + +Rob Leslie reports seeing the following Oops after his Kerberos session +expired. + +BUG: unable to handle kernel NULL pointer dereference at 00000058 +IP: [] rpcauth_refreshcred+0x11/0x12c [sunrpc] +*pde = 00000000 +Oops: 0000 [#1] +last sysfs file: /sys/devices/platform/pc87360.26144/temp3_input +Modules linked in: autofs4 authenc esp4 xfrm4_mode_transport ipt_LOG ipt_REJECT xt_limit xt_state ipt_REDIRECT xt_owner xt_HL xt_hl xt_tcpudp xt_mark cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark geodewdt deflate ctr twofish_generic twofish_i586 twofish_common camellia serpent blowfish cast5 cbc xcbc rmd160 sha512_generic sha1_generic hmac crypto_null af_key rpcsec_gss_krb5 nfsd exportfs nfs lockd fscache nfs_acl auth_rpcgss sunrpc ip_gre sit tunnel4 dummy ext3 jbd nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp iptable_mangle iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables x_tables pc8736x_gpio nsc_gpio pc87360 hwmon_vid loop aes_i586 aes_generic sha256_generic dm_crypt cs5535_gpio serio_raw cs5535_mfgpt hifn_795x des_generic geode_rng rng_core led_class ext4 mbcache jbd2 crc16 dm_mirror dm_region_hash dm_log dm_snapshot dm_mod sd_mod crc_t10dif ide_pci_generic cs5536 amd74xx ide_core pata_cs5536 ata_generic libata usb_storage via_rhine mii scsi_mod btrfs zlib_deflate crc32c libcrc32c [last unloaded: scsi_wait_scan] + +Pid: 12875, comm: sudo Not tainted 2.6.36-net5501 #1 / +EIP: 0060:[] EFLAGS: 00010292 CPU: 0 +EIP is at rpcauth_refreshcred+0x11/0x12c [sunrpc] +EAX: 00000000 EBX: defb13a0 ECX: 00000006 EDX: e18683b8 +ESI: defb13a0 EDI: 00000000 EBP: 00000000 ESP: de571d58 + DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068 +Process sudo (pid: 12875, ti=de570000 task=decd1430 task.ti=de570000) +Stack: + e186e008 00000000 defb13a0 0000000d deda6000 e1868f22 e196f12b defb13a0 +<0> defb13d8 00000000 00000000 e186e0aa 00000000 defb13a0 de571dac 00000000 +<0> e186956c de571e34 debea5c0 de571dc8 e186967a 00000000 debea5c0 de571e34 +Call Trace: + [] ? rpc_wake_up_next+0x114/0x11b [sunrpc] + [] ? call_decode+0x24a/0x5af [sunrpc] + [] ? nfs4_xdr_dec_access+0x0/0xa2 [nfs] + [] ? __rpc_execute+0x62/0x17b [sunrpc] + [] ? rpc_run_task+0x91/0x97 [sunrpc] + [] ? rpc_call_sync+0x40/0x5b [sunrpc] + [] ? nfs4_proc_access+0x10a/0x176 [nfs] + [] ? nfs_do_access+0x2b1/0x2c0 [nfs] + [] ? rpcauth_lookupcred+0x62/0x84 [sunrpc] + [] ? nfs_permission+0xad/0x13b [nfs] + [] ? exec_permission+0x15/0x4b + [] ? link_path_walk+0x4f/0x456 + [] ? path_walk+0x4c/0xa8 + [] ? do_path_lookup+0x1f/0x68 + [] ? user_path_at+0x37/0x5f + [] ? handle_mm_fault+0x229/0x55b + [] ? sys_faccessat+0x93/0x146 + [] ? sys_access+0xf/0x13 + [] ? syscall_call+0x7/0xb +Code: 0f 94 c2 84 d2 74 09 8b 44 24 0c e8 6a e9 8b de 83 c4 14 89 d8 5b 5e 5f 5d c3 55 57 56 53 83 ec 1c fc 89 c6 8b 40 10 89 44 24 04 <8b> 58 58 85 db 0f 85 d4 00 00 00 0f b7 46 70 8b 56 20 89 c5 83 +EIP: [] rpcauth_refreshcred+0x11/0x12c [sunrpc] SS:ESP 0068:de571d58 +CR2: 0000000000000058 + +This appears to be caused by the function rpc_verify_header() first +calling xprt_release(), then doing a call_refresh. If we release the +transport slot, we should _always_ jump back to call_reserve before +calling anything else. + +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + net/sunrpc/clnt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/net/sunrpc/clnt.c ++++ b/net/sunrpc/clnt.c +@@ -1566,7 +1566,7 @@ rpc_verify_header(struct rpc_task *task) + rpcauth_invalcred(task); + /* Ensure we obtain a new XID! */ + xprt_release(task); +- task->tk_action = call_refresh; ++ task->tk_action = call_reserve; + goto out_retry; + case RPC_AUTH_BADCRED: + case RPC_AUTH_BADVERF: