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

Jarod Wilson (jwilson) fedora-extras-commits at redhat.com
Fri Jan 18 22:04:31 UTC 2008


Author: jwilson

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

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-firewire-increase-mgt-orb-timeout.patch 
Log Message:
* Fri Jan 18 2008 Jarod Wilson <jwilson at redhat.com>
- Increase management orb reply timeout in firewire-sbp2 driver,
  should make a lot of firewire drives behave a LOT better with
  the juju stack (#428554, #238606, #391701)


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

--- NEW FILE linux-2.6-firewire-increase-mgt-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 |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index 9040417..1e8574e 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -150,9 +150,16 @@ 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, an mgt_ORB_timeout value
+ * can be provided in some config roms, but usually isn't, so we
+ * just use 20s rather than hassling with it, since we won't buy
+ * anything except on devices with disgustingly long timeouts.
+ */
+#define SBP2_MGT_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 +494,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 +525,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_MGT_ORB_TIMEOUT;
+	} else
+		timeout = SBP2_ORB_TIMEOUT;
 
 	fw_memcpy_to_be32(&orb->request, &orb->request, sizeof(orb->request));
 
@@ -534,7 +544,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.368
retrieving revision 1.369
diff -u -r1.368 -r1.369
--- kernel.spec	17 Jan 2008 23:59:31 -0000	1.368
+++ kernel.spec	18 Jan 2008 22:03:39 -0000	1.369
@@ -659,6 +659,7 @@
 
 # linux1394 git patches
 Patch2200: linux-2.6-firewire-git-update.patch
+Patch2201: linux-2.6-firewire-increase-mgt-orb-timeout.patch
 
 %endif
 
@@ -1188,6 +1189,7 @@
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
+ApplyPatch linux-2.6-firewire-increase-mgt-orb-timeout.patch
 
 # ---------- below all scheduled for 2.6.24 -----------------
 
@@ -1757,6 +1759,11 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Fri Jan 18 2008 Jarod Wilson <jwilson at redhat.com>
+- Increase management orb reply timeout in firewire-sbp2 driver,
+  should make a lot of firewire drives behave a LOT better with
+  the juju stack (#428554, #238606, #391701)
+
 * Thu Jan 17 2008 Kyle McMartin <kmcmartin at redhat.com>
 - Enable CONFIG_TCG_INFINEON on ia64-generic.
 




More information about the fedora-extras-commits mailing list