summaryrefslogtreecommitdiff
path: root/wcusb.c
diff options
context:
space:
mode:
Diffstat (limited to 'wcusb.c')
-rwxr-xr-xwcusb.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/wcusb.c b/wcusb.c
index f2acff9..e00bcd3 100755
--- a/wcusb.c
+++ b/wcusb.c
@@ -203,7 +203,7 @@ static void wcusb_async_control(urb_t *urb)
p->urbcount--;
if (urb->status) {
printk("Error in transfer...\n");
- return;
+ /* return is the "right thing", but don't... */
}
if (!(p->flags & FLAG_RUNNING)) {
return;
@@ -1212,8 +1212,12 @@ static void wc_usb_disconnect(struct usb_device *dev, void *ptr)
if (p->pvt_data)
kfree(p->pvt_data);
kfree(ptr);
- } else
+ } else {
+ /* Generate alarm and note that we're dead */
+ p->span.alarms = ZT_ALARM_RED;
+ zt_alarm_notify(&p->span);
p->dead = 1;
+ }
}
devcount--;
printk("wcusb: Removed a Wildcard device\n");