]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
drivers/net: vortex fix locking issues
authorSteven Rostedt <rostedt@goodmis.org>
Fri, 3 Jul 2009 13:30:00 +0000 (08:30 -0500)
committerMichal Sojka <sojka@merica.cz>
Sun, 13 Sep 2015 07:47:10 +0000 (09:47 +0200)
Argh, cut and paste wasn't enough...

Use this patch instead.  It needs an irq disable.  But, believe it or not,
on SMP this is actually better.  If the irq is shared (as it is in Mark's
case), we don't stop the irq of other devices from being handled on
another CPU (unfortunately for Mark, he pinned all interrupts to one CPU).

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
 drivers/net/ethernet/3com/3c59x.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
drivers/net/ethernet/3com/3c59x.c

index 41095ebad97fe15e399d00c293882d542c844b25..b0a0cb22aec40c3a4eb8e217f58f2a130ac1628e 100644 (file)
@@ -842,9 +842,9 @@ static void poll_vortex(struct net_device *dev)
 {
        struct vortex_private *vp = netdev_priv(dev);
        unsigned long flags;
-       local_irq_save(flags);
+       local_irq_save_nort(flags);
        (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev);
-       local_irq_restore(flags);
+       local_irq_restore_nort(flags);
 }
 #endif
 
@@ -1916,12 +1916,12 @@ static void vortex_tx_timeout(struct net_device *dev)
                         * Block interrupts because vortex_interrupt does a bare spin_lock()
                         */
                        unsigned long flags;
-                       local_irq_save(flags);
+                       local_irq_save_nort(flags);
                        if (vp->full_bus_master_tx)
                                boomerang_interrupt(dev->irq, dev);
                        else
                                vortex_interrupt(dev->irq, dev);
-                       local_irq_restore(flags);
+                       local_irq_restore_nort(flags);
                }
        }