From: Greg Kroah-Hartman Date: Thu, 17 Jan 2013 18:03:40 +0000 (-0800) Subject: 3.4-stable patches X-Git-Tag: v3.0.60~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9bdb187ca488f97ca0e775eeff6f96a8bcb60f32;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: sh-fix-fdpic-binary-loader.patch target-release-se_cmd-when-lun-lookup-fails-for-tmr.patch tcm_fc-do-not-indicate-retry-capability-to-initiators.patch tcm_fc-do-not-report-target-role-when-target-is-not-defined.patch --- diff --git a/queue-3.4/series b/queue-3.4/series new file mode 100644 index 00000000000..98f5701ada1 --- /dev/null +++ b/queue-3.4/series @@ -0,0 +1,4 @@ +sh-fix-fdpic-binary-loader.patch +tcm_fc-do-not-indicate-retry-capability-to-initiators.patch +tcm_fc-do-not-report-target-role-when-target-is-not-defined.patch +target-release-se_cmd-when-lun-lookup-fails-for-tmr.patch diff --git a/queue-3.4/sh-fix-fdpic-binary-loader.patch b/queue-3.4/sh-fix-fdpic-binary-loader.patch new file mode 100644 index 00000000000..f55a0ed9a34 --- /dev/null +++ b/queue-3.4/sh-fix-fdpic-binary-loader.patch @@ -0,0 +1,35 @@ +From 4a71997a3279a339e7336ea5d0cd27282e2dea44 Mon Sep 17 00:00:00 2001 +From: Thomas Schwinge +Date: Fri, 16 Nov 2012 10:46:20 +0100 +Subject: sh: Fix FDPIC binary loader + +From: Thomas Schwinge + +commit 4a71997a3279a339e7336ea5d0cd27282e2dea44 upstream. + +Ensure that the aux table is properly initialized, even when optional features +are missing. Without this, the FDPIC loader did not work. This was meant to +be included in commit d5ab780305bb6d60a7b5a74f18cf84eb6ad153b1. + +Signed-off-by: Thomas Schwinge +Signed-off-by: Paul Mundt +Signed-off-by: Greg Kroah-Hartman + +--- + arch/sh/include/asm/elf.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/sh/include/asm/elf.h ++++ b/arch/sh/include/asm/elf.h +@@ -202,9 +202,9 @@ extern void __kernel_vsyscall; + if (vdso_enabled) \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \ + else \ +- NEW_AUX_ENT(AT_IGNORE, 0); ++ NEW_AUX_ENT(AT_IGNORE, 0) + #else +-#define VSYSCALL_AUX_ENT ++#define VSYSCALL_AUX_ENT NEW_AUX_ENT(AT_IGNORE, 0) + #endif /* CONFIG_VSYSCALL */ + + #ifdef CONFIG_SH_FPU diff --git a/queue-3.4/target-release-se_cmd-when-lun-lookup-fails-for-tmr.patch b/queue-3.4/target-release-se_cmd-when-lun-lookup-fails-for-tmr.patch new file mode 100644 index 00000000000..a44764f02a6 --- /dev/null +++ b/queue-3.4/target-release-se_cmd-when-lun-lookup-fails-for-tmr.patch @@ -0,0 +1,37 @@ +From 5a3b6fc0092c5f8dee7820064ee54d2631d48573 Mon Sep 17 00:00:00 2001 +From: Roland Dreier +Date: Wed, 2 Jan 2013 12:47:59 -0800 +Subject: target: Release se_cmd when LUN lookup fails for TMR + +From: Roland Dreier + +commit 5a3b6fc0092c5f8dee7820064ee54d2631d48573 upstream. + +When transport_lookup_tmr_lun() fails and we return a task management +response from target_complete_tmr_failure(), we need to call +transport_cmd_check_stop_to_fabric() to release the last ref to the +cmd after calling se_tfo->queue_tm_rsp(), or else we will never remove +the failed TMR from the session command list (and we'll end up waiting +forever when trying to tear down the session). + +(nab: Fix minor compile breakage) + +Signed-off-by: Roland Dreier +Signed-off-by: Nicholas Bellinger +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/target/target_core_transport.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/target/target_core_transport.c ++++ b/drivers/target/target_core_transport.c +@@ -1748,6 +1748,8 @@ static void target_complete_tmr_failure( + + se_cmd->se_tmr_req->response = TMR_LUN_DOES_NOT_EXIST; + se_cmd->se_tfo->queue_tm_rsp(se_cmd); ++ ++ transport_cmd_check_stop_to_fabric(se_cmd); + } + + /** diff --git a/queue-3.4/tcm_fc-do-not-indicate-retry-capability-to-initiators.patch b/queue-3.4/tcm_fc-do-not-indicate-retry-capability-to-initiators.patch new file mode 100644 index 00000000000..cbf9444b5ec --- /dev/null +++ b/queue-3.4/tcm_fc-do-not-indicate-retry-capability-to-initiators.patch @@ -0,0 +1,36 @@ +From f2eeba214bcd0215b7f558cab6420e5fd153042b Mon Sep 17 00:00:00 2001 +From: Mark Rustad +Date: Fri, 21 Dec 2012 10:58:14 -0800 +Subject: tcm_fc: Do not indicate retry capability to initiators + +From: Mark Rustad + +commit f2eeba214bcd0215b7f558cab6420e5fd153042b upstream. + +When generating a PRLI response to an initiator, clear the +FCP_SPPF_RETRY bit in the response. + +Signed-off-by: Mark Rustad +Reviewed-by: Bhanu Prakash Gollapudi +Acked by Robert Love +Signed-off-by: Nicholas Bellinger +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/target/tcm_fc/tfc_sess.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/target/tcm_fc/tfc_sess.c ++++ b/drivers/target/tcm_fc/tfc_sess.c +@@ -397,10 +397,10 @@ static int ft_prli_locked(struct fc_rpor + + /* + * OR in our service parameters with other provider (initiator), if any. +- * TBD XXX - indicate RETRY capability? + */ + fill: + fcp_parm = ntohl(spp->spp_params); ++ fcp_parm &= ~FCP_SPPF_RETRY; + spp->spp_params = htonl(fcp_parm | FCP_SPPF_TARG_FCN); + return FC_SPP_RESP_ACK; + } diff --git a/queue-3.4/tcm_fc-do-not-report-target-role-when-target-is-not-defined.patch b/queue-3.4/tcm_fc-do-not-report-target-role-when-target-is-not-defined.patch new file mode 100644 index 00000000000..f658f556a89 --- /dev/null +++ b/queue-3.4/tcm_fc-do-not-report-target-role-when-target-is-not-defined.patch @@ -0,0 +1,51 @@ +From edec8dfefa1f372b2dd8197da555352e76a10c03 Mon Sep 17 00:00:00 2001 +From: Mark Rustad +Date: Fri, 21 Dec 2012 10:58:19 -0800 +Subject: tcm_fc: Do not report target role when target is not defined + +From: Mark Rustad + +commit edec8dfefa1f372b2dd8197da555352e76a10c03 upstream. + +Clear the target role when no target is provided for +the node performing a PRLI. + +Signed-off-by: Mark Rustad +Reviewed-by: Bhanu Prakash Gollapudi +Acked by Robert Love +Signed-off-by: Nicholas Bellinger +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/target/tcm_fc/tfc_sess.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +--- a/drivers/target/tcm_fc/tfc_sess.c ++++ b/drivers/target/tcm_fc/tfc_sess.c +@@ -356,11 +356,11 @@ static int ft_prli_locked(struct fc_rpor + + tport = ft_tport_create(rdata->local_port); + if (!tport) +- return 0; /* not a target for this local port */ ++ goto not_target; /* not a target for this local port */ + + acl = ft_acl_get(tport->tpg, rdata); + if (!acl) +- return 0; ++ goto not_target; /* no target for this remote */ + + if (!rspp) + goto fill; +@@ -403,6 +403,12 @@ fill: + fcp_parm &= ~FCP_SPPF_RETRY; + spp->spp_params = htonl(fcp_parm | FCP_SPPF_TARG_FCN); + return FC_SPP_RESP_ACK; ++ ++not_target: ++ fcp_parm = ntohl(spp->spp_params); ++ fcp_parm &= ~FCP_SPPF_TARG_FCN; ++ spp->spp_params = htonl(fcp_parm); ++ return 0; + } + + /**