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