diff options
author | Andrew Morton <akpm@osdl.org> | 2005-11-08 12:41:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-11-08 12:41:13 -0500 |
commit | ac7c98eca88a854755475fcfe1b2bf5f97f90d99 (patch) | |
tree | 64a6c4754d306cf1246bbe040ac628572b098698 /drivers/net/irda/donauboe.c | |
parent | b3f9b92a6ec1a9a5e4b4b36e484f2f62cc73277c (diff) |
[IRDA] donauboe: locking fix
From: Andrew Morton <akpm@osdl.org>
Two missing unlocks, as noted by Ted Unangst <tedu@coverity.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/irda/donauboe.c')
-rw-r--r-- | drivers/net/irda/donauboe.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c index 0282771b1cbb..3137592d60c0 100644 --- a/drivers/net/irda/donauboe.c +++ b/drivers/net/irda/donauboe.c | |||
@@ -1459,8 +1459,10 @@ toshoboe_net_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) | |||
1459 | */ | 1459 | */ |
1460 | IRDA_DEBUG (1, "%s(BANDWIDTH), %s, (%X/%ld\n", __FUNCTION__ | 1460 | IRDA_DEBUG (1, "%s(BANDWIDTH), %s, (%X/%ld\n", __FUNCTION__ |
1461 | ,dev->name, INB (OBOE_STATUS), irq->ifr_baudrate ); | 1461 | ,dev->name, INB (OBOE_STATUS), irq->ifr_baudrate ); |
1462 | if (!in_interrupt () && !capable (CAP_NET_ADMIN)) | 1462 | if (!in_interrupt () && !capable (CAP_NET_ADMIN)) { |
1463 | return -EPERM; | 1463 | ret = -EPERM; |
1464 | goto out; | ||
1465 | } | ||
1464 | 1466 | ||
1465 | /* self->speed=irq->ifr_baudrate; */ | 1467 | /* self->speed=irq->ifr_baudrate; */ |
1466 | /* toshoboe_setbaud(self); */ | 1468 | /* toshoboe_setbaud(self); */ |
@@ -1470,8 +1472,10 @@ toshoboe_net_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) | |||
1470 | case SIOCSMEDIABUSY: /* Set media busy */ | 1472 | case SIOCSMEDIABUSY: /* Set media busy */ |
1471 | IRDA_DEBUG (1, "%s(MEDIABUSY), %s, (%X/%x)\n", __FUNCTION__ | 1473 | IRDA_DEBUG (1, "%s(MEDIABUSY), %s, (%X/%x)\n", __FUNCTION__ |
1472 | ,dev->name, INB (OBOE_STATUS), capable (CAP_NET_ADMIN) ); | 1474 | ,dev->name, INB (OBOE_STATUS), capable (CAP_NET_ADMIN) ); |
1473 | if (!capable (CAP_NET_ADMIN)) | 1475 | if (!capable (CAP_NET_ADMIN)) { |
1474 | return -EPERM; | 1476 | ret = -EPERM; |
1477 | goto out; | ||
1478 | } | ||
1475 | irda_device_set_media_busy (self->netdev, TRUE); | 1479 | irda_device_set_media_busy (self->netdev, TRUE); |
1476 | break; | 1480 | break; |
1477 | case SIOCGRECEIVING: /* Check if we are receiving right now */ | 1481 | case SIOCGRECEIVING: /* Check if we are receiving right now */ |
@@ -1483,7 +1487,7 @@ toshoboe_net_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) | |||
1483 | IRDA_DEBUG (1, "%s(?), %s, (cmd=0x%X)\n", __FUNCTION__, dev->name, cmd); | 1487 | IRDA_DEBUG (1, "%s(?), %s, (cmd=0x%X)\n", __FUNCTION__, dev->name, cmd); |
1484 | ret = -EOPNOTSUPP; | 1488 | ret = -EOPNOTSUPP; |
1485 | } | 1489 | } |
1486 | 1490 | out: | |
1487 | spin_unlock_irqrestore(&self->spinlock, flags); | 1491 | spin_unlock_irqrestore(&self->spinlock, flags); |
1488 | return ret; | 1492 | return ret; |
1489 | 1493 | ||