WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [NET] back: Replace netif->active with ne

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [NET] back: Replace netif->active with netif_carrier_ok
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 27 Jul 2006 16:10:23 +0000
Delivery-date: Thu, 27 Jul 2006 09:13:53 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID b40cb6db44e444e164fd8758452066347b1c28ee
# Parent  4782114d07137c28b4eb524e9fd8834691760c2b
[NET] back: Replace netif->active with netif_carrier_ok

The connection status to the frontend can be represented using
netif_carrier_ok instead of netif->active.  As a result, we delay
the construction of the dev qdisc until the carrier comes on.  This
is a prerequisite for adding a tx queue.

Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/drivers/xen/netback/common.h    |    2 +-
 linux-2.6-xen-sparse/drivers/xen/netback/interface.c |    8 ++++----
 linux-2.6-xen-sparse/drivers/xen/netback/netback.c   |    5 +++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff -r 4782114d0713 -r b40cb6db44e4 
linux-2.6-xen-sparse/drivers/xen/netback/common.h
--- a/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Jul 27 13:34:09 
2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/common.h Thu Jul 27 13:52:02 
2006 +0100
@@ -87,7 +87,7 @@ typedef struct netif_st {
 
        /* Miscellaneous private stuff. */
        enum { DISCONNECTED, DISCONNECTING, CONNECTED } status;
-       int active;
+
        struct list_head list;  /* scheduling list */
        atomic_t         refcnt;
        struct net_device *dev;
diff -r 4782114d0713 -r b40cb6db44e4 
linux-2.6-xen-sparse/drivers/xen/netback/interface.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/interface.c      Thu Jul 27 
13:34:09 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/interface.c      Thu Jul 27 
13:52:02 2006 +0100
@@ -37,9 +37,7 @@ static void __netif_up(netif_t *netif)
 static void __netif_up(netif_t *netif)
 {
        struct net_device *dev = netif->dev;
-       netif_tx_lock_bh(dev);
-       netif->active = 1;
-       netif_tx_unlock_bh(dev);
+       netif_carrier_on(dev);
        enable_irq(netif->irq);
        netif_schedule_work(netif);
 }
@@ -49,7 +47,7 @@ static void __netif_down(netif_t *netif)
        struct net_device *dev = netif->dev;
        disable_irq(netif->irq);
        netif_tx_lock_bh(dev);
-       netif->active = 0;
+       netif_carrier_off(dev);
        netif_tx_unlock_bh(dev);
        netif_deschedule_work(netif);
 }
@@ -92,6 +90,8 @@ netif_t *netif_alloc(domid_t domid, unsi
                DPRINTK("Could not create netif: out of memory\n");
                return ERR_PTR(-ENOMEM);
        }
+
+       netif_carrier_off(dev);
 
        netif = netdev_priv(dev);
        memset(netif, 0, sizeof(*netif));
diff -r 4782114d0713 -r b40cb6db44e4 
linux-2.6-xen-sparse/drivers/xen/netback/netback.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Thu Jul 27 
13:34:09 2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Thu Jul 27 
13:52:02 2006 +0100
@@ -143,7 +143,7 @@ int netif_be_start_xmit(struct sk_buff *
        BUG_ON(skb->dev != dev);
 
        /* Drop the packet if the target domain has no receive buffers. */
-       if (!netif->active || 
+       if (unlikely(!netif_carrier_ok(dev)) ||
            (netif->rx_req_cons_peek == netif->rx.sring->req_prod) ||
            ((netif->rx_req_cons_peek - netif->rx.rsp_prod_pvt) ==
             NET_RX_RING_SIZE))
@@ -404,7 +404,8 @@ static void add_to_net_schedule_list_tai
                return;
 
        spin_lock_irq(&net_schedule_list_lock);
-       if (!__on_net_schedule_list(netif) && netif->active) {
+       if (!__on_net_schedule_list(netif) &&
+           likely(netif_carrier_ok(netif->dev))) {
                list_add_tail(&netif->list, &net_schedule_list);
                netif_get(netif);
        }

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [NET] back: Replace netif->active with netif_carrier_ok, Xen patchbot-unstable <=