···14781478this should be enabled, but if the problem persists the messages can be14791479disabled.1480148014811481+netdev_budget14821482+-------------14831483+14841484+Maximum number of packets taken from all interfaces in one polling cycle (NAPI14851485+poll). In one polling cycle interfaces which are registered to polling are14861486+probed in a round-robin manner. The limit of packets in one such probe can be14871487+set per-device via sysfs class/net/<device>/weight .1481148814821489netdev_max_backlog14831490------------------
+13-3
drivers/isdn/gigaset/bas-gigaset.c
···4646/* length limit according to Siemens 3070usb-protokoll.doc ch. 2.1 */4747#define IF_WRITEBUF 26448484949+/* interrupt pipe message size according to ibid. ch. 2.2 */5050+#define IP_MSGSIZE 35151+4952/* Values for the Gigaset 307x */5053#define USB_GIGA_VENDOR_ID 0x06815154#define USB_3070_PRODUCT_ID 0x0001···113110 unsigned char *rcvbuf; /* AT reply receive buffer */114111115112 struct urb *urb_int_in; /* URB for interrupt pipe */116116- unsigned char int_in_buf[3];113113+ unsigned char *int_in_buf;117114118115 spinlock_t lock; /* locks all following */119116 int basstate; /* bitmap (BS_*) */···660657 }661658662659 /* drop incomplete packets even if the missing bytes wouldn't matter */663663- if (unlikely(urb->actual_length < 3)) {660660+ if (unlikely(urb->actual_length < IP_MSGSIZE)) {664661 dev_warn(cs->dev, "incomplete interrupt packet (%d bytes)\n",665662 urb->actual_length);666663 goto resubmit;···21302127static void gigaset_freecshw(struct cardstate *cs)21312128{21322129 /* timers, URBs and rcvbuf are disposed of in disconnect */21302130+ kfree(cs->hw.bas->int_in_buf);21332131 kfree(cs->hw.bas);21342132 cs->hw.bas = NULL;21352133}···2141213721422138 cs->hw.bas = ucs = kmalloc(sizeof *ucs, GFP_KERNEL);21432139 if (!ucs) {21402140+ pr_err("out of memory\n");21412141+ return 0;21422142+ }21432143+ ucs->int_in_buf = kmalloc(IP_MSGSIZE, GFP_KERNEL);21442144+ if (!ucs->int_in_buf) {21452145+ kfree(ucs);21442146 pr_err("out of memory\n");21452147 return 0;21462148 }···23022292 usb_fill_int_urb(ucs->urb_int_in, udev,23032293 usb_rcvintpipe(udev,23042294 (endpoint->bEndpointAddress) & 0x0f),23052305- ucs->int_in_buf, 3, read_int_callback, cs,22952295+ ucs->int_in_buf, IP_MSGSIZE, read_int_callback, cs,23062296 endpoint->bInterval);23072297 if ((rc = usb_submit_urb(ucs->urb_int_in, GFP_KERNEL)) != 0) {23082298 dev_err(cs->dev, "could not submit interrupt URB: %s\n",
+6-6
drivers/net/bnx2.c
···57575858#define DRV_MODULE_NAME "bnx2"5959#define PFX DRV_MODULE_NAME ": "6060-#define DRV_MODULE_VERSION "1.9.2"6161-#define DRV_MODULE_RELDATE "Feb 11, 2009"6060+#define DRV_MODULE_VERSION "1.9.3"6161+#define DRV_MODULE_RELDATE "March 17, 2009"62626363#define RUN_AT(x) (jiffies + (x))6464···58555855 for (i = 0; i < BNX2_MAX_MSIX_VEC; i++) {58565856 msix_ent[i].entry = i;58575857 msix_ent[i].vector = 0;58585858-58595859- snprintf(bp->irq_tbl[i].name, len, "%s-%d", dev->name, i);58605860- bp->irq_tbl[i].handler = bnx2_msi_1shot;58615858 }5862585958635860 rc = pci_enable_msix(bp->pdev, msix_ent, BNX2_MAX_MSIX_VEC);···5863586658645867 bp->irq_nvecs = msix_vecs;58655868 bp->flags |= BNX2_FLAG_USING_MSIX | BNX2_FLAG_ONE_SHOT_MSI;58665866- for (i = 0; i < BNX2_MAX_MSIX_VEC; i++)58695869+ for (i = 0; i < BNX2_MAX_MSIX_VEC; i++) {58675870 bp->irq_tbl[i].vector = msix_ent[i].vector;58715871+ snprintf(bp->irq_tbl[i].name, len, "%s-%d", dev->name, i);58725872+ bp->irq_tbl[i].handler = bnx2_msi_1shot;58735873+ }58685874}5869587558705876static void
+20-5
drivers/net/bonding/bond_main.c
···35453545 }35463546 break;35473547 case NETDEV_CHANGE:35483548- /*35493549- * TODO: is this what we get if somebody35503550- * sets up a hierarchical bond, then rmmod's35513551- * one of the slave bonding devices?35523552- */35483548+ if (bond->params.mode == BOND_MODE_8023AD || bond_is_lb(bond)) {35493549+ struct slave *slave;35503550+35513551+ slave = bond_get_slave_by_dev(bond, slave_dev);35523552+ if (slave) {35533553+ u16 old_speed = slave->speed;35543554+ u16 old_duplex = slave->duplex;35553555+35563556+ bond_update_speed_duplex(slave);35573557+35583558+ if (bond_is_lb(bond))35593559+ break;35603560+35613561+ if (old_speed != slave->speed)35623562+ bond_3ad_adapter_speed_changed(slave);35633563+ if (old_duplex != slave->duplex)35643564+ bond_3ad_adapter_duplex_changed(slave);35653565+ }35663566+ }35673567+35533568 break;35543569 case NETDEV_DOWN:35553570 /*
+17-3
drivers/net/sh_eth.c
···687687{688688 struct net_device *ndev = netdev;689689 struct sh_eth_private *mdp = netdev_priv(ndev);690690+ irqreturn_t ret = IRQ_NONE;690691 u32 ioaddr, boguscnt = RX_RING_SIZE;691692 u32 intr_status = 0;692693···697696 /* Get interrpt stat */698697 intr_status = ctrl_inl(ioaddr + EESR);699698 /* Clear interrupt */700700- ctrl_outl(intr_status, ioaddr + EESR);699699+ if (intr_status & (EESR_FRC | EESR_RMAF | EESR_RRF |700700+ EESR_RTLF | EESR_RTSF | EESR_PRE | EESR_CERF |701701+ TX_CHECK | EESR_ERR_CHECK)) {702702+ ctrl_outl(intr_status, ioaddr + EESR);703703+ ret = IRQ_HANDLED;704704+ } else705705+ goto other_irq;701706702707 if (intr_status & (EESR_FRC | /* Frame recv*/703708 EESR_RMAF | /* Multi cast address recv*/···730723 ndev->name, intr_status);731724 }732725726726+other_irq:733727 spin_unlock(&mdp->lock);734728735735- return IRQ_HANDLED;729729+ return ret;736730}737731738732static void sh_eth_timer(unsigned long data)···852844 int ret = 0;853845 struct sh_eth_private *mdp = netdev_priv(ndev);854846855855- ret = request_irq(ndev->irq, &sh_eth_interrupt, 0, ndev->name, ndev);847847+ ret = request_irq(ndev->irq, &sh_eth_interrupt,848848+#if defined(CONFIG_CPU_SUBTYPE_SH7763) || defined(CONFIG_CPU_SUBTYPE_SH7764)849849+ IRQF_SHARED,850850+#else851851+ 0,852852+#endif853853+ ndev->name, ndev);856854 if (ret) {857855 printk(KERN_ERR "Can not assign IRQ number to %s\n", CARDNAME);858856 return ret;
···12251225 dev_info(&dev->dev, "SMSC911x/921x identified at %#08lx, IRQ: %d\n",12261226 (unsigned long)pdata->ioaddr, dev->irq);1227122712281228+ /* Reset the last known duplex and carrier */12291229+ pdata->last_duplex = -1;12301230+ pdata->last_carrier = -1;12311231+12281232 /* Bring the PHY up */12291233 phy_start(pdata->phy_dev);12301234
+29-16
drivers/net/tulip/tulip_core.c
···255255256256static void tulip_tx_timeout(struct net_device *dev);257257static void tulip_init_ring(struct net_device *dev);258258+static void tulip_free_ring(struct net_device *dev);258259static int tulip_start_xmit(struct sk_buff *skb, struct net_device *dev);259260static int tulip_open(struct net_device *dev);260261static int tulip_close(struct net_device *dev);···503502{504503 int retval;505504506506- if ((retval = request_irq(dev->irq, &tulip_interrupt, IRQF_SHARED, dev->name, dev)))507507- return retval;508508-509505 tulip_init_ring (dev);506506+507507+ retval = request_irq(dev->irq, &tulip_interrupt, IRQF_SHARED, dev->name, dev);508508+ if (retval)509509+ goto free_ring;510510511511 tulip_up (dev);512512513513 netif_start_queue (dev);514514515515 return 0;516516+517517+free_ring:518518+ tulip_free_ring (dev);519519+ return retval;516520}517521518522···774768 tulip_set_power_state (tp, 0, 1);775769}776770777777-778778-static int tulip_close (struct net_device *dev)771771+static void tulip_free_ring (struct net_device *dev)779772{780773 struct tulip_private *tp = netdev_priv(dev);781781- void __iomem *ioaddr = tp->base_addr;782774 int i;783783-784784- netif_stop_queue (dev);785785-786786- tulip_down (dev);787787-788788- if (tulip_debug > 1)789789- printk (KERN_DEBUG "%s: Shutting down ethercard, status was %2.2x.\n",790790- dev->name, ioread32 (ioaddr + CSR5));791791-792792- free_irq (dev->irq, dev);793775794776 /* Free all the skbuffs in the Rx queue. */795777 for (i = 0; i < RX_RING_SIZE; i++) {···797803 dev_kfree_skb (skb);798804 }799805 }806806+800807 for (i = 0; i < TX_RING_SIZE; i++) {801808 struct sk_buff *skb = tp->tx_buffers[i].skb;802809···809814 tp->tx_buffers[i].skb = NULL;810815 tp->tx_buffers[i].mapping = 0;811816 }817817+}818818+819819+static int tulip_close (struct net_device *dev)820820+{821821+ struct tulip_private *tp = netdev_priv(dev);822822+ void __iomem *ioaddr = tp->base_addr;823823+824824+ netif_stop_queue (dev);825825+826826+ tulip_down (dev);827827+828828+ if (tulip_debug > 1)829829+ printk (KERN_DEBUG "%s: Shutting down ethercard, status was %2.2x.\n",830830+ dev->name, ioread32 (ioaddr + CSR5));831831+832832+ free_irq (dev->irq, dev);833833+834834+ tulip_free_ring (dev);812835813836 return 0;814837}