]> err.no Git - linux-2.6/commitdiff
e1000: FIX: Stop raw interrupts disabled nag from RT
authorMark Huth <mhuth@mvista.com>
Tue, 6 Mar 2007 16:57:26 +0000 (08:57 -0800)
committerJeff Garzik <jeff@garzik.org>
Thu, 26 Apr 2007 06:22:41 +0000 (02:22 -0400)
Current e1000_xmit_frame spews raw interrupt disabled nag messages when
used with RT kernel patches.  This patch uses spin_trylock_irqsave,
which allows RT patches to properly manage the irq semantics.

Signed-off-by: Mark Huth <mhuth@mvista.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/e1000/e1000_main.c

index dd66f8816b2f74a3379317f12514ef393dc03f77..eb3ff1ff746eeb226dfd84245dafc811bab58914 100644 (file)
@@ -3378,12 +3378,9 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
            (adapter->hw.mac_type == e1000_82573))
                e1000_transfer_dhcp_info(adapter, skb);
 
-       local_irq_save(flags);
-       if (!spin_trylock(&tx_ring->tx_lock)) {
+       if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags))
                /* Collision - tell upper layer to requeue */
-               local_irq_restore(flags);
                return NETDEV_TX_LOCKED;
-       }
 
        /* need: count + 2 desc gap to keep tail from touching
         * head, otherwise try next time */