diff --git a/debian/changelog b/debian/changelog index c39df59f2..715041415 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ linux (3.2.30-2) UNRELEASED; urgency=low * codel: refine one condition to avoid a nul rec_inv_sqrt * [mips,mipsel] Ignore NFS/SunRPC ABI changes in 3.2.30 (fixes FTBFS) * tg3: Fix TSO CAP for 5704 devs w / ASF enabled + * SUNRPC: Set alloc_slot for backchannel tcp ops (regression in 3.2.30) -- Ben Hutchings Sat, 29 Sep 2012 14:19:46 +0200 diff --git a/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch b/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch new file mode 100644 index 000000000..eb8b1f639 --- /dev/null +++ b/debian/patches/bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch @@ -0,0 +1,44 @@ +From: Bryan Schumaker +Date: Mon, 24 Sep 2012 13:39:01 -0400 +Subject: SUNRPC: Set alloc_slot for backchannel tcp ops + +commit 84e28a307e376f271505af65a7b7e212dd6f61f4 upstream. + +f39c1bfb5a03e2d255451bff05be0d7255298fa4 (SUNRPC: Fix a UDP transport +regression) introduced the "alloc_slot" function for xprt operations, +but never created one for the backchannel operations. This patch fixes +a null pointer dereference when mounting NFS over v4.1. + +Call Trace: + [] ? xprt_reserve+0x47/0x50 [sunrpc] + [] call_reserve+0x34/0x60 [sunrpc] + [] __rpc_execute+0x90/0x400 [sunrpc] + [] rpc_async_schedule+0x2a/0x40 [sunrpc] + [] process_one_work+0x139/0x500 + [] ? alloc_worker+0x70/0x70 + [] ? __rpc_execute+0x400/0x400 [sunrpc] + [] worker_thread+0x15e/0x460 + [] ? preempt_schedule+0x49/0x70 + [] ? rescuer_thread+0x230/0x230 + [] kthread+0x93/0xa0 + [] kernel_thread_helper+0x4/0x10 + [] ? kthread_freezable_should_stop+0x70/0x70 + [] ? gs_change+0x13/0x13 + +Signed-off-by: Bryan Schumaker +Signed-off-by: Trond Myklebust +[bwh: Backported to 2.6.32: adjust context] +--- + net/sunrpc/xprtsock.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/net/sunrpc/xprtsock.c ++++ b/net/sunrpc/xprtsock.c +@@ -2477,6 +2477,7 @@ static struct rpc_xprt_ops xs_tcp_ops = + static struct rpc_xprt_ops bc_tcp_ops = { + .reserve_xprt = xprt_reserve_xprt, + .release_xprt = xprt_release_xprt, ++ .alloc_slot = xprt_alloc_slot, + .buf_alloc = bc_malloc, + .buf_free = bc_free, + .send_request = bc_send_request, diff --git a/debian/patches/series b/debian/patches/series index b3949ba20..87f54ca39 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -399,3 +399,4 @@ features/arm/ahci-Add-JMicron-362-device-IDs.patch bugfix/all/speakup-lower-default-software-speech-rate.patch debian/perf-hide-abi-change-in-3.2.30.patch bugfix/all/tg3-Fix-TSO-CAP-for-5704-devs-w-ASF-enabled.patch +bugfix/all/SUNRPC-Set-alloc_slot-for-backchannel-tcp-ops.patch