diff options
Diffstat (limited to 'drivers/isdn')
-rw-r--r-- | drivers/isdn/gigaset/bas-gigaset.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index 707d9c94cf9e..e143050e1b5c 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c | |||
@@ -1598,13 +1598,13 @@ static int gigaset_init_bchannel(struct bc_state *bcs) | |||
1598 | 1598 | ||
1599 | ret = starturbs(bcs); | 1599 | ret = starturbs(bcs); |
1600 | if (ret < 0) { | 1600 | if (ret < 0) { |
1601 | spin_unlock_irqrestore(&cs->lock, flags); | ||
1601 | dev_err(cs->dev, | 1602 | dev_err(cs->dev, |
1602 | "could not start isochronous I/O for channel B%d: %s\n", | 1603 | "could not start isochronous I/O for channel B%d: %s\n", |
1603 | bcs->channel + 1, | 1604 | bcs->channel + 1, |
1604 | ret == -EFAULT ? "null URB" : get_usb_rcmsg(ret)); | 1605 | ret == -EFAULT ? "null URB" : get_usb_rcmsg(ret)); |
1605 | if (ret != -ENODEV) | 1606 | if (ret != -ENODEV) |
1606 | error_hangup(bcs); | 1607 | error_hangup(bcs); |
1607 | spin_unlock_irqrestore(&cs->lock, flags); | ||
1608 | return ret; | 1608 | return ret; |
1609 | } | 1609 | } |
1610 | 1610 | ||
@@ -1614,11 +1614,11 @@ static int gigaset_init_bchannel(struct bc_state *bcs) | |||
1614 | dev_err(cs->dev, "could not open channel B%d\n", | 1614 | dev_err(cs->dev, "could not open channel B%d\n", |
1615 | bcs->channel + 1); | 1615 | bcs->channel + 1); |
1616 | stopurbs(bcs->hw.bas); | 1616 | stopurbs(bcs->hw.bas); |
1617 | if (ret != -ENODEV) | ||
1618 | error_hangup(bcs); | ||
1619 | } | 1617 | } |
1620 | 1618 | ||
1621 | spin_unlock_irqrestore(&cs->lock, flags); | 1619 | spin_unlock_irqrestore(&cs->lock, flags); |
1620 | if (ret < 0 && ret != -ENODEV) | ||
1621 | error_hangup(bcs); | ||
1622 | return ret; | 1622 | return ret; |
1623 | } | 1623 | } |
1624 | 1624 | ||