The patch titled
     git-tehuti: fixes for net-2.6.24
has been removed from the -mm tree.  Its filename was
     git-tehuti-vs-git-net.patch

This patch was dropped because it was merged into mainline or a subsystem tree

------------------------------------------------------
Subject: git-tehuti: fixes for net-2.6.24
From: "Alexander Indenbaum" <[EMAIL PROTECTED]>

Cc: "Alexander Indenbaum" <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 drivers/net/tehuti.c |   40 +++++++++++++++++++---------------------
 drivers/net/tehuti.h |    1 +
 2 files changed, 20 insertions(+), 21 deletions(-)

diff -puN drivers/net/tehuti.c~git-tehuti-vs-git-net drivers/net/tehuti.c
--- a/drivers/net/tehuti.c~git-tehuti-vs-git-net
+++ a/drivers/net/tehuti.c
@@ -77,7 +77,7 @@ MODULE_DEVICE_TABLE(pci, bdx_pci_tbl);
 /* Definitions needed by ISR or NAPI functions */
 static void bdx_rx_alloc_skbs(struct bdx_priv *priv, struct rxf_fifo *f);
 static void bdx_tx_cleanup(struct bdx_priv *priv);
-static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int 
*budget);
+static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int 
budget);
 
 /* Definitions needed by FW loading */
 static void bdx_tx_push_desc_safe(struct bdx_priv *priv, void *data, int size);
