rpms/kernel/devel linux-2.6-firewire-increase-login-orb-timeout.patch, NONE, 1.1 kernel.spec, 1.369, 1.370 linux-2.6-firewire-increase-mgt-orb-timeout.patch, 1.2, NONE

Jarod Wilson (jwilson) fedora-extras-commits at redhat.com
Sat Jan 19 03:15:22 UTC 2008


Author: jwilson

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22491

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-firewire-increase-login-orb-timeout.patch 
Removed Files:
	linux-2.6-firewire-increase-mgt-orb-timeout.patch 
Log Message:
Fix up patch name too

linux-2.6-firewire-increase-login-orb-timeout.patch:

--- NEW FILE linux-2.6-firewire-increase-login-orb-timeout.patch ---
Increase (and rename) the management orb reply timeout value
to 20s to match that of the old firewire stack. 2s simply didn't
give many devices enough time to spin up and reply.

Also add note re: the lack of mgt_ORB_timeout handling, as some
devices *can* specify a timeout in their config rom, but most
don't, so bothering to check really doesn't buy us much.

Signed-off-by: Jarod Wilson <jwilson at redhat.com>

 drivers/firewire/fw-sbp2.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index 9040417..ff0d2c3 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -150,9 +150,17 @@ struct sbp2_target {
 	struct list_head lu_list;
 };
 
-#define SBP2_MAX_SG_ELEMENT_LENGTH	0xf000
+/*
+ * Per section 7.4.8 of the SBP-2 spec, a mgt_ORB_timeout value
+ * can be provided in a config rom, but usually isn't. A high
+ * timeout value really only matters on initial login, where we'll
+ * just use 20s rather than hassling with reading the config rom,
+ * since it really wouldn't buy us much.
+ */
+#define SBP2_LOGIN_ORB_TIMEOUT		20000	/* Timeout in ms */
 #define SBP2_ORB_TIMEOUT		2000	/* Timeout in ms */
 #define SBP2_ORB_NULL			0x80000000
+#define SBP2_MAX_SG_ELEMENT_LENGTH	0xf000
 
 #define SBP2_DIRECTION_TO_MEDIA		0x0
 #define SBP2_DIRECTION_FROM_MEDIA	0x1
@@ -487,6 +495,7 @@ sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id,
 {
 	struct fw_device *device = fw_device(lu->tgt->unit->device.parent);
 	struct sbp2_management_orb *orb;
+	unsigned int timeout;
 	int retval = -ENOMEM;
 
 	orb = kzalloc(sizeof(*orb), GFP_ATOMIC);
@@ -517,7 +526,9 @@ sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id,
 		orb->request.misc |=
 			MANAGEMENT_ORB_EXCLUSIVE(sbp2_param_exclusive_login) |
 			MANAGEMENT_ORB_RECONNECT(0);
-	}
+		timeout = SBP2_LOGIN_ORB_TIMEOUT;
+	} else
+		timeout = SBP2_ORB_TIMEOUT;
 
 	fw_memcpy_to_be32(&orb->request, &orb->request, sizeof(orb->request));
 
@@ -534,7 +545,7 @@ sbp2_send_management_orb(struct sbp2_logical_unit *lu, int node_id,
 		      lu->tgt->management_agent_address);
 
 	wait_for_completion_timeout(&orb->done,
-				    msecs_to_jiffies(SBP2_ORB_TIMEOUT));
+				    msecs_to_jiffies(timeout));
 
 	retval = -EIO;
 	if (sbp2_cancel_orbs(lu) == 0) {


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.369
retrieving revision 1.370
diff -u -r1.369 -r1.370
--- kernel.spec	18 Jan 2008 22:03:39 -0000	1.369
+++ kernel.spec	19 Jan 2008 03:14:36 -0000	1.370
@@ -659,7 +659,7 @@
 
 # linux1394 git patches
 Patch2200: linux-2.6-firewire-git-update.patch
-Patch2201: linux-2.6-firewire-increase-mgt-orb-timeout.patch
+Patch2201: linux-2.6-firewire-increase-login-orb-timeout.patch
 
 %endif
 
@@ -1189,7 +1189,7 @@
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
-ApplyPatch linux-2.6-firewire-increase-mgt-orb-timeout.patch
+ApplyPatch linux-2.6-firewire-increase-login-orb-timeout.patch
 
 # ---------- below all scheduled for 2.6.24 -----------------
 


--- linux-2.6-firewire-increase-mgt-orb-timeout.patch DELETED ---




More information about the fedora-extras-commits mailing list