OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
29a0027
)
[PATCH] net/smc911x: match up spin lock/unlock
author
Peter Korsgaard
<jacmet@sunsite.dk>
Sat, 3 Feb 2007 09:13:50 +0000
(
01:13
-0800)
committer
Linus Torvalds
<torvalds@woody.linux-foundation.org>
Sat, 3 Feb 2007 19:26:06 +0000
(11:26 -0800)
smc911x_phy_configure's error handling unconditionally unlocks the
spinlock even if it wasn't locked. Patch fixes it.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/net/smc911x.c
patch
|
blob
|
history
diff --git
a/drivers/net/smc911x.c
b/drivers/net/smc911x.c
index
880d9fd
..
43af614
100644
(file)
--- a/
drivers/net/smc911x.c
+++ b/
drivers/net/smc911x.c
@@
-968,11
+968,11
@@
static void smc911x_phy_configure(struct work_struct *work)
* We should not be called if phy_type is zero.
*/
if (lp->phy_type == 0)
- goto smc911x_phy_configure_exit;
+ goto smc911x_phy_configure_exit
_nolock
;
if (smc911x_phy_reset(dev, phyaddr)) {
printk("%s: PHY reset timed out\n", dev->name);
- goto smc911x_phy_configure_exit;
+ goto smc911x_phy_configure_exit
_nolock
;
}
spin_lock_irqsave(&lp->lock, flags);
@@
-1041,6
+1041,7
@@
static void smc911x_phy_configure(struct work_struct *work)
smc911x_phy_configure_exit:
spin_unlock_irqrestore(&lp->lock, flags);
+smc911x_phy_configure_exit_nolock:
lp->work_pending = 0;
}