@@ -85,6 +85,7 @@ static void bdx_tx_push_desc_safe(struct
 /* Definitions needed by hw_start */
 static int bdx_tx_init(struct bdx_priv *priv);
 static int bdx_rx_init(struct bdx_priv *priv);
+static void bdx_setmulti(struct net_device *ndev);
 
 /* Definitions needed by bdx_close */
 static void bdx_rx_free(struct bdx_priv *priv);
@@ -265,8 +266,8 @@ static irqreturn_t bdx_isr_napi(int irq,
                bdx_isr_extra(priv, isr);
 
        if (isr & (IR_RX_DESC_0 | IR_TX_FREE_0)) {
-               if (likely(netif_rx_schedule_prep(ndev))) {
-                       __netif_rx_schedule(ndev);
+               if (likely(netif_rx_schedule_prep(ndev, &priv->napi))) {
+                       __netif_rx_schedule(ndev, &priv->napi);
                        RET(IRQ_HANDLED);
                } else {
                        /* NOTE: we get here if intr has slipped into window
@@ -286,24 +287,26 @@ static irqreturn_t bdx_isr_napi(int irq,
        RET(IRQ_HANDLED);
 }
 
-static int bdx_poll(struct net_device *ndev, int *budget)
+static int bdx_poll(struct napi_struct *napi, int budget)
 {
-       struct bdx_priv *priv = ndev->priv;
+       struct bdx_priv *priv = container_of(napi, struct bdx_priv, napi);
+       struct net_device *ndev = priv->ndev;
+       int work_done = 0;
        ENTER;
        bdx_tx_cleanup(priv);
-       if (!bdx_rx_receive(priv, &priv->rxd_fifo0, budget)
-           || (priv->napi_stop++ >= 30)) {
+       work_done = bdx_rx_receive(priv, &priv->rxd_fifo0, budget);
+       if ((work_done == 0) || (priv->napi_stop++ >= 30)) {
                DBG("rx poll is done. backing to isr-driven\n");
 
                /* from time to time we exit to let NAPI layer release
                 * device lock and allow waiting tasks (eg rmmod) to advance) */
                priv->napi_stop = 0;
 
-               netif_rx_complete(ndev);
+               netif_rx_complete(ndev, napi);
                bdx_enable_interrupts(priv);
                return 0;
        }
-       return 1;
+       return work_done;
 }
 
 /* bdx_fw_load - loads firmware to NIC
@@ -411,7 +414,7 @@ static int bdx_hw_start(struct bdx_priv 
                goto err_irq;
        bdx_enable_interrupts(priv);
 
-       netif_poll_enable(priv->ndev);
+       napi_enable(&priv->napi);
 
        RET(0);
 
@@ -425,7 +428,7 @@ static void bdx_hw_stop(struct bdx_priv 
        bdx_disable_interrupts(priv);
        free_irq(priv->pdev->irq, priv->ndev);
 
-       netif_poll_disable(priv->ndev);
+       napi_disable(&priv->napi);
        netif_carrier_off(priv->ndev);
        netif_stop_queue(priv->ndev);
 
@@ -1200,7 +1203,7 @@ static void bdx_recycle_skb(struct bdx_p
 
 /* TBD: replace memcpy func call by explicite inline asm */
 
-static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int 
*budget)
+static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int 
budget)
 {
        struct sk_buff *skb, *skb2;
        struct rxd_desc *rxdd;
@@ -1208,7 +1211,6 @@ static int bdx_rx_receive(struct bdx_pri
        struct rxf_fifo *rxf_fifo;
        int tmp_len, size;
        int done = 0;
-       int max_done = BDX_MAX_RX_DONE;
        struct rxdb *db = NULL;
        /* Unmarshalled descriptor - copy of descriptor in host order */
        u32 rxd_val1;
@@ -1216,7 +1218,6 @@ static int bdx_rx_receive(struct bdx_pri
        u16 rxd_vlan;
 
        ENTER;
-       max_done = min(*budget, priv->ndev->quota);
 
        priv->ndev->last_rx = jiffies;
        f->m.wptr = READ_REG(priv, f->m.reg_WPTR) & TXF_WPTR_WR_PTR;
@@ -1296,7 +1297,7 @@ static int bdx_rx_receive(struct bdx_pri
 
                NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb);
 
-               if (++done >= max_done)
+               if (++done >= budget)
                        break;
        }
 
@@ -1307,9 +1308,7 @@ static int bdx_rx_receive(struct bdx_pri
 
        bdx_rx_alloc_skbs(priv, &priv->rxf_fifo0);
 
-       *budget -= done;
-       priv->ndev->quota -= done;
-       RET(done == max_done);
+       return done;
 }
 
 /*************************************************************************
@@ -1991,8 +1990,6 @@ bdx_probe(struct pci_dev *pdev, const st
                ndev->vlan_rx_register = bdx_vlan_rx_register;
                ndev->vlan_rx_add_vid = bdx_vlan_rx_add_vid;
                ndev->vlan_rx_kill_vid = bdx_vlan_rx_kill_vid;
-               ndev->poll = bdx_poll;
-               ndev->weight = 64;
 
                bdx_ethtool_ops(ndev);  /* ethtool interface */
 
@@ -2050,12 +2047,13 @@ bdx_probe(struct pci_dev *pdev, const st
 #endif
                spin_lock_init(&priv->tx_lock);
 
+               netif_napi_add(ndev, &priv->napi, bdx_poll, 64);
+
                /*bdx_hw_reset(priv); */
                if (bdx_read_mac(priv)) {
                        printk(KERN_ERR "tehuti: load MAC address failed\n");
                        goto err_out_iomap;
                }
-               SET_MODULE_OWNER(ndev);
                SET_NETDEV_DEV(ndev, &pdev->dev);
                if ((err = register_netdev(ndev))) {
                        printk(KERN_ERR "tehuti: register_netdev failed\n");
diff -puN drivers/net/tehuti.h~git-tehuti-vs-git-net drivers/net/tehuti.h
--- a/drivers/net/tehuti.h~git-tehuti-vs-git-net
+++ a/drivers/net/tehuti.h
@@ -251,6 +251,7 @@ struct bdx_priv {
        void __iomem *pBdxRegs;
        struct net_device *ndev;
 
+       struct napi_struct              napi;
        /* RX FIFOs: 1 for data (full) descs, and 2 for free descs */
        struct rxd_fifo rxd_fifo0;
        struct rxf_fifo rxf_fifo0;
_

Patches currently in -mm which might be from [EMAIL PROTECTED] are


-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to