Use spin_lock_save/restore() in uml_net_interrupt() to avoid recursive locking.
Signed-off-by: Richard Weinberger <rich...@nod.at> --- arch/um/drivers/net_kern.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index 95f4416..5e7cf82 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c @@ -116,12 +116,13 @@ static irqreturn_t uml_net_interrupt(int irq, void *dev_id) { struct net_device *dev = dev_id; struct uml_net_private *lp = netdev_priv(dev); + unsigned long flags; int err; if (!netif_running(dev)) return IRQ_NONE; - spin_lock(&lp->lock); + spin_lock_irqsave(&lp->lock, flags); while ((err = uml_net_rx(dev)) > 0) ; if (err < 0) { printk(KERN_ERR @@ -140,7 +141,7 @@ static irqreturn_t uml_net_interrupt(int irq, void *dev_id) reactivate_fd(lp->fd, UM_ETH_IRQ); out: - spin_unlock(&lp->lock); + spin_unlock_irqrestore(&lp->lock, flags); return IRQ_HANDLED; } -- 1.7.7.3 ------------------------------------------------------------------------------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel