diff --git a/[refs] b/[refs] index 0a8fa5796aab..6d180329e80a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 37004af3aaf28f39981754a05cf74361c0834a7a +refs/heads/master: a49f99ffca57a2eada23b1ac908a405c17859e35 diff --git a/trunk/net/core/netpoll.c b/trunk/net/core/netpoll.c index 156d7fd81fec..a01abdd2d3ea 100644 --- a/trunk/net/core/netpoll.c +++ b/trunk/net/core/netpoll.c @@ -243,7 +243,9 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) /* don't get messages out of order, and no recursion */ if (skb_queue_len(&npinfo->txq) == 0 && npinfo->poll_owner != smp_processor_id()) { - local_bh_disable(); /* Where's netif_tx_trylock_bh()? */ + unsigned long flags; + + local_irq_save(flags); if (netif_tx_trylock(dev)) { /* try until next clock tick */ for (tries = jiffies_to_usecs(1)/USEC_PER_POLL; @@ -261,7 +263,7 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) } netif_tx_unlock(dev); } - local_bh_enable(); + local_irq_restore(flags); } if (status != NETDEV_TX_OK) {