summaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394
diff options
context:
space:
mode:
authorPhilippe De Muyter <phdm@macqel.be>2008-04-11 16:27:59 +0200
committerStefan Richter <stefanr@s5r6.in-berlin.de>2008-04-18 17:55:31 +0200
commita6ca4f7081095e3cdeb1a45d66fbe4856eca10d3 (patch)
treeea8b4d1d405d0e710cdc0d794993429bbb2676da /drivers/ieee1394
parentee2d91e2b3e422f3f61cd7c6a58bd98a5ec72bd1 (diff)
downloadlinux-a6ca4f7081095e3cdeb1a45d66fbe4856eca10d3.tar.bz2
ieee1394: limit early node speed to host interface speed
The following patch limits the node speed to the host interface speed, before using it. Signed-off-by: Philippe De Muyter <phdm@macqel.be> It should actually suffice to do this only for the local node's speedcap[]. But there is another bug in the speed calculation: The local node's speed is not correctly propagated to the speeds which are to be used to access remote nodes. http://thread.gmane.org/gmane.linux.kernel.firewire.devel/11772/focus=12024 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394')
-rw-r--r--drivers/ieee1394/ieee1394_core.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ieee1394/ieee1394_core.c b/drivers/ieee1394/ieee1394_core.c
index 942bf1ff5214..dcdb71a7718d 100644
--- a/drivers/ieee1394/ieee1394_core.c
+++ b/drivers/ieee1394/ieee1394_core.c
@@ -373,6 +373,8 @@ static void build_speed_map(struct hpsb_host *host, int nodecount)
if (sid->port2 == SELFID_PORT_CHILD) cldcnt[n]++;
speedcap[n] = sid->speed;
+ if (speedcap[n] > host->csr.lnk_spd)
+ speedcap[n] = host->csr.lnk_spd;
n--;
}
}