Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
[PATCH] drivers cris: return on NULL dev_alloc_skb()
[PATCH] com20020 build fix
[PATCH] bonding: lockdep annotation
[PATCH] bcm43xx: Add error checking in bcm43xx_sprom_write()
[PATCH] bcm43xx: Drain TX status before starting IRQs

+32 -4
+5 -2
drivers/net/arcnet/com20020.c
··· 337 337 } 338 338 } 339 339 340 - #ifdef MODULE 341 - 340 + #if defined(CONFIG_ARCNET_COM20020_PCI_MODULE) || \ 341 + defined(CONFIG_ARCNET_COM20020_ISA_MODULE) 342 342 EXPORT_SYMBOL(com20020_check); 343 343 EXPORT_SYMBOL(com20020_found); 344 + #endif 344 345 345 346 MODULE_LICENSE("GPL"); 347 + 348 + #ifdef MODULE 346 349 347 350 int init_module(void) 348 351 {
+5
drivers/net/bonding/bond_main.c
··· 4692 4692 return 0; 4693 4693 } 4694 4694 4695 + static struct lock_class_key bonding_netdev_xmit_lock_key; 4696 + 4695 4697 /* Create a new bond based on the specified name and bonding parameters. 4696 4698 * Caller must NOT hold rtnl_lock; we need to release it here before we 4697 4699 * set up our sysfs entries. ··· 4729 4727 if (res < 0) { 4730 4728 goto out_bond; 4731 4729 } 4730 + 4731 + lockdep_set_class(&bond_dev->_xmit_lock, &bonding_netdev_xmit_lock_key); 4732 + 4732 4733 if (newbond) 4733 4734 *newbond = bond_dev->priv; 4734 4735
+2
drivers/net/cris/eth_v10.c
··· 509 509 * does not share cacheline with any other data (to avoid cache bug) 510 510 */ 511 511 RxDescList[i].skb = dev_alloc_skb(MAX_MEDIA_DATA_SIZE + 2 * L1_CACHE_BYTES); 512 + if (!RxDescList[i].skb) 513 + return -ENOMEM; 512 514 RxDescList[i].descr.ctrl = 0; 513 515 RxDescList[i].descr.sw_len = MAX_MEDIA_DATA_SIZE; 514 516 RxDescList[i].descr.next = virt_to_phys(&RxDescList[i + 1]);
+20 -2
drivers/net/wireless/bcm43xx/bcm43xx_main.c
··· 746 746 if (err) 747 747 goto err_ctlreg; 748 748 spromctl |= 0x10; /* SPROM WRITE enable. */ 749 - bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 749 + err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 750 750 if (err) 751 751 goto err_ctlreg; 752 752 /* We must burn lots of CPU cycles here, but that does not ··· 768 768 mdelay(20); 769 769 } 770 770 spromctl &= ~0x10; /* SPROM WRITE enable. */ 771 - bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 771 + err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 772 772 if (err) 773 773 goto err_ctlreg; 774 774 mdelay(500); ··· 1460 1460 bcm43xx_pio_handle_xmitstatus(bcm, &stat); 1461 1461 else 1462 1462 bcm43xx_dma_handle_xmitstatus(bcm, &stat); 1463 + } 1464 + } 1465 + 1466 + static void drain_txstatus_queue(struct bcm43xx_private *bcm) 1467 + { 1468 + u32 dummy; 1469 + 1470 + if (bcm->current_core->rev < 5) 1471 + return; 1472 + /* Read all entries from the microcode TXstatus FIFO 1473 + * and throw them away. 1474 + */ 1475 + while (1) { 1476 + dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0); 1477 + if (!dummy) 1478 + break; 1479 + dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1); 1463 1480 } 1464 1481 } 1465 1482 ··· 3549 3532 bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); 3550 3533 bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); 3551 3534 bcm43xx_security_init(bcm); 3535 + drain_txstatus_queue(bcm); 3552 3536 ieee80211softmac_start(bcm->net_dev); 3553 3537 3554 3538 /* Let's go! Be careful after enabling the IRQs.