diff options
| -rw-r--r-- | drivers/net/bonding/bond_main.c | 32 | ||||
| -rw-r--r-- | drivers/net/bonding/bonding.h | 7 | ||||
| -rw-r--r-- | drivers/net/e100.c | 6 | ||||
| -rw-r--r-- | drivers/net/ns83820.c | 13 | ||||
| -rw-r--r-- | drivers/net/s2io.c | 43 | ||||
| -rw-r--r-- | drivers/net/wireless/airo.c | 36 | ||||
| -rw-r--r-- | drivers/net/wireless/airo_cs.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/atmel.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/atmel_cs.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/ipw2100.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/prism54/isl_38xx.c | 12 | ||||
| -rw-r--r-- | drivers/net/wireless/prism54/islpci_eth.c | 10 | ||||
| -rw-r--r-- | drivers/net/wireless/wavelan_cs.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/wl3501_cs.c | 3 | ||||
| -rw-r--r-- | include/linux/eeprom.h | 136 | ||||
| -rw-r--r-- | net/ieee80211/ieee80211_rx.c | 2 |
16 files changed, 72 insertions, 249 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 8032126fd589..94cec3cf2a13 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -1604,35 +1604,27 @@ static int bond_sethwaddr(struct net_device *bond_dev, struct net_device *slave_ | |||
| 1604 | (NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM) | 1604 | (NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM) |
| 1605 | 1605 | ||
| 1606 | /* | 1606 | /* |
| 1607 | * Compute the features available to the bonding device by | 1607 | * Compute the common dev->feature set available to all slaves. Some |
| 1608 | * intersection of all of the slave devices' BOND_INTERSECT_FEATURES. | 1608 | * feature bits are managed elsewhere, so preserve feature bits set on |
| 1609 | * Call this after attaching or detaching a slave to update the | 1609 | * master device that are not part of the examined set. |
| 1610 | * bond's features. | ||
| 1611 | */ | 1610 | */ |
| 1612 | static int bond_compute_features(struct bonding *bond) | 1611 | static int bond_compute_features(struct bonding *bond) |
| 1613 | { | 1612 | { |
| 1614 | int i; | 1613 | unsigned long features = BOND_INTERSECT_FEATURES; |
| 1615 | struct slave *slave; | 1614 | struct slave *slave; |
| 1616 | struct net_device *bond_dev = bond->dev; | 1615 | struct net_device *bond_dev = bond->dev; |
| 1617 | int features = bond->bond_features; | 1616 | int i; |
| 1618 | 1617 | ||
| 1619 | bond_for_each_slave(bond, slave, i) { | 1618 | bond_for_each_slave(bond, slave, i) |
| 1620 | struct net_device * slave_dev = slave->dev; | 1619 | features &= (slave->dev->features & BOND_INTERSECT_FEATURES); |
| 1621 | if (i == 0) { | ||
| 1622 | features |= BOND_INTERSECT_FEATURES; | ||
| 1623 | } | ||
| 1624 | features &= | ||
| 1625 | ~(~slave_dev->features & BOND_INTERSECT_FEATURES); | ||
| 1626 | } | ||
| 1627 | 1620 | ||
| 1628 | /* turn off NETIF_F_SG if we need a csum and h/w can't do it */ | ||
| 1629 | if ((features & NETIF_F_SG) && | 1621 | if ((features & NETIF_F_SG) && |
| 1630 | !(features & (NETIF_F_IP_CSUM | | 1622 | !(features & (NETIF_F_IP_CSUM | |
| 1631 | NETIF_F_NO_CSUM | | 1623 | NETIF_F_NO_CSUM | |
| 1632 | NETIF_F_HW_CSUM))) { | 1624 | NETIF_F_HW_CSUM))) |
| 1633 | features &= ~NETIF_F_SG; | 1625 | features &= ~NETIF_F_SG; |
| 1634 | } | ||
| 1635 | 1626 | ||
| 1627 | features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES); | ||
| 1636 | bond_dev->features = features; | 1628 | bond_dev->features = features; |
| 1637 | 1629 | ||
| 1638 | return 0; | 1630 | return 0; |
| @@ -4561,8 +4553,6 @@ static int __init bond_init(struct net_device *bond_dev, struct bond_params *par | |||
| 4561 | NETIF_F_HW_VLAN_RX | | 4553 | NETIF_F_HW_VLAN_RX | |
| 4562 | NETIF_F_HW_VLAN_FILTER); | 4554 | NETIF_F_HW_VLAN_FILTER); |
| 4563 | 4555 | ||
| 4564 | bond->bond_features = bond_dev->features; | ||
| 4565 | |||
| 4566 | #ifdef CONFIG_PROC_FS | 4556 | #ifdef CONFIG_PROC_FS |
| 4567 | bond_create_proc_entry(bond); | 4557 | bond_create_proc_entry(bond); |
| 4568 | #endif | 4558 | #endif |
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h index bbf9da8af624..1433e91db0f7 100644 --- a/drivers/net/bonding/bonding.h +++ b/drivers/net/bonding/bonding.h | |||
| @@ -40,8 +40,8 @@ | |||
| 40 | #include "bond_3ad.h" | 40 | #include "bond_3ad.h" |
| 41 | #include "bond_alb.h" | 41 | #include "bond_alb.h" |
| 42 | 42 | ||
| 43 | #define DRV_VERSION "2.6.4" | 43 | #define DRV_VERSION "2.6.5" |
| 44 | #define DRV_RELDATE "September 26, 2005" | 44 | #define DRV_RELDATE "November 4, 2005" |
| 45 | #define DRV_NAME "bonding" | 45 | #define DRV_NAME "bonding" |
| 46 | #define DRV_DESCRIPTION "Ethernet Channel Bonding Driver" | 46 | #define DRV_DESCRIPTION "Ethernet Channel Bonding Driver" |
| 47 | 47 | ||
| @@ -211,9 +211,6 @@ struct bonding { | |||
| 211 | struct bond_params params; | 211 | struct bond_params params; |
| 212 | struct list_head vlan_list; | 212 | struct list_head vlan_list; |
| 213 | struct vlan_group *vlgrp; | 213 | struct vlan_group *vlgrp; |
| 214 | /* the features the bonding device supports, independently | ||
| 215 | * of any slaves */ | ||
| 216 | int bond_features; | ||
| 217 | }; | 214 | }; |
| 218 | 215 | ||
| 219 | /** | 216 | /** |
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index eb169a8e8773..7a6aeae2c9fa 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
| @@ -1478,7 +1478,7 @@ static inline int e100_rx_alloc_skb(struct nic *nic, struct rx *rx) | |||
| 1478 | 1478 | ||
| 1479 | if(pci_dma_mapping_error(rx->dma_addr)) { | 1479 | if(pci_dma_mapping_error(rx->dma_addr)) { |
| 1480 | dev_kfree_skb_any(rx->skb); | 1480 | dev_kfree_skb_any(rx->skb); |
| 1481 | rx->skb = 0; | 1481 | rx->skb = NULL; |
| 1482 | rx->dma_addr = 0; | 1482 | rx->dma_addr = 0; |
| 1483 | return -ENOMEM; | 1483 | return -ENOMEM; |
| 1484 | } | 1484 | } |
| @@ -1764,7 +1764,7 @@ static int e100_up(struct nic *nic) | |||
| 1764 | if((err = e100_hw_init(nic))) | 1764 | if((err = e100_hw_init(nic))) |
| 1765 | goto err_clean_cbs; | 1765 | goto err_clean_cbs; |
| 1766 | e100_set_multicast_list(nic->netdev); | 1766 | e100_set_multicast_list(nic->netdev); |
| 1767 | e100_start_receiver(nic, 0); | 1767 | e100_start_receiver(nic, NULL); |
| 1768 | mod_timer(&nic->watchdog, jiffies); | 1768 | mod_timer(&nic->watchdog, jiffies); |
| 1769 | if((err = request_irq(nic->pdev->irq, e100_intr, SA_SHIRQ, | 1769 | if((err = request_irq(nic->pdev->irq, e100_intr, SA_SHIRQ, |
| 1770 | nic->netdev->name, nic->netdev))) | 1770 | nic->netdev->name, nic->netdev))) |
| @@ -1844,7 +1844,7 @@ static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode) | |||
| 1844 | mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, | 1844 | mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, |
| 1845 | BMCR_LOOPBACK); | 1845 | BMCR_LOOPBACK); |
| 1846 | 1846 | ||
| 1847 | e100_start_receiver(nic, 0); | 1847 | e100_start_receiver(nic, NULL); |
| 1848 | 1848 | ||
| 1849 | if(!(skb = dev_alloc_skb(ETH_DATA_LEN))) { | 1849 | if(!(skb = dev_alloc_skb(ETH_DATA_LEN))) { |
| 1850 | err = -ENOMEM; | 1850 | err = -ENOMEM; |
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index a3c3fc9c0d8a..f857ae94d261 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
| @@ -110,7 +110,6 @@ | |||
| 110 | #include <linux/init.h> | 110 | #include <linux/init.h> |
| 111 | #include <linux/ip.h> /* for iph */ | 111 | #include <linux/ip.h> /* for iph */ |
| 112 | #include <linux/in.h> /* for IPPROTO_... */ | 112 | #include <linux/in.h> /* for IPPROTO_... */ |
| 113 | #include <linux/eeprom.h> | ||
| 114 | #include <linux/compiler.h> | 113 | #include <linux/compiler.h> |
| 115 | #include <linux/prefetch.h> | 114 | #include <linux/prefetch.h> |
| 116 | #include <linux/ethtool.h> | 115 | #include <linux/ethtool.h> |
| @@ -445,7 +444,6 @@ struct ns83820 { | |||
| 445 | 444 | ||
| 446 | u32 MEAR_cache; | 445 | u32 MEAR_cache; |
| 447 | u32 IMR_cache; | 446 | u32 IMR_cache; |
| 448 | struct eeprom ee; | ||
| 449 | 447 | ||
| 450 | unsigned linkstate; | 448 | unsigned linkstate; |
| 451 | 449 | ||
| @@ -1558,15 +1556,13 @@ static void ns83820_getmac(struct ns83820 *dev, u8 *mac) | |||
| 1558 | unsigned i; | 1556 | unsigned i; |
| 1559 | for (i=0; i<3; i++) { | 1557 | for (i=0; i<3; i++) { |
| 1560 | u32 data; | 1558 | u32 data; |
| 1561 | #if 0 /* I've left this in as an example of how to use eeprom.h */ | 1559 | |
| 1562 | data = eeprom_readw(&dev->ee, 0xa + 2 - i); | ||
| 1563 | #else | ||
| 1564 | /* Read from the perfect match memory: this is loaded by | 1560 | /* Read from the perfect match memory: this is loaded by |
| 1565 | * the chip from the EEPROM via the EELOAD self test. | 1561 | * the chip from the EEPROM via the EELOAD self test. |
| 1566 | */ | 1562 | */ |
| 1567 | writel(i*2, dev->base + RFCR); | 1563 | writel(i*2, dev->base + RFCR); |
| 1568 | data = readl(dev->base + RFDR); | 1564 | data = readl(dev->base + RFDR); |
| 1569 | #endif | 1565 | |
| 1570 | *mac++ = data; | 1566 | *mac++ = data; |
| 1571 | *mac++ = data >> 8; | 1567 | *mac++ = data >> 8; |
| 1572 | } | 1568 | } |
| @@ -1851,8 +1847,6 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_ | |||
| 1851 | spin_lock_init(&dev->misc_lock); | 1847 | spin_lock_init(&dev->misc_lock); |
| 1852 | dev->pci_dev = pci_dev; | 1848 | dev->pci_dev = pci_dev; |
| 1853 | 1849 | ||
| 1854 | dev->ee.cache = &dev->MEAR_cache; | ||
| 1855 | dev->ee.lock = &dev->misc_lock; | ||
| 1856 | SET_MODULE_OWNER(ndev); | 1850 | SET_MODULE_OWNER(ndev); |
| 1857 | SET_NETDEV_DEV(ndev, &pci_dev->dev); | 1851 | SET_NETDEV_DEV(ndev, &pci_dev->dev); |
| 1858 | 1852 | ||
| @@ -1887,9 +1881,6 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_ | |||
| 1887 | 1881 | ||
| 1888 | dev->IMR_cache = 0; | 1882 | dev->IMR_cache = 0; |
| 1889 | 1883 | ||
| 1890 | setup_ee_mem_bitbanger(&dev->ee, dev->base + MEAR, 3, 2, 1, 0, | ||
| 1891 | 0); | ||
| 1892 | |||
| 1893 | err = request_irq(pci_dev->irq, ns83820_irq, SA_SHIRQ, | 1884 | err = request_irq(pci_dev->irq, ns83820_irq, SA_SHIRQ, |
| 1894 | DRV_NAME, ndev); | 1885 | DRV_NAME, ndev); |
| 1895 | if (err) { | 1886 | if (err) { |
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 0745dd9d01f3..24b7233a803c 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
| @@ -1532,7 +1532,7 @@ static int init_nic(struct s2io_nic *nic) | |||
| 1532 | #define LINK_UP_DOWN_INTERRUPT 1 | 1532 | #define LINK_UP_DOWN_INTERRUPT 1 |
| 1533 | #define MAC_RMAC_ERR_TIMER 2 | 1533 | #define MAC_RMAC_ERR_TIMER 2 |
| 1534 | 1534 | ||
| 1535 | int s2io_link_fault_indication(nic_t *nic) | 1535 | static int s2io_link_fault_indication(nic_t *nic) |
| 1536 | { | 1536 | { |
| 1537 | if (nic->intr_type != INTA) | 1537 | if (nic->intr_type != INTA) |
| 1538 | return MAC_RMAC_ERR_TIMER; | 1538 | return MAC_RMAC_ERR_TIMER; |
| @@ -1864,7 +1864,7 @@ static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag) | |||
| 1864 | * | 1864 | * |
| 1865 | */ | 1865 | */ |
| 1866 | 1866 | ||
| 1867 | void fix_mac_address(nic_t * sp) | 1867 | static void fix_mac_address(nic_t * sp) |
| 1868 | { | 1868 | { |
| 1869 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 1869 | XENA_dev_config_t __iomem *bar0 = sp->bar0; |
| 1870 | u64 val64; | 1870 | u64 val64; |
| @@ -2160,7 +2160,7 @@ int fill_rxd_3buf(nic_t *nic, RxD_t *rxdp, struct sk_buff *skb) | |||
| 2160 | * SUCCESS on success or an appropriate -ve value on failure. | 2160 | * SUCCESS on success or an appropriate -ve value on failure. |
| 2161 | */ | 2161 | */ |
| 2162 | 2162 | ||
| 2163 | int fill_rx_buffers(struct s2io_nic *nic, int ring_no) | 2163 | static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) |
| 2164 | { | 2164 | { |
| 2165 | struct net_device *dev = nic->dev; | 2165 | struct net_device *dev = nic->dev; |
| 2166 | struct sk_buff *skb; | 2166 | struct sk_buff *skb; |
| @@ -2831,7 +2831,7 @@ static void alarm_intr_handler(struct s2io_nic *nic) | |||
| 2831 | * SUCCESS on success and FAILURE on failure. | 2831 | * SUCCESS on success and FAILURE on failure. |
| 2832 | */ | 2832 | */ |
| 2833 | 2833 | ||
| 2834 | int wait_for_cmd_complete(nic_t * sp) | 2834 | static int wait_for_cmd_complete(nic_t * sp) |
| 2835 | { | 2835 | { |
| 2836 | XENA_dev_config_t __iomem *bar0 = sp->bar0; | 2836 | XENA_dev_config_t __iomem *bar0 = sp->bar0; |
| 2837 | int ret = FAILURE, cnt = 0; | 2837 | int ret = FAILURE, cnt = 0; |
| @@ -3077,7 +3077,7 @@ int s2io_set_swapper(nic_t * sp) | |||
| 3077 | return SUCCESS; | 3077 | return SUCCESS; |
| 3078 | } | 3078 | } |
| 3079 | 3079 | ||
| 3080 | int wait_for_msix_trans(nic_t *nic, int i) | 3080 | static int wait_for_msix_trans(nic_t *nic, int i) |
| 3081 | { | 3081 | { |
| 3082 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3082 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; |
| 3083 | u64 val64; | 3083 | u64 val64; |
| @@ -3116,7 +3116,7 @@ void restore_xmsi_data(nic_t *nic) | |||
| 3116 | } | 3116 | } |
| 3117 | } | 3117 | } |
| 3118 | 3118 | ||
| 3119 | void store_xmsi_data(nic_t *nic) | 3119 | static void store_xmsi_data(nic_t *nic) |
| 3120 | { | 3120 | { |
| 3121 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; | 3121 | XENA_dev_config_t *bar0 = (XENA_dev_config_t *) nic->bar0; |
| 3122 | u64 val64, addr, data; | 3122 | u64 val64, addr, data; |
| @@ -3288,7 +3288,7 @@ int s2io_enable_msi_x(nic_t *nic) | |||
| 3288 | * file on failure. | 3288 | * file on failure. |
| 3289 | */ | 3289 | */ |
| 3290 | 3290 | ||
| 3291 | int s2io_open(struct net_device *dev) | 3291 | static int s2io_open(struct net_device *dev) |
| 3292 | { | 3292 | { |
| 3293 | nic_t *sp = dev->priv; | 3293 | nic_t *sp = dev->priv; |
| 3294 | int err = 0; | 3294 | int err = 0; |
| @@ -3418,7 +3418,7 @@ hw_init_failed: | |||
| 3418 | * file on failure. | 3418 | * file on failure. |
| 3419 | */ | 3419 | */ |
| 3420 | 3420 | ||
| 3421 | int s2io_close(struct net_device *dev) | 3421 | static int s2io_close(struct net_device *dev) |
| 3422 | { | 3422 | { |
| 3423 | nic_t *sp = dev->priv; | 3423 | nic_t *sp = dev->priv; |
| 3424 | int i; | 3424 | int i; |
| @@ -3467,7 +3467,7 @@ int s2io_close(struct net_device *dev) | |||
| 3467 | * 0 on success & 1 on failure. | 3467 | * 0 on success & 1 on failure. |
| 3468 | */ | 3468 | */ |
| 3469 | 3469 | ||
| 3470 | int s2io_xmit(struct sk_buff *skb, struct net_device *dev) | 3470 | static int s2io_xmit(struct sk_buff *skb, struct net_device *dev) |
| 3471 | { | 3471 | { |
| 3472 | nic_t *sp = dev->priv; | 3472 | nic_t *sp = dev->priv; |
| 3473 | u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; | 3473 | u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off; |
| @@ -3913,7 +3913,7 @@ static void s2io_updt_stats(nic_t *sp) | |||
| 3913 | * pointer to the updated net_device_stats structure. | 3913 | * pointer to the updated net_device_stats structure. |
| 3914 | */ | 3914 | */ |
| 3915 | 3915 | ||
| 3916 | struct net_device_stats *s2io_get_stats(struct net_device *dev) | 3916 | static struct net_device_stats *s2io_get_stats(struct net_device *dev) |
| 3917 | { | 3917 | { |
| 3918 | nic_t *sp = dev->priv; | 3918 | nic_t *sp = dev->priv; |
| 3919 | mac_info_t *mac_control; | 3919 | mac_info_t *mac_control; |
| @@ -5106,19 +5106,20 @@ static void s2io_get_ethtool_stats(struct net_device *dev, | |||
| 5106 | tmp_stats[i++] = stat_info->sw_stat.double_ecc_errs; | 5106 | tmp_stats[i++] = stat_info->sw_stat.double_ecc_errs; |
| 5107 | } | 5107 | } |
| 5108 | 5108 | ||
| 5109 | int s2io_ethtool_get_regs_len(struct net_device *dev) | 5109 | static int s2io_ethtool_get_regs_len(struct net_device *dev) |
| 5110 | { | 5110 | { |
| 5111 | return (XENA_REG_SPACE); | 5111 | return (XENA_REG_SPACE); |
| 5112 | } | 5112 | } |
| 5113 | 5113 | ||
| 5114 | 5114 | ||
| 5115 | u32 s2io_ethtool_get_rx_csum(struct net_device * dev) | 5115 | static u32 s2io_ethtool_get_rx_csum(struct net_device * dev) |
| 5116 | { | 5116 | { |
| 5117 | nic_t *sp = dev->priv; | 5117 | nic_t *sp = dev->priv; |
| 5118 | 5118 | ||
| 5119 | return (sp->rx_csum); | 5119 | return (sp->rx_csum); |
| 5120 | } | 5120 | } |
| 5121 | int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data) | 5121 | |
| 5122 | static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data) | ||
| 5122 | { | 5123 | { |
| 5123 | nic_t *sp = dev->priv; | 5124 | nic_t *sp = dev->priv; |
| 5124 | 5125 | ||
| @@ -5129,17 +5130,19 @@ int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data) | |||
| 5129 | 5130 | ||
| 5130 | return 0; | 5131 | return 0; |
| 5131 | } | 5132 | } |
| 5132 | int s2io_get_eeprom_len(struct net_device *dev) | 5133 | |
| 5134 | static int s2io_get_eeprom_len(struct net_device *dev) | ||
| 5133 | { | 5135 | { |
| 5134 | return (XENA_EEPROM_SPACE); | 5136 | return (XENA_EEPROM_SPACE); |
| 5135 | } | 5137 | } |
| 5136 | 5138 | ||
| 5137 | int s2io_ethtool_self_test_count(struct net_device *dev) | 5139 | static int s2io_ethtool_self_test_count(struct net_device *dev) |
| 5138 | { | 5140 | { |
| 5139 | return (S2IO_TEST_LEN); | 5141 | return (S2IO_TEST_LEN); |
| 5140 | } | 5142 | } |
| 5141 | void s2io_ethtool_get_strings(struct net_device *dev, | 5143 | |
| 5142 | u32 stringset, u8 * data) | 5144 | static void s2io_ethtool_get_strings(struct net_device *dev, |
| 5145 | u32 stringset, u8 * data) | ||
| 5143 | { | 5146 | { |
| 5144 | switch (stringset) { | 5147 | switch (stringset) { |
| 5145 | case ETH_SS_TEST: | 5148 | case ETH_SS_TEST: |
| @@ -5155,7 +5158,7 @@ static int s2io_ethtool_get_stats_count(struct net_device *dev) | |||
| 5155 | return (S2IO_STAT_LEN); | 5158 | return (S2IO_STAT_LEN); |
| 5156 | } | 5159 | } |
| 5157 | 5160 | ||
| 5158 | int s2io_ethtool_op_set_tx_csum(struct net_device *dev, u32 data) | 5161 | static int s2io_ethtool_op_set_tx_csum(struct net_device *dev, u32 data) |
| 5159 | { | 5162 | { |
| 5160 | if (data) | 5163 | if (data) |
| 5161 | dev->features |= NETIF_F_IP_CSUM; | 5164 | dev->features |= NETIF_F_IP_CSUM; |
| @@ -5208,7 +5211,7 @@ static struct ethtool_ops netdev_ethtool_ops = { | |||
| 5208 | * function always return EOPNOTSUPPORTED | 5211 | * function always return EOPNOTSUPPORTED |
| 5209 | */ | 5212 | */ |
| 5210 | 5213 | ||
| 5211 | int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 5214 | static int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
| 5212 | { | 5215 | { |
| 5213 | return -EOPNOTSUPP; | 5216 | return -EOPNOTSUPP; |
| 5214 | } | 5217 | } |
| @@ -5224,7 +5227,7 @@ int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | |||
| 5224 | * file on failure. | 5227 | * file on failure. |
| 5225 | */ | 5228 | */ |
| 5226 | 5229 | ||
| 5227 | int s2io_change_mtu(struct net_device *dev, int new_mtu) | 5230 | static int s2io_change_mtu(struct net_device *dev, int new_mtu) |
| 5228 | { | 5231 | { |
| 5229 | nic_t *sp = dev->priv; | 5232 | nic_t *sp = dev->priv; |
| 5230 | 5233 | ||
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 6afc6e5dee9b..340ab4ee4b67 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c | |||
| @@ -4535,9 +4535,8 @@ static int proc_status_open( struct inode *inode, struct file *file ) { | |||
| 4535 | StatusRid status_rid; | 4535 | StatusRid status_rid; |
| 4536 | int i; | 4536 | int i; |
| 4537 | 4537 | ||
| 4538 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 4538 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 4539 | return -ENOMEM; | 4539 | return -ENOMEM; |
| 4540 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 4541 | data = (struct proc_data *)file->private_data; | 4540 | data = (struct proc_data *)file->private_data; |
| 4542 | if ((data->rbuffer = kmalloc( 2048, GFP_KERNEL )) == NULL) { | 4541 | if ((data->rbuffer = kmalloc( 2048, GFP_KERNEL )) == NULL) { |
| 4543 | kfree (file->private_data); | 4542 | kfree (file->private_data); |
| @@ -4615,9 +4614,8 @@ static int proc_stats_rid_open( struct inode *inode, | |||
| 4615 | int i, j; | 4614 | int i, j; |
| 4616 | u32 *vals = stats.vals; | 4615 | u32 *vals = stats.vals; |
| 4617 | 4616 | ||
| 4618 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 4617 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 4619 | return -ENOMEM; | 4618 | return -ENOMEM; |
| 4620 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 4621 | data = (struct proc_data *)file->private_data; | 4619 | data = (struct proc_data *)file->private_data; |
| 4622 | if ((data->rbuffer = kmalloc( 4096, GFP_KERNEL )) == NULL) { | 4620 | if ((data->rbuffer = kmalloc( 4096, GFP_KERNEL )) == NULL) { |
| 4623 | kfree (file->private_data); | 4621 | kfree (file->private_data); |
| @@ -4881,20 +4879,18 @@ static int proc_config_open( struct inode *inode, struct file *file ) { | |||
| 4881 | struct airo_info *ai = dev->priv; | 4879 | struct airo_info *ai = dev->priv; |
| 4882 | int i; | 4880 | int i; |
| 4883 | 4881 | ||
| 4884 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 4882 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 4885 | return -ENOMEM; | 4883 | return -ENOMEM; |
| 4886 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 4887 | data = (struct proc_data *)file->private_data; | 4884 | data = (struct proc_data *)file->private_data; |
| 4888 | if ((data->rbuffer = kmalloc( 2048, GFP_KERNEL )) == NULL) { | 4885 | if ((data->rbuffer = kmalloc( 2048, GFP_KERNEL )) == NULL) { |
| 4889 | kfree (file->private_data); | 4886 | kfree (file->private_data); |
| 4890 | return -ENOMEM; | 4887 | return -ENOMEM; |
| 4891 | } | 4888 | } |
| 4892 | if ((data->wbuffer = kmalloc( 2048, GFP_KERNEL )) == NULL) { | 4889 | if ((data->wbuffer = kzalloc( 2048, GFP_KERNEL )) == NULL) { |
| 4893 | kfree (data->rbuffer); | 4890 | kfree (data->rbuffer); |
| 4894 | kfree (file->private_data); | 4891 | kfree (file->private_data); |
| 4895 | return -ENOMEM; | 4892 | return -ENOMEM; |
| 4896 | } | 4893 | } |
| 4897 | memset( data->wbuffer, 0, 2048 ); | ||
| 4898 | data->maxwritelen = 2048; | 4894 | data->maxwritelen = 2048; |
| 4899 | data->on_close = proc_config_on_close; | 4895 | data->on_close = proc_config_on_close; |
| 4900 | 4896 | ||
| @@ -5155,24 +5151,21 @@ static int proc_wepkey_open( struct inode *inode, struct file *file ) { | |||
| 5155 | int j=0; | 5151 | int j=0; |
| 5156 | int rc; | 5152 | int rc; |
| 5157 | 5153 | ||
| 5158 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 5154 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 5159 | return -ENOMEM; | 5155 | return -ENOMEM; |
| 5160 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 5161 | memset(&wkr, 0, sizeof(wkr)); | 5156 | memset(&wkr, 0, sizeof(wkr)); |
| 5162 | data = (struct proc_data *)file->private_data; | 5157 | data = (struct proc_data *)file->private_data; |
| 5163 | if ((data->rbuffer = kmalloc( 180, GFP_KERNEL )) == NULL) { | 5158 | if ((data->rbuffer = kzalloc( 180, GFP_KERNEL )) == NULL) { |
| 5164 | kfree (file->private_data); | 5159 | kfree (file->private_data); |
| 5165 | return -ENOMEM; | 5160 | return -ENOMEM; |
| 5166 | } | 5161 | } |
| 5167 | memset(data->rbuffer, 0, 180); | ||
| 5168 | data->writelen = 0; | 5162 | data->writelen = 0; |
| 5169 | data->maxwritelen = 80; | 5163 | data->maxwritelen = 80; |
| 5170 | if ((data->wbuffer = kmalloc( 80, GFP_KERNEL )) == NULL) { | 5164 | if ((data->wbuffer = kzalloc( 80, GFP_KERNEL )) == NULL) { |
| 5171 | kfree (data->rbuffer); | 5165 | kfree (data->rbuffer); |
| 5172 | kfree (file->private_data); | 5166 | kfree (file->private_data); |
| 5173 | return -ENOMEM; | 5167 | return -ENOMEM; |
| 5174 | } | 5168 | } |
| 5175 | memset( data->wbuffer, 0, 80 ); | ||
| 5176 | data->on_close = proc_wepkey_on_close; | 5169 | data->on_close = proc_wepkey_on_close; |
| 5177 | 5170 | ||
| 5178 | ptr = data->rbuffer; | 5171 | ptr = data->rbuffer; |
| @@ -5203,9 +5196,8 @@ static int proc_SSID_open( struct inode *inode, struct file *file ) { | |||
| 5203 | char *ptr; | 5196 | char *ptr; |
| 5204 | SsidRid SSID_rid; | 5197 | SsidRid SSID_rid; |
| 5205 | 5198 | ||
| 5206 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 5199 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 5207 | return -ENOMEM; | 5200 | return -ENOMEM; |
| 5208 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 5209 | data = (struct proc_data *)file->private_data; | 5201 | data = (struct proc_data *)file->private_data; |
| 5210 | if ((data->rbuffer = kmalloc( 104, GFP_KERNEL )) == NULL) { | 5202 | if ((data->rbuffer = kmalloc( 104, GFP_KERNEL )) == NULL) { |
| 5211 | kfree (file->private_data); | 5203 | kfree (file->private_data); |
| @@ -5213,12 +5205,11 @@ static int proc_SSID_open( struct inode *inode, struct file *file ) { | |||
| 5213 | } | 5205 | } |
| 5214 | data->writelen = 0; | 5206 | data->writelen = 0; |
| 5215 | data->maxwritelen = 33*3; | 5207 | data->maxwritelen = 33*3; |
| 5216 | if ((data->wbuffer = kmalloc( 33*3, GFP_KERNEL )) == NULL) { | 5208 | if ((data->wbuffer = kzalloc( 33*3, GFP_KERNEL )) == NULL) { |
| 5217 | kfree (data->rbuffer); | 5209 | kfree (data->rbuffer); |
| 5218 | kfree (file->private_data); | 5210 | kfree (file->private_data); |
| 5219 | return -ENOMEM; | 5211 | return -ENOMEM; |
| 5220 | } | 5212 | } |
| 5221 | memset( data->wbuffer, 0, 33*3 ); | ||
| 5222 | data->on_close = proc_SSID_on_close; | 5213 | data->on_close = proc_SSID_on_close; |
| 5223 | 5214 | ||
| 5224 | readSsidRid(ai, &SSID_rid); | 5215 | readSsidRid(ai, &SSID_rid); |
| @@ -5247,9 +5238,8 @@ static int proc_APList_open( struct inode *inode, struct file *file ) { | |||
| 5247 | char *ptr; | 5238 | char *ptr; |
| 5248 | APListRid APList_rid; | 5239 | APListRid APList_rid; |
| 5249 | 5240 | ||
| 5250 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 5241 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 5251 | return -ENOMEM; | 5242 | return -ENOMEM; |
| 5252 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 5253 | data = (struct proc_data *)file->private_data; | 5243 | data = (struct proc_data *)file->private_data; |
| 5254 | if ((data->rbuffer = kmalloc( 104, GFP_KERNEL )) == NULL) { | 5244 | if ((data->rbuffer = kmalloc( 104, GFP_KERNEL )) == NULL) { |
| 5255 | kfree (file->private_data); | 5245 | kfree (file->private_data); |
| @@ -5257,12 +5247,11 @@ static int proc_APList_open( struct inode *inode, struct file *file ) { | |||
| 5257 | } | 5247 | } |
| 5258 | data->writelen = 0; | 5248 | data->writelen = 0; |
| 5259 | data->maxwritelen = 4*6*3; | 5249 | data->maxwritelen = 4*6*3; |
| 5260 | if ((data->wbuffer = kmalloc( data->maxwritelen, GFP_KERNEL )) == NULL) { | 5250 | if ((data->wbuffer = kzalloc( data->maxwritelen, GFP_KERNEL )) == NULL) { |
| 5261 | kfree (data->rbuffer); | 5251 | kfree (data->rbuffer); |
| 5262 | kfree (file->private_data); | 5252 | kfree (file->private_data); |
| 5263 | return -ENOMEM; | 5253 | return -ENOMEM; |
| 5264 | } | 5254 | } |
| 5265 | memset( data->wbuffer, 0, data->maxwritelen ); | ||
| 5266 | data->on_close = proc_APList_on_close; | 5255 | data->on_close = proc_APList_on_close; |
| 5267 | 5256 | ||
| 5268 | readAPListRid(ai, &APList_rid); | 5257 | readAPListRid(ai, &APList_rid); |
| @@ -5297,9 +5286,8 @@ static int proc_BSSList_open( struct inode *inode, struct file *file ) { | |||
| 5297 | /* If doLoseSync is not 1, we won't do a Lose Sync */ | 5286 | /* If doLoseSync is not 1, we won't do a Lose Sync */ |
| 5298 | int doLoseSync = -1; | 5287 | int doLoseSync = -1; |
| 5299 | 5288 | ||
| 5300 | if ((file->private_data = kmalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) | 5289 | if ((file->private_data = kzalloc(sizeof(struct proc_data ), GFP_KERNEL)) == NULL) |
| 5301 | return -ENOMEM; | 5290 | return -ENOMEM; |
| 5302 | memset(file->private_data, 0, sizeof(struct proc_data)); | ||
| 5303 | data = (struct proc_data *)file->private_data; | 5291 | data = (struct proc_data *)file->private_data; |
| 5304 | if ((data->rbuffer = kmalloc( 1024, GFP_KERNEL )) == NULL) { | 5292 | if ((data->rbuffer = kmalloc( 1024, GFP_KERNEL )) == NULL) { |
| 5305 | kfree (file->private_data); | 5293 | kfree (file->private_data); |
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c index 96ed8da8661d..e328547599dc 100644 --- a/drivers/net/wireless/airo_cs.c +++ b/drivers/net/wireless/airo_cs.c | |||
| @@ -170,12 +170,11 @@ static dev_link_t *airo_attach(void) | |||
| 170 | DEBUG(0, "airo_attach()\n"); | 170 | DEBUG(0, "airo_attach()\n"); |
| 171 | 171 | ||
| 172 | /* Initialize the dev_link_t structure */ | 172 | /* Initialize the dev_link_t structure */ |
| 173 | link = kmalloc(sizeof(struct dev_link_t), GFP_KERNEL); | 173 | link = kzalloc(sizeof(struct dev_link_t), GFP_KERNEL); |
| 174 | if (!link) { | 174 | if (!link) { |
| 175 | printk(KERN_ERR "airo_cs: no memory for new device\n"); | 175 | printk(KERN_ERR "airo_cs: no memory for new device\n"); |
| 176 | return NULL; | 176 | return NULL; |
| 177 | } | 177 | } |
| 178 | memset(link, 0, sizeof(struct dev_link_t)); | ||
| 179 | 178 | ||
| 180 | /* Interrupt setup */ | 179 | /* Interrupt setup */ |
| 181 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 180 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
| @@ -194,13 +193,12 @@ static dev_link_t *airo_attach(void) | |||
| 194 | link->conf.IntType = INT_MEMORY_AND_IO; | 193 | link->conf.IntType = INT_MEMORY_AND_IO; |
| 195 | 194 | ||
| 196 | /* Allocate space for private device-specific data */ | 195 | /* Allocate space for private device-specific data */ |
| 197 | local = kmalloc(sizeof(local_info_t), GFP_KERNEL); | 196 | local = kzalloc(sizeof(local_info_t), GFP_KERNEL); |
| 198 | if (!local) { | 197 | if (!local) { |
| 199 | printk(KERN_ERR "airo_cs: no memory for new device\n"); | 198 | printk(KERN_ERR "airo_cs: no memory for new device\n"); |
| 200 | kfree (link); | 199 | kfree (link); |
| 201 | return NULL; | 200 | return NULL; |
| 202 | } | 201 | } |
| 203 | memset(local, 0, sizeof(local_info_t)); | ||
| 204 | link->priv = local; | 202 | link->priv = local; |
| 205 | 203 | ||
| 206 | /* Register with Card Services */ | 204 | /* Register with Card Services */ |
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c index 1fbe027d26b6..a3e23527fe7f 100644 --- a/drivers/net/wireless/atmel.c +++ b/drivers/net/wireless/atmel.c | |||
| @@ -2217,7 +2217,7 @@ static int atmel_get_range(struct net_device *dev, | |||
| 2217 | int k,i,j; | 2217 | int k,i,j; |
| 2218 | 2218 | ||
| 2219 | dwrq->length = sizeof(struct iw_range); | 2219 | dwrq->length = sizeof(struct iw_range); |
| 2220 | memset(range, 0, sizeof(range)); | 2220 | memset(range, 0, sizeof(struct iw_range)); |
| 2221 | range->min_nwid = 0x0000; | 2221 | range->min_nwid = 0x0000; |
| 2222 | range->max_nwid = 0x0000; | 2222 | range->max_nwid = 0x0000; |
| 2223 | range->num_channels = 0; | 2223 | range->num_channels = 0; |
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c index 195cb36619e8..1bd13146c644 100644 --- a/drivers/net/wireless/atmel_cs.c +++ b/drivers/net/wireless/atmel_cs.c | |||
| @@ -180,12 +180,11 @@ static dev_link_t *atmel_attach(void) | |||
| 180 | DEBUG(0, "atmel_attach()\n"); | 180 | DEBUG(0, "atmel_attach()\n"); |
| 181 | 181 | ||
| 182 | /* Initialize the dev_link_t structure */ | 182 | /* Initialize the dev_link_t structure */ |
| 183 | link = kmalloc(sizeof(struct dev_link_t), GFP_KERNEL); | 183 | link = kzalloc(sizeof(struct dev_link_t), GFP_KERNEL); |
| 184 | if (!link) { | 184 | if (!link) { |
| 185 | printk(KERN_ERR "atmel_cs: no memory for new device\n"); | 185 | printk(KERN_ERR "atmel_cs: no memory for new device\n"); |
| 186 | return NULL; | 186 | return NULL; |
| 187 | } | 187 | } |
| 188 | memset(link, 0, sizeof(struct dev_link_t)); | ||
| 189 | 188 | ||
| 190 | /* Interrupt setup */ | 189 | /* Interrupt setup */ |
| 191 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; | 190 | link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; |
| @@ -204,13 +203,12 @@ static dev_link_t *atmel_attach(void) | |||
| 204 | link->conf.IntType = INT_MEMORY_AND_IO; | 203 | link->conf.IntType = INT_MEMORY_AND_IO; |
| 205 | 204 | ||
| 206 | /* Allocate space for private device-specific data */ | 205 | /* Allocate space for private device-specific data */ |
| 207 | local = kmalloc(sizeof(local_info_t), GFP_KERNEL); | 206 | local = kzalloc(sizeof(local_info_t), GFP_KERNEL); |
| 208 | if (!local) { | 207 | if (!local) { |
| 209 | printk(KERN_ERR "atmel_cs: no memory for new device\n"); | 208 | printk(KERN_ERR "atmel_cs: no memory for new device\n"); |
| 210 | kfree (link); | 209 | kfree (link); |
| 211 | return NULL; | 210 | return NULL; |
| 212 | } | 211 | } |
| 213 | memset(local, 0, sizeof(local_info_t)); | ||
| 214 | link->priv = local; | 212 | link->priv = local; |
| 215 | 213 | ||
| 216 | /* Register with Card Services */ | 214 | /* Register with Card Services */ |
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index ad7f8cd76db9..4f19ac7d63a8 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c | |||
| @@ -6065,13 +6065,11 @@ static int ipw2100_wpa_set_encryption(struct net_device *dev, | |||
| 6065 | 6065 | ||
| 6066 | ieee80211_crypt_delayed_deinit(ieee, crypt); | 6066 | ieee80211_crypt_delayed_deinit(ieee, crypt); |
| 6067 | 6067 | ||
| 6068 | new_crypt = (struct ieee80211_crypt_data *) | 6068 | new_crypt = kzalloc(sizeof(struct ieee80211_crypt_data), GFP_KERNEL); |
| 6069 | kmalloc(sizeof(struct ieee80211_crypt_data), GFP_KERNEL); | ||
| 6070 | if (new_crypt == NULL) { | 6069 | if (new_crypt == NULL) { |
| 6071 | ret = -ENOMEM; | 6070 | ret = -ENOMEM; |
| 6072 | goto done; | 6071 | goto done; |
| 6073 | } | 6072 | } |
| 6074 | memset(new_crypt, 0, sizeof(struct ieee80211_crypt_data)); | ||
| 6075 | new_crypt->ops = ops; | 6073 | new_crypt->ops = ops; |
| 6076 | if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) | 6074 | if (new_crypt->ops && try_module_get(new_crypt->ops->owner)) |
| 6077 | new_crypt->priv = new_crypt->ops->init(param->u.crypt.idx); | 6075 | new_crypt->priv = new_crypt->ops->init(param->u.crypt.idx); |
diff --git a/drivers/net/wireless/prism54/isl_38xx.c b/drivers/net/wireless/prism54/isl_38xx.c index adc7499136dc..866c476933c3 100644 --- a/drivers/net/wireless/prism54/isl_38xx.c +++ b/drivers/net/wireless/prism54/isl_38xx.c | |||
| @@ -112,9 +112,10 @@ isl38xx_handle_wakeup(isl38xx_control_block *control_block, | |||
| 112 | void | 112 | void |
| 113 | isl38xx_trigger_device(int asleep, void __iomem *device_base) | 113 | isl38xx_trigger_device(int asleep, void __iomem *device_base) |
| 114 | { | 114 | { |
| 115 | u32 reg, counter = 0; | 115 | u32 reg; |
| 116 | 116 | ||
| 117 | #if VERBOSE > SHOW_ERROR_MESSAGES | 117 | #if VERBOSE > SHOW_ERROR_MESSAGES |
| 118 | u32 counter = 0; | ||
| 118 | struct timeval current_time; | 119 | struct timeval current_time; |
| 119 | DEBUG(SHOW_FUNCTION_CALLS, "isl38xx trigger device\n"); | 120 | DEBUG(SHOW_FUNCTION_CALLS, "isl38xx trigger device\n"); |
| 120 | #endif | 121 | #endif |
| @@ -131,7 +132,6 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base) | |||
| 131 | current_time.tv_sec, (long)current_time.tv_usec, | 132 | current_time.tv_sec, (long)current_time.tv_usec, |
| 132 | readl(device_base + ISL38XX_CTRL_STAT_REG)); | 133 | readl(device_base + ISL38XX_CTRL_STAT_REG)); |
| 133 | #endif | 134 | #endif |
| 134 | udelay(ISL38XX_WRITEIO_DELAY); | ||
| 135 | 135 | ||
| 136 | reg = readl(device_base + ISL38XX_INT_IDENT_REG); | 136 | reg = readl(device_base + ISL38XX_INT_IDENT_REG); |
| 137 | if (reg == 0xabadface) { | 137 | if (reg == 0xabadface) { |
| @@ -145,7 +145,9 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base) | |||
| 145 | while (reg = readl(device_base + ISL38XX_CTRL_STAT_REG), | 145 | while (reg = readl(device_base + ISL38XX_CTRL_STAT_REG), |
| 146 | (reg & ISL38XX_CTRL_STAT_SLEEPMODE) == 0) { | 146 | (reg & ISL38XX_CTRL_STAT_SLEEPMODE) == 0) { |
| 147 | udelay(ISL38XX_WRITEIO_DELAY); | 147 | udelay(ISL38XX_WRITEIO_DELAY); |
| 148 | #if VERBOSE > SHOW_ERROR_MESSAGES | ||
| 148 | counter++; | 149 | counter++; |
| 150 | #endif | ||
| 149 | } | 151 | } |
| 150 | 152 | ||
| 151 | #if VERBOSE > SHOW_ERROR_MESSAGES | 153 | #if VERBOSE > SHOW_ERROR_MESSAGES |
| @@ -153,10 +155,6 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base) | |||
| 153 | "%08li.%08li Device register read %08x\n", | 155 | "%08li.%08li Device register read %08x\n", |
| 154 | current_time.tv_sec, (long)current_time.tv_usec, | 156 | current_time.tv_sec, (long)current_time.tv_usec, |
| 155 | readl(device_base + ISL38XX_CTRL_STAT_REG)); | 157 | readl(device_base + ISL38XX_CTRL_STAT_REG)); |
| 156 | #endif | ||
| 157 | udelay(ISL38XX_WRITEIO_DELAY); | ||
| 158 | |||
| 159 | #if VERBOSE > SHOW_ERROR_MESSAGES | ||
| 160 | do_gettimeofday(¤t_time); | 158 | do_gettimeofday(¤t_time); |
| 161 | DEBUG(SHOW_TRACING, | 159 | DEBUG(SHOW_TRACING, |
| 162 | "%08li.%08li Device asleep counter %i\n", | 160 | "%08li.%08li Device asleep counter %i\n", |
| @@ -171,7 +169,6 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base) | |||
| 171 | 169 | ||
| 172 | /* perform another read on the Device Status Register */ | 170 | /* perform another read on the Device Status Register */ |
| 173 | reg = readl(device_base + ISL38XX_CTRL_STAT_REG); | 171 | reg = readl(device_base + ISL38XX_CTRL_STAT_REG); |
| 174 | udelay(ISL38XX_WRITEIO_DELAY); | ||
| 175 | 172 | ||
| 176 | #if VERBOSE > SHOW_ERROR_MESSAGES | 173 | #if VERBOSE > SHOW_ERROR_MESSAGES |
| 177 | do_gettimeofday(¤t_time); | 174 | do_gettimeofday(¤t_time); |
| @@ -187,7 +184,6 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base) | |||
| 187 | 184 | ||
| 188 | isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_UPDATE, | 185 | isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_UPDATE, |
| 189 | ISL38XX_DEV_INT_REG); | 186 | ISL38XX_DEV_INT_REG); |
| 190 | udelay(ISL38XX_WRITEIO_DELAY); | ||
| 191 | } | 187 | } |
| 192 | } | 188 | } |
| 193 | 189 | ||
diff --git a/drivers/net/wireless/prism54/islpci_eth.c b/drivers/net/wireless/prism54/islpci_eth.c index fc1eb3564832..a92ce3af3fa9 100644 --- a/drivers/net/wireless/prism54/islpci_eth.c +++ b/drivers/net/wireless/prism54/islpci_eth.c | |||
| @@ -227,17 +227,17 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
| 227 | priv->data_low_tx_full = 1; | 227 | priv->data_low_tx_full = 1; |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | /* set the transmission time */ | ||
| 231 | ndev->trans_start = jiffies; | ||
| 232 | priv->statistics.tx_packets++; | ||
| 233 | priv->statistics.tx_bytes += skb->len; | ||
| 234 | |||
| 230 | /* trigger the device */ | 235 | /* trigger the device */ |
| 231 | islpci_trigger(priv); | 236 | islpci_trigger(priv); |
| 232 | 237 | ||
| 233 | /* unlock the driver code */ | 238 | /* unlock the driver code */ |
| 234 | spin_unlock_irqrestore(&priv->slock, flags); | 239 | spin_unlock_irqrestore(&priv->slock, flags); |
| 235 | 240 | ||
| 236 | /* set the transmission time */ | ||
| 237 | ndev->trans_start = jiffies; | ||
| 238 | priv->statistics.tx_packets++; | ||
| 239 | priv->statistics.tx_bytes += skb->len; | ||
| 240 | |||
| 241 | return 0; | 241 | return 0; |
| 242 | 242 | ||
| 243 | drop_free: | 243 | drop_free: |
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c index 4b3c98f5c564..c822cad3333f 100644 --- a/drivers/net/wireless/wavelan_cs.c +++ b/drivers/net/wireless/wavelan_cs.c | |||
| @@ -4608,9 +4608,8 @@ wavelan_attach(void) | |||
| 4608 | #endif | 4608 | #endif |
| 4609 | 4609 | ||
| 4610 | /* Initialize the dev_link_t structure */ | 4610 | /* Initialize the dev_link_t structure */ |
| 4611 | link = kmalloc(sizeof(struct dev_link_t), GFP_KERNEL); | 4611 | link = kzalloc(sizeof(struct dev_link_t), GFP_KERNEL); |
| 4612 | if (!link) return NULL; | 4612 | if (!link) return NULL; |
| 4613 | memset(link, 0, sizeof(struct dev_link_t)); | ||
| 4614 | 4613 | ||
| 4615 | /* The io structure describes IO port mapping */ | 4614 | /* The io structure describes IO port mapping */ |
| 4616 | link->io.NumPorts1 = 8; | 4615 | link->io.NumPorts1 = 8; |
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c index 3f8c27f0871b..978fdc606781 100644 --- a/drivers/net/wireless/wl3501_cs.c +++ b/drivers/net/wireless/wl3501_cs.c | |||
| @@ -1965,10 +1965,9 @@ static dev_link_t *wl3501_attach(void) | |||
| 1965 | int ret; | 1965 | int ret; |
| 1966 | 1966 | ||
| 1967 | /* Initialize the dev_link_t structure */ | 1967 | /* Initialize the dev_link_t structure */ |
| 1968 | link = kmalloc(sizeof(*link), GFP_KERNEL); | 1968 | link = kzalloc(sizeof(*link), GFP_KERNEL); |
| 1969 | if (!link) | 1969 | if (!link) |
| 1970 | goto out; | 1970 | goto out; |
| 1971 | memset(link, 0, sizeof(struct dev_link_t)); | ||
| 1972 | 1971 | ||
| 1973 | /* The io structure describes IO port mapping */ | 1972 | /* The io structure describes IO port mapping */ |
| 1974 | link->io.NumPorts1 = 16; | 1973 | link->io.NumPorts1 = 16; |
diff --git a/include/linux/eeprom.h b/include/linux/eeprom.h deleted file mode 100644 index 38afd9da1dfe..000000000000 --- a/include/linux/eeprom.h +++ /dev/null | |||
| @@ -1,136 +0,0 @@ | |||
| 1 | /* credit winbond-840.c | ||
| 2 | */ | ||
| 3 | #include <asm/io.h> | ||
| 4 | struct eeprom_ops { | ||
| 5 | void (*set_cs)(void *ee); | ||
| 6 | void (*clear_cs)(void *ee); | ||
| 7 | }; | ||
| 8 | |||
| 9 | #define EEPOL_EEDI 0x01 | ||
| 10 | #define EEPOL_EEDO 0x02 | ||
| 11 | #define EEPOL_EECLK 0x04 | ||
| 12 | #define EEPOL_EESEL 0x08 | ||
| 13 | |||
| 14 | struct eeprom { | ||
| 15 | void *dev; | ||
| 16 | struct eeprom_ops *ops; | ||
| 17 | |||
| 18 | void __iomem * addr; | ||
| 19 | |||
| 20 | unsigned ee_addr_bits; | ||
| 21 | |||
| 22 | unsigned eesel; | ||
| 23 | unsigned eeclk; | ||
| 24 | unsigned eedo; | ||
| 25 | unsigned eedi; | ||
| 26 | unsigned polarity; | ||
| 27 | unsigned ee_state; | ||
| 28 | |||
| 29 | spinlock_t *lock; | ||
| 30 | u32 *cache; | ||
| 31 | }; | ||
| 32 | |||
| 33 | |||
| 34 | u8 eeprom_readb(struct eeprom *ee, unsigned address); | ||
| 35 | void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes, | ||
| 36 | unsigned count); | ||
| 37 | void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data); | ||
| 38 | void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes, | ||
| 39 | unsigned count); | ||
| 40 | |||
| 41 | /* The EEPROM commands include the alway-set leading bit. */ | ||
| 42 | enum EEPROM_Cmds { | ||
| 43 | EE_WriteCmd=(5 << 6), EE_ReadCmd=(6 << 6), EE_EraseCmd=(7 << 6), | ||
| 44 | }; | ||
| 45 | |||
| 46 | void setup_ee_mem_bitbanger(struct eeprom *ee, void __iomem *memaddr, int eesel_bit, int eeclk_bit, int eedo_bit, int eedi_bit, unsigned polarity) | ||
| 47 | { | ||
| 48 | ee->addr = memaddr; | ||
| 49 | ee->eesel = 1 << eesel_bit; | ||
| 50 | ee->eeclk = 1 << eeclk_bit; | ||
| 51 | ee->eedo = 1 << eedo_bit; | ||
| 52 | ee->eedi = 1 << eedi_bit; | ||
| 53 | |||
| 54 | ee->polarity = polarity; | ||
| 55 | |||
| 56 | *ee->cache = readl(ee->addr); | ||
| 57 | } | ||
| 58 | |||
| 59 | /* foo. put this in a .c file */ | ||
| 60 | static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol) | ||
| 61 | { | ||
| 62 | unsigned long flags; | ||
| 63 | u32 data; | ||
| 64 | |||
| 65 | spin_lock_irqsave(ee->lock, flags); | ||
| 66 | data = *ee->cache; | ||
| 67 | |||
| 68 | data &= ~mask; | ||
| 69 | if (pol) | ||
| 70 | data |= mask; | ||
| 71 | |||
| 72 | *ee->cache = data; | ||
| 73 | //printk("update: %08x\n", data); | ||
| 74 | writel(data, ee->addr); | ||
| 75 | spin_unlock_irqrestore(ee->lock, flags); | ||
| 76 | } | ||
| 77 | |||
| 78 | void eeprom_clk_lo(struct eeprom *ee) | ||
| 79 | { | ||
| 80 | int pol = !!(ee->polarity & EEPOL_EECLK); | ||
| 81 | |||
| 82 | eeprom_update(ee, ee->eeclk, pol); | ||
| 83 | udelay(2); | ||
| 84 | } | ||
| 85 | |||
| 86 | void eeprom_clk_hi(struct eeprom *ee) | ||
| 87 | { | ||
| 88 | int pol = !!(ee->polarity & EEPOL_EECLK); | ||
| 89 | |||
| 90 | eeprom_update(ee, ee->eeclk, !pol); | ||
| 91 | udelay(2); | ||
| 92 | } | ||
| 93 | |||
| 94 | void eeprom_send_addr(struct eeprom *ee, unsigned address) | ||
| 95 | { | ||
| 96 | int pol = !!(ee->polarity & EEPOL_EEDI); | ||
| 97 | unsigned i; | ||
| 98 | address |= 6 << 6; | ||
| 99 | |||
| 100 | /* Shift the read command bits out. */ | ||
| 101 | for (i=0; i<11; i++) { | ||
| 102 | eeprom_update(ee, ee->eedi, ((address >> 10) & 1) ^ pol); | ||
| 103 | address <<= 1; | ||
| 104 | eeprom_clk_hi(ee); | ||
| 105 | eeprom_clk_lo(ee); | ||
| 106 | } | ||
| 107 | eeprom_update(ee, ee->eedi, pol); | ||
| 108 | } | ||
| 109 | |||
| 110 | u16 eeprom_readw(struct eeprom *ee, unsigned address) | ||
| 111 | { | ||
| 112 | unsigned i; | ||
| 113 | u16 res = 0; | ||
| 114 | |||
| 115 | eeprom_clk_lo(ee); | ||
| 116 | eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL)); | ||
| 117 | eeprom_send_addr(ee, address); | ||
| 118 | |||
| 119 | for (i=0; i<16; i++) { | ||
| 120 | u32 data; | ||
| 121 | eeprom_clk_hi(ee); | ||
| 122 | res <<= 1; | ||
| 123 | data = readl(ee->addr); | ||
| 124 | //printk("eeprom_readw: %08x\n", data); | ||
| 125 | res |= !!(data & ee->eedo) ^ !!(ee->polarity & EEPOL_EEDO); | ||
| 126 | eeprom_clk_lo(ee); | ||
| 127 | } | ||
| 128 | eeprom_update(ee, ee->eesel, 0 ^ !!(ee->polarity & EEPOL_EESEL)); | ||
| 129 | |||
| 130 | return res; | ||
| 131 | } | ||
| 132 | |||
| 133 | |||
| 134 | void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data) | ||
| 135 | { | ||
| 136 | } | ||
diff --git a/net/ieee80211/ieee80211_rx.c b/net/ieee80211/ieee80211_rx.c index 6ad88218f573..03efaacbdb73 100644 --- a/net/ieee80211/ieee80211_rx.c +++ b/net/ieee80211/ieee80211_rx.c | |||
| @@ -369,6 +369,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, | |||
| 369 | /* Put this code here so that we avoid duplicating it in all | 369 | /* Put this code here so that we avoid duplicating it in all |
| 370 | * Rx paths. - Jean II */ | 370 | * Rx paths. - Jean II */ |
| 371 | #ifdef IW_WIRELESS_SPY /* defined in iw_handler.h */ | 371 | #ifdef IW_WIRELESS_SPY /* defined in iw_handler.h */ |
| 372 | #ifdef CONFIG_NET_RADIO | ||
| 372 | /* If spy monitoring on */ | 373 | /* If spy monitoring on */ |
| 373 | if (ieee->spy_data.spy_number > 0) { | 374 | if (ieee->spy_data.spy_number > 0) { |
| 374 | struct iw_quality wstats; | 375 | struct iw_quality wstats; |
| @@ -395,6 +396,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb, | |||
| 395 | /* Update spy records */ | 396 | /* Update spy records */ |
| 396 | wireless_spy_update(ieee->dev, hdr->addr2, &wstats); | 397 | wireless_spy_update(ieee->dev, hdr->addr2, &wstats); |
| 397 | } | 398 | } |
| 399 | #endif /* CONFIG_NET_RADIO */ | ||
| 398 | #endif /* IW_WIRELESS_SPY */ | 400 | #endif /* IW_WIRELESS_SPY */ |
| 399 | 401 | ||
| 400 | #ifdef NOT_YET | 402 | #ifdef NOT_YET |
