Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
sis190: scheduling while atomic error
sis190: mdio operation failure is not correctly detected
sis190: remove duplicate INIT_WORK
sis190: add cmos ram access code for the SiS19x/968 chipset pair
[INET]: Fix truesize setting in ip_append_data
[NETNS]: Re-export init_net via EXPORT_SYMBOL.
iwlwifi: fix possible read attempt on ucode that is not available
[IPV4]: Add missing skb->truesize increment in ip_append_page().
[TULIP] DMFE: Fix SROM parsing regression.
[BLUETOOTH]: Move children of connection device to NULL before connection down.

+49 -20
+10 -11
drivers/net/sis190.c
··· 372 372 msleep(1); 373 373 } 374 374 375 - if (i > 999) 375 + if (i > 99) 376 376 printk(KERN_ERR PFX "PHY command failed !\n"); 377 377 } 378 378 ··· 847 847 { 848 848 SIS_W32(IntrControl, 0x8000); 849 849 SIS_PCI_COMMIT(); 850 - msleep(1); 851 850 SIS_W32(IntrControl, 0x0); 852 851 sis190_asic_down(ioaddr); 853 - msleep(1); 854 852 } 855 853 856 854 static void sis190_hw_start(struct net_device *dev) ··· 1038 1040 rc = sis190_init_ring(dev); 1039 1041 if (rc < 0) 1040 1042 goto err_free_rx_1; 1041 - 1042 - INIT_WORK(&tp->phy_task, sis190_phy_task); 1043 1043 1044 1044 sis190_request_timer(dev); 1045 1045 ··· 1545 1549 } 1546 1550 1547 1551 /** 1548 - * sis190_get_mac_addr_from_apc - Get MAC address for SiS965 model 1552 + * sis190_get_mac_addr_from_apc - Get MAC address for SiS96x model 1549 1553 * @pdev: PCI device 1550 1554 * @dev: network device to get address for 1551 1555 * 1552 - * SiS965 model, use APC CMOS RAM to store MAC address. 1556 + * SiS96x model, use APC CMOS RAM to store MAC address. 1553 1557 * APC CMOS RAM is accessed through ISA bridge. 1554 1558 * MAC address is read into @net_dev->dev_addr. 1555 1559 */ 1556 1560 static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev *pdev, 1557 1561 struct net_device *dev) 1558 1562 { 1563 + static const u16 __devinitdata ids[] = { 0x0965, 0x0966, 0x0968 }; 1559 1564 struct sis190_private *tp = netdev_priv(dev); 1560 1565 struct pci_dev *isa_bridge; 1561 1566 u8 reg, tmp8; 1562 - int i; 1567 + unsigned int i; 1563 1568 1564 1569 net_probe(tp, KERN_INFO "%s: Read MAC address from APC.\n", 1565 1570 pci_name(pdev)); 1566 1571 1567 - isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0965, NULL); 1568 - if (!isa_bridge) 1569 - isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0966, NULL); 1572 + for (i = 0; i < ARRAY_SIZE(ids); i++) { 1573 + isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, ids[i], NULL); 1574 + if (isa_bridge) 1575 + break; 1576 + } 1570 1577 1571 1578 if (!isa_bridge) { 1572 1579 net_probe(tp, KERN_INFO "%s: Can not find ISA bridge.\n",
+3 -3
drivers/net/tulip/dmfe.c
··· 1909 1909 if ( ( (int) srom[18] & 0xff) == SROM_V41_CODE) { 1910 1910 /* SROM V4.01 */ 1911 1911 /* Get NIC support media mode */ 1912 - db->NIC_capability = le16_to_cpup((__le16 *)srom + 34/2); 1912 + db->NIC_capability = le16_to_cpup((__le16 *) (srom + 34)); 1913 1913 db->PHY_reg4 = 0; 1914 1914 for (tmp_reg = 1; tmp_reg < 0x10; tmp_reg <<= 1) { 1915 1915 switch( db->NIC_capability & tmp_reg ) { ··· 1921 1921 } 1922 1922 1923 1923 /* Media Mode Force or not check */ 1924 - dmfe_mode = le32_to_cpup((__le32 *)srom + 34/4) & 1925 - le32_to_cpup((__le32 *)srom + 36/4); 1924 + dmfe_mode = (le32_to_cpup((__le32 *) (srom + 34)) & 1925 + le32_to_cpup((__le32 *) (srom + 36))); 1926 1926 switch(dmfe_mode) { 1927 1927 case 0x4: dmfe_media_mode = DMFE_100MHF; break; /* 100MHF */ 1928 1928 case 0x2: dmfe_media_mode = DMFE_10MFD; break; /* 10MFD */
+5
drivers/net/wireless/iwlwifi/iwl3945-base.c
··· 6342 6342 return 0; 6343 6343 } 6344 6344 6345 + if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) { 6346 + IWL_ERROR("ucode not available for device bringup\n"); 6347 + return -EIO; 6348 + } 6349 + 6345 6350 iwl_write32(priv, CSR_INT, 0xFFFFFFFF); 6346 6351 6347 6352 rc = iwl_hw_nic_init(priv);
+5
drivers/net/wireless/iwlwifi/iwl4965-base.c
··· 6698 6698 return 0; 6699 6699 } 6700 6700 6701 + if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) { 6702 + IWL_ERROR("ucode not available for device bringup\n"); 6703 + return -EIO; 6704 + } 6705 + 6701 6706 iwl_write32(priv, CSR_INT, 0xFFFFFFFF); 6702 6707 6703 6708 rc = iwl_hw_nic_init(priv);
+17
net/bluetooth/hci_sysfs.c
··· 316 316 schedule_work(&conn->work); 317 317 } 318 318 319 + static int __match_tty(struct device *dev, void *data) 320 + { 321 + /* The rfcomm tty device will possibly retain even when conn 322 + * is down, and sysfs doesn't support move zombie device, 323 + * so we should move the device before conn device is destroyed. 324 + * Due to the only child device of hci_conn dev is rfcomm 325 + * tty_dev, here just return 1 326 + */ 327 + return 1; 328 + } 329 + 319 330 static void del_conn(struct work_struct *work) 320 331 { 332 + struct device *dev; 321 333 struct hci_conn *conn = container_of(work, struct hci_conn, work); 334 + 335 + while (dev = device_find_child(&conn->dev, NULL, __match_tty)) { 336 + device_move(dev, NULL); 337 + put_device(dev); 338 + } 322 339 device_del(&conn->dev); 323 340 put_device(&conn->dev); 324 341 }
+2 -1
net/bluetooth/rfcomm/tty.c
··· 696 696 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc, dev->opened); 697 697 698 698 if (--dev->opened == 0) { 699 - device_move(dev->tty_dev, NULL); 699 + if (dev->tty_dev->parent) 700 + device_move(dev->tty_dev, NULL); 700 701 701 702 /* Close DLC and dettach TTY */ 702 703 rfcomm_dlc_close(dev->dlc, 0);
+1 -1
net/core/net_namespace.c
··· 18 18 LIST_HEAD(net_namespace_list); 19 19 20 20 struct net init_net; 21 - EXPORT_SYMBOL_GPL(init_net); 21 + EXPORT_SYMBOL(init_net); 22 22 23 23 /* 24 24 * setup_net runs the initializers for the network namespace object.
+4 -2
net/ipv4/ip_output.c
··· 1016 1016 1017 1017 skb_fill_page_desc(skb, i, page, 0, 0); 1018 1018 frag = &skb_shinfo(skb)->frags[i]; 1019 - skb->truesize += PAGE_SIZE; 1020 - atomic_add(PAGE_SIZE, &sk->sk_wmem_alloc); 1021 1019 } else { 1022 1020 err = -EMSGSIZE; 1023 1021 goto error; ··· 1028 1030 frag->size += copy; 1029 1031 skb->len += copy; 1030 1032 skb->data_len += copy; 1033 + skb->truesize += copy; 1034 + atomic_add(copy, &sk->sk_wmem_alloc); 1031 1035 } 1032 1036 offset += copy; 1033 1037 length -= copy; ··· 1172 1172 1173 1173 skb->len += len; 1174 1174 skb->data_len += len; 1175 + skb->truesize += len; 1176 + atomic_add(len, &sk->sk_wmem_alloc); 1175 1177 offset += len; 1176 1178 size -= len; 1177 1179 }
+2 -2
net/ipv6/ip6_output.c
··· 1316 1316 1317 1317 skb_fill_page_desc(skb, i, page, 0, 0); 1318 1318 frag = &skb_shinfo(skb)->frags[i]; 1319 - skb->truesize += PAGE_SIZE; 1320 - atomic_add(PAGE_SIZE, &sk->sk_wmem_alloc); 1321 1319 } else { 1322 1320 err = -EMSGSIZE; 1323 1321 goto error; ··· 1328 1330 frag->size += copy; 1329 1331 skb->len += copy; 1330 1332 skb->data_len += copy; 1333 + skb->truesize += copy; 1334 + atomic_add(copy, &sk->sk_wmem_alloc); 1331 1335 } 1332 1336 offset += copy; 1333 1337 length -= copy;