|
@@ -150,6 +150,7 @@ static int uml_net_close(struct net_device *dev)
|
|
|
if(lp->close != NULL)
|
|
|
(*lp->close)(lp->fd, &lp->user);
|
|
|
lp->fd = -1;
|
|
|
+ list_del(&lp->list);
|
|
|
|
|
|
spin_unlock(&lp->lock);
|
|
|
return 0;
|
|
@@ -715,6 +716,7 @@ static void close_devices(void)
|
|
|
|
|
|
list_for_each(ele, &opened){
|
|
|
lp = list_entry(ele, struct uml_net_private, list);
|
|
|
+ free_irq(lp->dev->irq, lp->dev);
|
|
|
if((lp->close != NULL) && (lp->fd >= 0))
|
|
|
(*lp->close)(lp->fd, &lp->user);
|
|
|
if(lp->remove != NULL) (*lp->remove)(&lp->user);
|