[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] linux netfront: Fixes to locking after lockdep-derived changes, as



# HG changeset patch
# User Keir Fraser <keir@xxxxxxxxxxxxx>
# Date 1176474282 -3600
# Node ID 22460cfaca71788d78a7f610706f78e28aea438c
# Parent  76f9a8e730ea9e4152e441a081e2aa560bd23d5d
linux netfront: Fixes to locking after lockdep-derived changes, as
suggested by Herbert Xu.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff -r 76f9a8e730ea -r 22460cfaca71 
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Fri Apr 13 
14:59:06 2007 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Fri Apr 13 
15:24:42 2007 +0100
@@ -1307,10 +1307,10 @@ static int netif_poll(struct net_device 
        int pages_flipped = 0;
        int err;
 
-       spin_lock_bh(&np->rx_lock);
+       spin_lock(&np->rx_lock); /* no need for spin_lock_bh() in ->poll() */
 
        if (unlikely(!netfront_carrier_ok(np))) {
-               spin_unlock_bh(&np->rx_lock);
+               spin_unlock(&np->rx_lock);
                return 0;
        }
 
@@ -1478,7 +1478,7 @@ err:
                local_irq_restore(flags);
        }
 
-       spin_unlock_bh(&np->rx_lock);
+       spin_unlock(&np->rx_lock);
 
        return more_to_do;
 }
@@ -1761,8 +1761,8 @@ static int network_connect(struct net_de
        network_tx_buf_gc(dev);
        network_alloc_rx_buffers(dev);
 
+       spin_unlock_irq(&np->tx_lock);
        spin_unlock_bh(&np->rx_lock);
-       spin_unlock_irq(&np->tx_lock);
 
        return 0;
 }
@@ -2036,8 +2036,8 @@ static void netif_disconnect_backend(str
        spin_lock_bh(&info->rx_lock);
        spin_lock_irq(&info->tx_lock);
        netfront_carrier_off(info);
+       spin_unlock_irq(&info->tx_lock);
        spin_unlock_bh(&info->rx_lock);
-       spin_unlock_irq(&info->tx_lock);
 
        if (info->irq)
                unbind_from_irqhandler(info->irq, info->netdev);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.