aboutsummaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorODonnell, Michael <[email protected]>2006-01-11 11:26:22 -0800
committerJeff Garzik <[email protected]>2006-01-12 16:31:51 -0500
commitac7c66698a2c51e4c6a34b84621c79e7cb89e07d (patch)
treee128ebef78d7250fe7351580d7d44646faab9de5 /scripts/basic
parentbf785ee0aeea7a3e717cb1e11df4135b6cbde7da (diff)
[PATCH] corruption during e100 MDI register access
We have identified two related bugs in the e100 driver. Both bugs are related to manipulation of the MDI control register. The first problem is that the Ready bit is being ignored when writing to the Control register; we noticed this because the Linux bonding driver would occasionally come to the spurious conclusion that the link was down when querying Link State. It turned out that by failing to wait for a previous command to complete it was selecting what was essentially a random register in the MDI register set. When we added code that waits for the Ready bit (as shown in the patch file below) all such problems ceased. The second problem is that, although access to the MDI registers involves multiple steps which must not be intermixed, nothing was defending against two or more threads attempting simultaneous access. The most obvious situation where such interference could occur involves the watchdog versus ioctl paths, but there are probably others, so we recommend the locking shown in our patch file. Signed-off-by: Michael O'Donnell <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Jeff Garzik <[email protected]> Cc: John Ronciak <[email protected]> Cc: Ganesh Venkatesan <[email protected]> Cc: Jesse Brandeburg <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Jeff Garzik <[email protected]>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions