diff options
Diffstat (limited to 'drivers/net')
88 files changed, 388 insertions, 233 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index e19ca4bb7510..b2f71f79baaf 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
| @@ -975,7 +975,7 @@ config ENC28J60_WRITEVERIFY | |||
| 975 | 975 | ||
| 976 | config ETHOC | 976 | config ETHOC |
| 977 | tristate "OpenCores 10/100 Mbps Ethernet MAC support" | 977 | tristate "OpenCores 10/100 Mbps Ethernet MAC support" |
| 978 | depends on NET_ETHERNET && HAS_IOMEM | 978 | depends on NET_ETHERNET && HAS_IOMEM && HAS_DMA |
| 979 | select MII | 979 | select MII |
| 980 | select PHYLIB | 980 | select PHYLIB |
| 981 | select CRC32 | 981 | select CRC32 |
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c index ce6f1ac25df8..3f4b4300f533 100644 --- a/drivers/net/au1000_eth.c +++ b/drivers/net/au1000_eth.c | |||
| @@ -1088,7 +1088,14 @@ static struct net_device * au1000_probe(int port_num) | |||
| 1088 | return NULL; | 1088 | return NULL; |
| 1089 | } | 1089 | } |
| 1090 | 1090 | ||
| 1091 | if ((err = register_netdev(dev)) != 0) { | 1091 | dev->base_addr = base; |
| 1092 | dev->irq = irq; | ||
| 1093 | dev->netdev_ops = &au1000_netdev_ops; | ||
| 1094 | SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops); | ||
| 1095 | dev->watchdog_timeo = ETH_TX_TIMEOUT; | ||
| 1096 | |||
| 1097 | err = register_netdev(dev); | ||
| 1098 | if (err != 0) { | ||
| 1092 | printk(KERN_ERR "%s: Cannot register net device, error %d\n", | 1099 | printk(KERN_ERR "%s: Cannot register net device, error %d\n", |
| 1093 | DRV_NAME, err); | 1100 | DRV_NAME, err); |
| 1094 | free_netdev(dev); | 1101 | free_netdev(dev); |
| @@ -1209,12 +1216,6 @@ static struct net_device * au1000_probe(int port_num) | |||
| 1209 | aup->tx_db_inuse[i] = pDB; | 1216 | aup->tx_db_inuse[i] = pDB; |
| 1210 | } | 1217 | } |
| 1211 | 1218 | ||
| 1212 | dev->base_addr = base; | ||
| 1213 | dev->irq = irq; | ||
| 1214 | dev->netdev_ops = &au1000_netdev_ops; | ||
| 1215 | SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops); | ||
| 1216 | dev->watchdog_timeo = ETH_TX_TIMEOUT; | ||
| 1217 | |||
| 1218 | /* | 1219 | /* |
| 1219 | * The boot code uses the ethernet controller, so reset it to start | 1220 | * The boot code uses the ethernet controller, so reset it to start |
| 1220 | * fresh. au1000_init() expects that the device is in reset state. | 1221 | * fresh. au1000_init() expects that the device is in reset state. |
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index ff449de6f3c0..8762a27a2a18 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
| 23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
| 24 | #include <linux/device.h> | 24 | #include <linux/device.h> |
| 25 | #include <linux/sched.h> | ||
| 25 | #include <linux/sysdev.h> | 26 | #include <linux/sysdev.h> |
| 26 | #include <linux/fs.h> | 27 | #include <linux/fs.h> |
| 27 | #include <linux/types.h> | 28 | #include <linux/types.h> |
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c index 15c0195ebd31..a24be34a3f7a 100644 --- a/drivers/net/cris/eth_v10.c +++ b/drivers/net/cris/eth_v10.c | |||
| @@ -768,10 +768,24 @@ e100_negotiate(struct net_device* dev) | |||
| 768 | 768 | ||
| 769 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data); | 769 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_ADVERTISE, data); |
| 770 | 770 | ||
| 771 | /* Renegotiate with link partner */ | 771 | data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR); |
| 772 | if (autoneg_normal) { | 772 | if (autoneg_normal) { |
| 773 | data = e100_get_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR); | 773 | /* Renegotiate with link partner */ |
| 774 | data |= BMCR_ANENABLE | BMCR_ANRESTART; | 774 | data |= BMCR_ANENABLE | BMCR_ANRESTART; |
| 775 | } else { | ||
| 776 | /* Don't negotiate speed or duplex */ | ||
| 777 | data &= ~(BMCR_ANENABLE | BMCR_ANRESTART); | ||
| 778 | |||
| 779 | /* Set speed and duplex static */ | ||
| 780 | if (current_speed_selection == 10) | ||
| 781 | data &= ~BMCR_SPEED100; | ||
| 782 | else | ||
| 783 | data |= BMCR_SPEED100; | ||
| 784 | |||
| 785 | if (current_duplex != full) | ||
| 786 | data &= ~BMCR_FULLDPLX; | ||
| 787 | else | ||
| 788 | data |= BMCR_FULLDPLX; | ||
| 775 | } | 789 | } |
| 776 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data); | 790 | e100_set_mdio_reg(dev, np->mii_if.phy_id, MII_BMCR, data); |
| 777 | } | 791 | } |
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index db6380379478..e3478314c002 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c | |||
| @@ -164,16 +164,14 @@ static const char emac_version_string[] = "TI DaVinci EMAC Linux v6.1"; | |||
| 164 | # define EMAC_MBP_MCASTCHAN(ch) ((ch) & 0x7) | 164 | # define EMAC_MBP_MCASTCHAN(ch) ((ch) & 0x7) |
| 165 | 165 | ||
| 166 | /* EMAC mac_control register */ | 166 | /* EMAC mac_control register */ |
| 167 | #define EMAC_MACCONTROL_TXPTYPE (0x200) | 167 | #define EMAC_MACCONTROL_TXPTYPE BIT(9) |
| 168 | #define EMAC_MACCONTROL_TXPACEEN (0x40) | 168 | #define EMAC_MACCONTROL_TXPACEEN BIT(6) |
| 169 | #define EMAC_MACCONTROL_MIIEN (0x20) | 169 | #define EMAC_MACCONTROL_GMIIEN BIT(5) |
| 170 | #define EMAC_MACCONTROL_GIGABITEN (0x80) | 170 | #define EMAC_MACCONTROL_GIGABITEN BIT(7) |
| 171 | #define EMAC_MACCONTROL_GIGABITEN_SHIFT (7) | 171 | #define EMAC_MACCONTROL_FULLDUPLEXEN BIT(0) |
| 172 | #define EMAC_MACCONTROL_FULLDUPLEXEN (0x1) | ||
| 173 | #define EMAC_MACCONTROL_RMIISPEED_MASK BIT(15) | 172 | #define EMAC_MACCONTROL_RMIISPEED_MASK BIT(15) |
| 174 | 173 | ||
| 175 | /* GIGABIT MODE related bits */ | 174 | /* GIGABIT MODE related bits */ |
| 176 | #define EMAC_DM646X_MACCONTORL_GMIIEN BIT(5) | ||
| 177 | #define EMAC_DM646X_MACCONTORL_GIG BIT(7) | 175 | #define EMAC_DM646X_MACCONTORL_GIG BIT(7) |
| 178 | #define EMAC_DM646X_MACCONTORL_GIGFORCE BIT(17) | 176 | #define EMAC_DM646X_MACCONTORL_GIGFORCE BIT(17) |
| 179 | 177 | ||
| @@ -192,10 +190,10 @@ static const char emac_version_string[] = "TI DaVinci EMAC Linux v6.1"; | |||
| 192 | #define EMAC_RX_BUFFER_OFFSET_MASK (0xFFFF) | 190 | #define EMAC_RX_BUFFER_OFFSET_MASK (0xFFFF) |
| 193 | 191 | ||
| 194 | /* MAC_IN_VECTOR (0x180) register bit fields */ | 192 | /* MAC_IN_VECTOR (0x180) register bit fields */ |
| 195 | #define EMAC_DM644X_MAC_IN_VECTOR_HOST_INT (0x20000) | 193 | #define EMAC_DM644X_MAC_IN_VECTOR_HOST_INT BIT(17) |
| 196 | #define EMAC_DM644X_MAC_IN_VECTOR_STATPEND_INT (0x10000) | 194 | #define EMAC_DM644X_MAC_IN_VECTOR_STATPEND_INT BIT(16) |
| 197 | #define EMAC_DM644X_MAC_IN_VECTOR_RX_INT_VEC (0x0100) | 195 | #define EMAC_DM644X_MAC_IN_VECTOR_RX_INT_VEC BIT(8) |
| 198 | #define EMAC_DM644X_MAC_IN_VECTOR_TX_INT_VEC (0x01) | 196 | #define EMAC_DM644X_MAC_IN_VECTOR_TX_INT_VEC BIT(0) |
| 199 | 197 | ||
| 200 | /** NOTE:: For DM646x the IN_VECTOR has changed */ | 198 | /** NOTE:: For DM646x the IN_VECTOR has changed */ |
| 201 | #define EMAC_DM646X_MAC_IN_VECTOR_RX_INT_VEC BIT(EMAC_DEF_RX_CH) | 199 | #define EMAC_DM646X_MAC_IN_VECTOR_RX_INT_VEC BIT(EMAC_DEF_RX_CH) |
| @@ -203,7 +201,6 @@ static const char emac_version_string[] = "TI DaVinci EMAC Linux v6.1"; | |||
| 203 | #define EMAC_DM646X_MAC_IN_VECTOR_HOST_INT BIT(26) | 201 | #define EMAC_DM646X_MAC_IN_VECTOR_HOST_INT BIT(26) |
| 204 | #define EMAC_DM646X_MAC_IN_VECTOR_STATPEND_INT BIT(27) | 202 | #define EMAC_DM646X_MAC_IN_VECTOR_STATPEND_INT BIT(27) |
| 205 | 203 | ||
| 206 | |||
| 207 | /* CPPI bit positions */ | 204 | /* CPPI bit positions */ |
| 208 | #define EMAC_CPPI_SOP_BIT BIT(31) | 205 | #define EMAC_CPPI_SOP_BIT BIT(31) |
| 209 | #define EMAC_CPPI_EOP_BIT BIT(30) | 206 | #define EMAC_CPPI_EOP_BIT BIT(30) |
| @@ -750,8 +747,7 @@ static void emac_update_phystatus(struct emac_priv *priv) | |||
| 750 | 747 | ||
| 751 | if (priv->speed == SPEED_1000 && (priv->version == EMAC_VERSION_2)) { | 748 | if (priv->speed == SPEED_1000 && (priv->version == EMAC_VERSION_2)) { |
| 752 | mac_control = emac_read(EMAC_MACCONTROL); | 749 | mac_control = emac_read(EMAC_MACCONTROL); |
| 753 | mac_control |= (EMAC_DM646X_MACCONTORL_GMIIEN | | 750 | mac_control |= (EMAC_DM646X_MACCONTORL_GIG | |
| 754 | EMAC_DM646X_MACCONTORL_GIG | | ||
| 755 | EMAC_DM646X_MACCONTORL_GIGFORCE); | 751 | EMAC_DM646X_MACCONTORL_GIGFORCE); |
| 756 | } else { | 752 | } else { |
| 757 | /* Clear the GIG bit and GIGFORCE bit */ | 753 | /* Clear the GIG bit and GIGFORCE bit */ |
| @@ -2108,7 +2104,7 @@ static int emac_hw_enable(struct emac_priv *priv) | |||
| 2108 | 2104 | ||
| 2109 | /* Enable MII */ | 2105 | /* Enable MII */ |
| 2110 | val = emac_read(EMAC_MACCONTROL); | 2106 | val = emac_read(EMAC_MACCONTROL); |
| 2111 | val |= (EMAC_MACCONTROL_MIIEN); | 2107 | val |= (EMAC_MACCONTROL_GMIIEN); |
| 2112 | emac_write(EMAC_MACCONTROL, val); | 2108 | emac_write(EMAC_MACCONTROL, val); |
| 2113 | 2109 | ||
| 2114 | /* Enable NAPI and interrupts */ | 2110 | /* Enable NAPI and interrupts */ |
diff --git a/drivers/net/depca.c b/drivers/net/depca.c index 9686c1fa28f1..7a3bdac84abe 100644 --- a/drivers/net/depca.c +++ b/drivers/net/depca.c | |||
| @@ -237,6 +237,7 @@ | |||
| 237 | 237 | ||
| 238 | #include <linux/module.h> | 238 | #include <linux/module.h> |
| 239 | #include <linux/kernel.h> | 239 | #include <linux/kernel.h> |
| 240 | #include <linux/sched.h> | ||
| 240 | #include <linux/string.h> | 241 | #include <linux/string.h> |
| 241 | #include <linux/errno.h> | 242 | #include <linux/errno.h> |
| 242 | #include <linux/ioport.h> | 243 | #include <linux/ioport.h> |
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index d19b0845970a..3c29a20b751e 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c | |||
| @@ -151,6 +151,7 @@ | |||
| 151 | #include <linux/moduleparam.h> | 151 | #include <linux/moduleparam.h> |
| 152 | #include <linux/kernel.h> | 152 | #include <linux/kernel.h> |
| 153 | #include <linux/types.h> | 153 | #include <linux/types.h> |
| 154 | #include <linux/sched.h> | ||
| 154 | #include <linux/slab.h> | 155 | #include <linux/slab.h> |
| 155 | #include <linux/delay.h> | 156 | #include <linux/delay.h> |
| 156 | #include <linux/init.h> | 157 | #include <linux/init.h> |
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h index 189dfa2d6c76..3e187b0e4203 100644 --- a/drivers/net/e1000e/e1000.h +++ b/drivers/net/e1000e/e1000.h | |||
| @@ -141,6 +141,8 @@ struct e1000_info; | |||
| 141 | #define HV_TNCRS_UPPER PHY_REG(778, 29) /* Transmit with no CRS */ | 141 | #define HV_TNCRS_UPPER PHY_REG(778, 29) /* Transmit with no CRS */ |
| 142 | #define HV_TNCRS_LOWER PHY_REG(778, 30) | 142 | #define HV_TNCRS_LOWER PHY_REG(778, 30) |
| 143 | 143 | ||
| 144 | #define E1000_FCRTV_PCH 0x05F40 /* PCH Flow Control Refresh Timer Value */ | ||
| 145 | |||
| 144 | /* BM PHY Copper Specific Status */ | 146 | /* BM PHY Copper Specific Status */ |
| 145 | #define BM_CS_STATUS 17 | 147 | #define BM_CS_STATUS 17 |
| 146 | #define BM_CS_STATUS_LINK_UP 0x0400 | 148 | #define BM_CS_STATUS_LINK_UP 0x0400 |
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index 1bf4d2a5d34f..e82638ecae88 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c | |||
| @@ -327,10 +327,18 @@ static int e1000_set_pauseparam(struct net_device *netdev, | |||
| 327 | 327 | ||
| 328 | hw->fc.current_mode = hw->fc.requested_mode; | 328 | hw->fc.current_mode = hw->fc.requested_mode; |
| 329 | 329 | ||
| 330 | retval = ((hw->phy.media_type == e1000_media_type_fiber) ? | 330 | if (hw->phy.media_type == e1000_media_type_fiber) { |
| 331 | hw->mac.ops.setup_link(hw) : e1000e_force_mac_fc(hw)); | 331 | retval = hw->mac.ops.setup_link(hw); |
| 332 | /* implicit goto out */ | ||
| 333 | } else { | ||
| 334 | retval = e1000e_force_mac_fc(hw); | ||
| 335 | if (retval) | ||
| 336 | goto out; | ||
| 337 | e1000e_set_fc_watermarks(hw); | ||
| 338 | } | ||
| 332 | } | 339 | } |
| 333 | 340 | ||
| 341 | out: | ||
| 334 | clear_bit(__E1000_RESETTING, &adapter->state); | 342 | clear_bit(__E1000_RESETTING, &adapter->state); |
| 335 | return retval; | 343 | return retval; |
| 336 | } | 344 | } |
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c index 51ddb04ab195..eff3f4783655 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
| @@ -1118,7 +1118,8 @@ static s32 e1000_oem_bits_config_ich8lan(struct e1000_hw *hw, bool d0_state) | |||
| 1118 | oem_reg |= HV_OEM_BITS_LPLU; | 1118 | oem_reg |= HV_OEM_BITS_LPLU; |
| 1119 | } | 1119 | } |
| 1120 | /* Restart auto-neg to activate the bits */ | 1120 | /* Restart auto-neg to activate the bits */ |
| 1121 | oem_reg |= HV_OEM_BITS_RESTART_AN; | 1121 | if (!e1000_check_reset_block(hw)) |
| 1122 | oem_reg |= HV_OEM_BITS_RESTART_AN; | ||
| 1122 | ret_val = hw->phy.ops.write_phy_reg_locked(hw, HV_OEM_BITS, oem_reg); | 1123 | ret_val = hw->phy.ops.write_phy_reg_locked(hw, HV_OEM_BITS, oem_reg); |
| 1123 | 1124 | ||
| 1124 | out: | 1125 | out: |
| @@ -3558,6 +3559,7 @@ struct e1000_info e1000_pch_info = { | |||
| 3558 | | FLAG_HAS_AMT | 3559 | | FLAG_HAS_AMT |
| 3559 | | FLAG_HAS_FLASH | 3560 | | FLAG_HAS_FLASH |
| 3560 | | FLAG_HAS_JUMBO_FRAMES | 3561 | | FLAG_HAS_JUMBO_FRAMES |
| 3562 | | FLAG_DISABLE_FC_PAUSE_TIME /* errata */ | ||
| 3561 | | FLAG_APME_IN_WUC, | 3563 | | FLAG_APME_IN_WUC, |
| 3562 | .pba = 26, | 3564 | .pba = 26, |
| 3563 | .max_hw_frame_size = 4096, | 3565 | .max_hw_frame_size = 4096, |
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 0687c6aa4e46..fad8f9ea0043 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
| @@ -2769,25 +2769,38 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
| 2769 | /* | 2769 | /* |
| 2770 | * flow control settings | 2770 | * flow control settings |
| 2771 | * | 2771 | * |
| 2772 | * The high water mark must be low enough to fit two full frame | 2772 | * The high water mark must be low enough to fit one full frame |
| 2773 | * (or the size used for early receive) above it in the Rx FIFO. | 2773 | * (or the size used for early receive) above it in the Rx FIFO. |
| 2774 | * Set it to the lower of: | 2774 | * Set it to the lower of: |
| 2775 | * - 90% of the Rx FIFO size, and | 2775 | * - 90% of the Rx FIFO size, and |
| 2776 | * - the full Rx FIFO size minus the early receive size (for parts | 2776 | * - the full Rx FIFO size minus the early receive size (for parts |
| 2777 | * with ERT support assuming ERT set to E1000_ERT_2048), or | 2777 | * with ERT support assuming ERT set to E1000_ERT_2048), or |
| 2778 | * - the full Rx FIFO size minus two full frames | 2778 | * - the full Rx FIFO size minus one full frame |
| 2779 | */ | 2779 | */ |
| 2780 | if ((adapter->flags & FLAG_HAS_ERT) && | 2780 | if (hw->mac.type == e1000_pchlan) { |
| 2781 | (adapter->netdev->mtu > ETH_DATA_LEN)) | 2781 | /* |
| 2782 | hwm = min(((pba << 10) * 9 / 10), | 2782 | * Workaround PCH LOM adapter hangs with certain network |
| 2783 | ((pba << 10) - (E1000_ERT_2048 << 3))); | 2783 | * loads. If hangs persist, try disabling Tx flow control. |
| 2784 | else | 2784 | */ |
| 2785 | hwm = min(((pba << 10) * 9 / 10), | 2785 | if (adapter->netdev->mtu > ETH_DATA_LEN) { |
| 2786 | ((pba << 10) - (2 * adapter->max_frame_size))); | 2786 | fc->high_water = 0x3500; |
| 2787 | fc->low_water = 0x1500; | ||
| 2788 | } else { | ||
| 2789 | fc->high_water = 0x5000; | ||
| 2790 | fc->low_water = 0x3000; | ||
| 2791 | } | ||
| 2792 | } else { | ||
| 2793 | if ((adapter->flags & FLAG_HAS_ERT) && | ||
| 2794 | (adapter->netdev->mtu > ETH_DATA_LEN)) | ||
| 2795 | hwm = min(((pba << 10) * 9 / 10), | ||
| 2796 | ((pba << 10) - (E1000_ERT_2048 << 3))); | ||
| 2797 | else | ||
| 2798 | hwm = min(((pba << 10) * 9 / 10), | ||
| 2799 | ((pba << 10) - adapter->max_frame_size)); | ||
| 2787 | 2800 | ||
| 2788 | fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ | 2801 | fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ |
| 2789 | fc->low_water = (fc->high_water - (2 * adapter->max_frame_size)); | 2802 | fc->low_water = fc->high_water - 8; |
| 2790 | fc->low_water &= E1000_FCRTL_RTL; /* 8-byte granularity */ | 2803 | } |
| 2791 | 2804 | ||
| 2792 | if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) | 2805 | if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) |
| 2793 | fc->pause_time = 0xFFFF; | 2806 | fc->pause_time = 0xFFFF; |
| @@ -2813,6 +2826,10 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
| 2813 | if (mac->ops.init_hw(hw)) | 2826 | if (mac->ops.init_hw(hw)) |
| 2814 | e_err("Hardware Error\n"); | 2827 | e_err("Hardware Error\n"); |
| 2815 | 2828 | ||
| 2829 | /* additional part of the flow-control workaround above */ | ||
| 2830 | if (hw->mac.type == e1000_pchlan) | ||
| 2831 | ew32(FCRTV_PCH, 0x1000); | ||
| 2832 | |||
| 2816 | e1000_update_mng_vlan(adapter); | 2833 | e1000_update_mng_vlan(adapter); |
| 2817 | 2834 | ||
| 2818 | /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ | 2835 | /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ |
| @@ -3610,7 +3627,7 @@ static void e1000_watchdog_task(struct work_struct *work) | |||
| 3610 | case SPEED_100: | 3627 | case SPEED_100: |
| 3611 | txb2b = 0; | 3628 | txb2b = 0; |
| 3612 | netdev->tx_queue_len = 100; | 3629 | netdev->tx_queue_len = 100; |
| 3613 | /* maybe add some timeout factor ? */ | 3630 | adapter->tx_timeout_factor = 10; |
| 3614 | break; | 3631 | break; |
| 3615 | } | 3632 | } |
| 3616 | 3633 | ||
| @@ -4288,8 +4305,10 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu) | |||
| 4288 | 4305 | ||
| 4289 | while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) | 4306 | while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) |
| 4290 | msleep(1); | 4307 | msleep(1); |
| 4291 | /* e1000e_down has a dependency on max_frame_size */ | 4308 | /* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */ |
| 4292 | adapter->max_frame_size = max_frame; | 4309 | adapter->max_frame_size = max_frame; |
| 4310 | e_info("changing MTU from %d to %d\n", netdev->mtu, new_mtu); | ||
| 4311 | netdev->mtu = new_mtu; | ||
| 4293 | if (netif_running(netdev)) | 4312 | if (netif_running(netdev)) |
| 4294 | e1000e_down(adapter); | 4313 | e1000e_down(adapter); |
| 4295 | 4314 | ||
| @@ -4319,9 +4338,6 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu) | |||
| 4319 | adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN | 4338 | adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN |
| 4320 | + ETH_FCS_LEN; | 4339 | + ETH_FCS_LEN; |
| 4321 | 4340 | ||
| 4322 | e_info("changing MTU from %d to %d\n", netdev->mtu, new_mtu); | ||
| 4323 | netdev->mtu = new_mtu; | ||
| 4324 | |||
| 4325 | if (netif_running(netdev)) | 4341 | if (netif_running(netdev)) |
| 4326 | e1000e_up(adapter); | 4342 | e1000e_up(adapter); |
| 4327 | else | 4343 | else |
diff --git a/drivers/net/e1000e/phy.c b/drivers/net/e1000e/phy.c index 03175b3a2c9e..85f955f70417 100644 --- a/drivers/net/e1000e/phy.c +++ b/drivers/net/e1000e/phy.c | |||
| @@ -71,7 +71,6 @@ static const u16 e1000_igp_2_cable_length_table[] = | |||
| 71 | #define I82577_CFG_ASSERT_CRS_ON_TX (1 << 15) | 71 | #define I82577_CFG_ASSERT_CRS_ON_TX (1 << 15) |
| 72 | #define I82577_CFG_ENABLE_DOWNSHIFT (3 << 10) /* auto downshift 100/10 */ | 72 | #define I82577_CFG_ENABLE_DOWNSHIFT (3 << 10) /* auto downshift 100/10 */ |
| 73 | #define I82577_CTRL_REG 23 | 73 | #define I82577_CTRL_REG 23 |
| 74 | #define I82577_CTRL_DOWNSHIFT_MASK (7 << 10) | ||
| 75 | 74 | ||
| 76 | /* 82577 specific PHY registers */ | 75 | /* 82577 specific PHY registers */ |
| 77 | #define I82577_PHY_CTRL_2 18 | 76 | #define I82577_PHY_CTRL_2 18 |
| @@ -660,15 +659,6 @@ s32 e1000_copper_link_setup_82577(struct e1000_hw *hw) | |||
| 660 | phy_data |= I82577_CFG_ENABLE_DOWNSHIFT; | 659 | phy_data |= I82577_CFG_ENABLE_DOWNSHIFT; |
| 661 | 660 | ||
| 662 | ret_val = phy->ops.write_phy_reg(hw, I82577_CFG_REG, phy_data); | 661 | ret_val = phy->ops.write_phy_reg(hw, I82577_CFG_REG, phy_data); |
| 663 | if (ret_val) | ||
| 664 | goto out; | ||
| 665 | |||
| 666 | /* Set number of link attempts before downshift */ | ||
| 667 | ret_val = phy->ops.read_phy_reg(hw, I82577_CTRL_REG, &phy_data); | ||
| 668 | if (ret_val) | ||
| 669 | goto out; | ||
| 670 | phy_data &= ~I82577_CTRL_DOWNSHIFT_MASK; | ||
| 671 | ret_val = phy->ops.write_phy_reg(hw, I82577_CTRL_REG, phy_data); | ||
| 672 | 662 | ||
| 673 | out: | 663 | out: |
| 674 | return ret_val; | 664 | return ret_val; |
| @@ -2658,19 +2648,18 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, | |||
| 2658 | page = 0; | 2648 | page = 0; |
| 2659 | 2649 | ||
| 2660 | if (reg > MAX_PHY_MULTI_PAGE_REG) { | 2650 | if (reg > MAX_PHY_MULTI_PAGE_REG) { |
| 2661 | if ((hw->phy.type != e1000_phy_82578) || | 2651 | u32 phy_addr = hw->phy.addr; |
| 2662 | ((reg != I82578_ADDR_REG) && | ||
| 2663 | (reg != I82578_ADDR_REG + 1))) { | ||
| 2664 | u32 phy_addr = hw->phy.addr; | ||
| 2665 | 2652 | ||
| 2666 | hw->phy.addr = 1; | 2653 | hw->phy.addr = 1; |
| 2667 | 2654 | ||
| 2668 | /* Page is shifted left, PHY expects (page x 32) */ | 2655 | /* Page is shifted left, PHY expects (page x 32) */ |
| 2669 | ret_val = e1000e_write_phy_reg_mdic(hw, | 2656 | ret_val = e1000e_write_phy_reg_mdic(hw, |
| 2670 | IGP01E1000_PHY_PAGE_SELECT, | 2657 | IGP01E1000_PHY_PAGE_SELECT, |
| 2671 | (page << IGP_PAGE_SHIFT)); | 2658 | (page << IGP_PAGE_SHIFT)); |
| 2672 | hw->phy.addr = phy_addr; | 2659 | hw->phy.addr = phy_addr; |
| 2673 | } | 2660 | |
| 2661 | if (ret_val) | ||
| 2662 | goto out; | ||
| 2674 | } | 2663 | } |
| 2675 | 2664 | ||
| 2676 | ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, | 2665 | ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, |
| @@ -2678,7 +2667,7 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, | |||
| 2678 | out: | 2667 | out: |
| 2679 | /* Revert to MDIO fast mode, if applicable */ | 2668 | /* Revert to MDIO fast mode, if applicable */ |
| 2680 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) | 2669 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) |
| 2681 | ret_val = e1000_set_mdio_slow_mode_hv(hw, false); | 2670 | ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); |
| 2682 | 2671 | ||
| 2683 | if (!locked) | 2672 | if (!locked) |
| 2684 | hw->phy.ops.release_phy(hw); | 2673 | hw->phy.ops.release_phy(hw); |
| @@ -2784,19 +2773,18 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, | |||
| 2784 | } | 2773 | } |
| 2785 | 2774 | ||
| 2786 | if (reg > MAX_PHY_MULTI_PAGE_REG) { | 2775 | if (reg > MAX_PHY_MULTI_PAGE_REG) { |
| 2787 | if ((hw->phy.type != e1000_phy_82578) || | 2776 | u32 phy_addr = hw->phy.addr; |
| 2788 | ((reg != I82578_ADDR_REG) && | ||
| 2789 | (reg != I82578_ADDR_REG + 1))) { | ||
| 2790 | u32 phy_addr = hw->phy.addr; | ||
| 2791 | 2777 | ||
| 2792 | hw->phy.addr = 1; | 2778 | hw->phy.addr = 1; |
| 2793 | 2779 | ||
| 2794 | /* Page is shifted left, PHY expects (page x 32) */ | 2780 | /* Page is shifted left, PHY expects (page x 32) */ |
| 2795 | ret_val = e1000e_write_phy_reg_mdic(hw, | 2781 | ret_val = e1000e_write_phy_reg_mdic(hw, |
| 2796 | IGP01E1000_PHY_PAGE_SELECT, | 2782 | IGP01E1000_PHY_PAGE_SELECT, |
| 2797 | (page << IGP_PAGE_SHIFT)); | 2783 | (page << IGP_PAGE_SHIFT)); |
| 2798 | hw->phy.addr = phy_addr; | 2784 | hw->phy.addr = phy_addr; |
| 2799 | } | 2785 | |
| 2786 | if (ret_val) | ||
| 2787 | goto out; | ||
| 2800 | } | 2788 | } |
| 2801 | 2789 | ||
| 2802 | ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, | 2790 | ret_val = e1000e_write_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, |
| @@ -2805,7 +2793,7 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, | |||
| 2805 | out: | 2793 | out: |
| 2806 | /* Revert to MDIO fast mode, if applicable */ | 2794 | /* Revert to MDIO fast mode, if applicable */ |
| 2807 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) | 2795 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) |
| 2808 | ret_val = e1000_set_mdio_slow_mode_hv(hw, false); | 2796 | ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); |
| 2809 | 2797 | ||
| 2810 | if (!locked) | 2798 | if (!locked) |
| 2811 | hw->phy.ops.release_phy(hw); | 2799 | hw->phy.ops.release_phy(hw); |
diff --git a/drivers/net/eql.c b/drivers/net/eql.c index d4d9a3eda695..f5b96cadeb25 100644 --- a/drivers/net/eql.c +++ b/drivers/net/eql.c | |||
| @@ -111,6 +111,7 @@ | |||
| 111 | * Sorry, I had to rewrite most of this for 2.5.x -DaveM | 111 | * Sorry, I had to rewrite most of this for 2.5.x -DaveM |
| 112 | */ | 112 | */ |
| 113 | 113 | ||
| 114 | #include <linux/capability.h> | ||
| 114 | #include <linux/module.h> | 115 | #include <linux/module.h> |
| 115 | #include <linux/kernel.h> | 116 | #include <linux/kernel.h> |
| 116 | #include <linux/init.h> | 117 | #include <linux/init.h> |
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c index 590473afb3dc..f7d9ac8324cb 100644 --- a/drivers/net/ethoc.c +++ b/drivers/net/ethoc.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/mii.h> | 17 | #include <linux/mii.h> |
| 18 | #include <linux/phy.h> | 18 | #include <linux/phy.h> |
| 19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
| 20 | #include <linux/sched.h> | ||
| 20 | #include <net/ethoc.h> | 21 | #include <net/ethoc.h> |
| 21 | 22 | ||
| 22 | static int buffer_size = 0x8000; /* 32 KBytes */ | 23 | static int buffer_size = 0x8000; /* 32 KBytes */ |
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c index b2a5ec8f3721..dd4ba01fd92d 100644 --- a/drivers/net/ewrk3.c +++ b/drivers/net/ewrk3.c | |||
| @@ -145,6 +145,7 @@ | |||
| 145 | 145 | ||
| 146 | #include <linux/module.h> | 146 | #include <linux/module.h> |
| 147 | #include <linux/kernel.h> | 147 | #include <linux/kernel.h> |
| 148 | #include <linux/sched.h> | ||
| 148 | #include <linux/string.h> | 149 | #include <linux/string.h> |
| 149 | #include <linux/errno.h> | 150 | #include <linux/errno.h> |
| 150 | #include <linux/ioport.h> | 151 | #include <linux/ioport.h> |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 73fe97777201..3116601dbfea 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | #include <linux/netdevice.h> | 49 | #include <linux/netdevice.h> |
| 50 | #include <linux/etherdevice.h> | 50 | #include <linux/etherdevice.h> |
| 51 | #include <linux/delay.h> | 51 | #include <linux/delay.h> |
| 52 | #include <linux/sched.h> | ||
| 52 | #include <linux/spinlock.h> | 53 | #include <linux/spinlock.h> |
| 53 | #include <linux/ethtool.h> | 54 | #include <linux/ethtool.h> |
| 54 | #include <linux/timer.h> | 55 | #include <linux/timer.h> |
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c index 1d5064a09aca..f7519a594945 100644 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c | |||
| @@ -145,6 +145,7 @@ static int tx_params[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1}; | |||
| 145 | /* Time in jiffies before concluding the transmitter is hung. */ | 145 | /* Time in jiffies before concluding the transmitter is hung. */ |
| 146 | #define TX_TIMEOUT (5*HZ) | 146 | #define TX_TIMEOUT (5*HZ) |
| 147 | 147 | ||
| 148 | #include <linux/capability.h> | ||
| 148 | #include <linux/module.h> | 149 | #include <linux/module.h> |
| 149 | #include <linux/kernel.h> | 150 | #include <linux/kernel.h> |
| 150 | #include <linux/string.h> | 151 | #include <linux/string.h> |
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c index 7bcaf7c66243..e344c84c0ef9 100644 --- a/drivers/net/hamradio/baycom_epp.c +++ b/drivers/net/hamradio/baycom_epp.c | |||
| @@ -44,6 +44,7 @@ | |||
| 44 | #include <linux/module.h> | 44 | #include <linux/module.h> |
| 45 | #include <linux/kernel.h> | 45 | #include <linux/kernel.h> |
| 46 | #include <linux/init.h> | 46 | #include <linux/init.h> |
| 47 | #include <linux/sched.h> | ||
| 47 | #include <linux/string.h> | 48 | #include <linux/string.h> |
| 48 | #include <linux/workqueue.h> | 49 | #include <linux/workqueue.h> |
| 49 | #include <linux/fs.h> | 50 | #include <linux/fs.h> |
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c index aa4488e871b2..ed60fd664273 100644 --- a/drivers/net/hamradio/baycom_ser_fdx.c +++ b/drivers/net/hamradio/baycom_ser_fdx.c | |||
| @@ -71,6 +71,7 @@ | |||
| 71 | 71 | ||
| 72 | /*****************************************************************************/ | 72 | /*****************************************************************************/ |
| 73 | 73 | ||
| 74 | #include <linux/capability.h> | ||
| 74 | #include <linux/module.h> | 75 | #include <linux/module.h> |
| 75 | #include <linux/ioport.h> | 76 | #include <linux/ioport.h> |
| 76 | #include <linux/string.h> | 77 | #include <linux/string.h> |
diff --git a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c index 88c593596020..1686f6dcbbce 100644 --- a/drivers/net/hamradio/baycom_ser_hdx.c +++ b/drivers/net/hamradio/baycom_ser_hdx.c | |||
| @@ -61,6 +61,7 @@ | |||
| 61 | 61 | ||
| 62 | /*****************************************************************************/ | 62 | /*****************************************************************************/ |
| 63 | 63 | ||
| 64 | #include <linux/capability.h> | ||
| 64 | #include <linux/module.h> | 65 | #include <linux/module.h> |
| 65 | #include <linux/ioport.h> | 66 | #include <linux/ioport.h> |
| 66 | #include <linux/string.h> | 67 | #include <linux/string.h> |
diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c index 0013c409782c..91c5790c9581 100644 --- a/drivers/net/hamradio/hdlcdrv.c +++ b/drivers/net/hamradio/hdlcdrv.c | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | 42 | ||
| 43 | /*****************************************************************************/ | 43 | /*****************************************************************************/ |
| 44 | 44 | ||
| 45 | #include <linux/capability.h> | ||
| 45 | #include <linux/module.h> | 46 | #include <linux/module.h> |
| 46 | #include <linux/types.h> | 47 | #include <linux/types.h> |
| 47 | #include <linux/net.h> | 48 | #include <linux/net.h> |
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c index a9a1a99f02dd..dd8665138062 100644 --- a/drivers/net/hp100.c +++ b/drivers/net/hp100.c | |||
| @@ -98,6 +98,7 @@ | |||
| 98 | 98 | ||
| 99 | #include <linux/module.h> | 99 | #include <linux/module.h> |
| 100 | #include <linux/kernel.h> | 100 | #include <linux/kernel.h> |
| 101 | #include <linux/sched.h> | ||
| 101 | #include <linux/string.h> | 102 | #include <linux/string.h> |
| 102 | #include <linux/errno.h> | 103 | #include <linux/errno.h> |
| 103 | #include <linux/ioport.h> | 104 | #include <linux/ioport.h> |
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c index aab3d971af51..b243ed3b0c36 100644 --- a/drivers/net/igb/igb_ethtool.c +++ b/drivers/net/igb/igb_ethtool.c | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | #include <linux/interrupt.h> | 34 | #include <linux/interrupt.h> |
| 35 | #include <linux/if_ether.h> | 35 | #include <linux/if_ether.h> |
| 36 | #include <linux/ethtool.h> | 36 | #include <linux/ethtool.h> |
| 37 | #include <linux/sched.h> | ||
| 37 | 38 | ||
| 38 | #include "igb.h" | 39 | #include "igb.h" |
| 39 | 40 | ||
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c index 2fc30b449eea..cb90d640007a 100644 --- a/drivers/net/irda/kingsun-sir.c +++ b/drivers/net/irda/kingsun-sir.c | |||
| @@ -66,7 +66,6 @@ | |||
| 66 | #include <linux/errno.h> | 66 | #include <linux/errno.h> |
| 67 | #include <linux/init.h> | 67 | #include <linux/init.h> |
| 68 | #include <linux/slab.h> | 68 | #include <linux/slab.h> |
| 69 | #include <linux/kref.h> | ||
| 70 | #include <linux/usb.h> | 69 | #include <linux/usb.h> |
| 71 | #include <linux/device.h> | 70 | #include <linux/device.h> |
| 72 | #include <linux/crc32.h> | 71 | #include <linux/crc32.h> |
diff --git a/drivers/net/irda/ks959-sir.c b/drivers/net/irda/ks959-sir.c index f4d13fc51cbc..b54d3b48045e 100644 --- a/drivers/net/irda/ks959-sir.c +++ b/drivers/net/irda/ks959-sir.c | |||
| @@ -118,7 +118,6 @@ | |||
| 118 | #include <linux/errno.h> | 118 | #include <linux/errno.h> |
| 119 | #include <linux/init.h> | 119 | #include <linux/init.h> |
| 120 | #include <linux/slab.h> | 120 | #include <linux/slab.h> |
| 121 | #include <linux/kref.h> | ||
| 122 | #include <linux/usb.h> | 121 | #include <linux/usb.h> |
| 123 | #include <linux/device.h> | 122 | #include <linux/device.h> |
| 124 | #include <linux/crc32.h> | 123 | #include <linux/crc32.h> |
diff --git a/drivers/net/irda/ksdazzle-sir.c b/drivers/net/irda/ksdazzle-sir.c index 5f9d73353972..8d713ebac15b 100644 --- a/drivers/net/irda/ksdazzle-sir.c +++ b/drivers/net/irda/ksdazzle-sir.c | |||
| @@ -82,7 +82,6 @@ | |||
| 82 | #include <linux/errno.h> | 82 | #include <linux/errno.h> |
| 83 | #include <linux/init.h> | 83 | #include <linux/init.h> |
| 84 | #include <linux/slab.h> | 84 | #include <linux/slab.h> |
| 85 | #include <linux/kref.h> | ||
| 86 | #include <linux/usb.h> | 85 | #include <linux/usb.h> |
| 87 | #include <linux/device.h> | 86 | #include <linux/device.h> |
| 88 | #include <linux/crc32.h> | 87 | #include <linux/crc32.h> |
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c index b3d30bcb88e7..c0e0bb9401d3 100644 --- a/drivers/net/irda/mcs7780.c +++ b/drivers/net/irda/mcs7780.c | |||
| @@ -50,7 +50,6 @@ | |||
| 50 | #include <linux/errno.h> | 50 | #include <linux/errno.h> |
| 51 | #include <linux/init.h> | 51 | #include <linux/init.h> |
| 52 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
| 53 | #include <linux/kref.h> | ||
| 54 | #include <linux/usb.h> | 53 | #include <linux/usb.h> |
| 55 | #include <linux/device.h> | 54 | #include <linux/device.h> |
| 56 | #include <linux/crc32.h> | 55 | #include <linux/crc32.h> |
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c index 1445e5865196..84db145d2b59 100644 --- a/drivers/net/irda/pxaficp_ir.c +++ b/drivers/net/irda/pxaficp_ir.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/etherdevice.h> | 17 | #include <linux/etherdevice.h> |
| 18 | #include <linux/platform_device.h> | 18 | #include <linux/platform_device.h> |
| 19 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
| 20 | #include <linux/gpio.h> | ||
| 20 | 21 | ||
| 21 | #include <net/irda/irda.h> | 22 | #include <net/irda/irda.h> |
| 22 | #include <net/irda/irmod.h> | 23 | #include <net/irda/irmod.h> |
| @@ -163,6 +164,22 @@ inline static void pxa_irda_fir_dma_tx_start(struct pxa_irda *si) | |||
| 163 | } | 164 | } |
| 164 | 165 | ||
| 165 | /* | 166 | /* |
| 167 | * Set the IrDA communications mode. | ||
| 168 | */ | ||
| 169 | static void pxa_irda_set_mode(struct pxa_irda *si, int mode) | ||
| 170 | { | ||
| 171 | if (si->pdata->transceiver_mode) | ||
| 172 | si->pdata->transceiver_mode(si->dev, mode); | ||
| 173 | else { | ||
| 174 | if (gpio_is_valid(si->pdata->gpio_pwdown)) | ||
| 175 | gpio_set_value(si->pdata->gpio_pwdown, | ||
| 176 | !(mode & IR_OFF) ^ | ||
| 177 | !si->pdata->gpio_pwdown_inverted); | ||
| 178 | pxa2xx_transceiver_mode(si->dev, mode); | ||
| 179 | } | ||
| 180 | } | ||
| 181 | |||
| 182 | /* | ||
| 166 | * Set the IrDA communications speed. | 183 | * Set the IrDA communications speed. |
| 167 | */ | 184 | */ |
| 168 | static int pxa_irda_set_speed(struct pxa_irda *si, int speed) | 185 | static int pxa_irda_set_speed(struct pxa_irda *si, int speed) |
| @@ -188,7 +205,7 @@ static int pxa_irda_set_speed(struct pxa_irda *si, int speed) | |||
| 188 | pxa_irda_disable_clk(si); | 205 | pxa_irda_disable_clk(si); |
| 189 | 206 | ||
| 190 | /* set board transceiver to SIR mode */ | 207 | /* set board transceiver to SIR mode */ |
| 191 | si->pdata->transceiver_mode(si->dev, IR_SIRMODE); | 208 | pxa_irda_set_mode(si, IR_SIRMODE); |
| 192 | 209 | ||
| 193 | /* enable the STUART clock */ | 210 | /* enable the STUART clock */ |
| 194 | pxa_irda_enable_sirclk(si); | 211 | pxa_irda_enable_sirclk(si); |
| @@ -222,7 +239,7 @@ static int pxa_irda_set_speed(struct pxa_irda *si, int speed) | |||
| 222 | ICCR0 = 0; | 239 | ICCR0 = 0; |
| 223 | 240 | ||
| 224 | /* set board transceiver to FIR mode */ | 241 | /* set board transceiver to FIR mode */ |
| 225 | si->pdata->transceiver_mode(si->dev, IR_FIRMODE); | 242 | pxa_irda_set_mode(si, IR_FIRMODE); |
| 226 | 243 | ||
| 227 | /* enable the FICP clock */ | 244 | /* enable the FICP clock */ |
| 228 | pxa_irda_enable_firclk(si); | 245 | pxa_irda_enable_firclk(si); |
| @@ -641,7 +658,7 @@ static void pxa_irda_shutdown(struct pxa_irda *si) | |||
| 641 | local_irq_restore(flags); | 658 | local_irq_restore(flags); |
| 642 | 659 | ||
| 643 | /* power off board transceiver */ | 660 | /* power off board transceiver */ |
| 644 | si->pdata->transceiver_mode(si->dev, IR_OFF); | 661 | pxa_irda_set_mode(si, IR_OFF); |
| 645 | 662 | ||
| 646 | printk(KERN_DEBUG "pxa_ir: irda shutdown\n"); | 663 | printk(KERN_DEBUG "pxa_ir: irda shutdown\n"); |
| 647 | } | 664 | } |
| @@ -849,10 +866,26 @@ static int pxa_irda_probe(struct platform_device *pdev) | |||
| 849 | if (err) | 866 | if (err) |
| 850 | goto err_mem_5; | 867 | goto err_mem_5; |
| 851 | 868 | ||
| 852 | if (si->pdata->startup) | 869 | if (gpio_is_valid(si->pdata->gpio_pwdown)) { |
| 870 | err = gpio_request(si->pdata->gpio_pwdown, "IrDA switch"); | ||
| 871 | if (err) | ||
| 872 | goto err_startup; | ||
| 873 | err = gpio_direction_output(si->pdata->gpio_pwdown, | ||
| 874 | !si->pdata->gpio_pwdown_inverted); | ||
| 875 | if (err) { | ||
| 876 | gpio_free(si->pdata->gpio_pwdown); | ||
| 877 | goto err_startup; | ||
| 878 | } | ||
| 879 | } | ||
| 880 | |||
| 881 | if (si->pdata->startup) { | ||
| 853 | err = si->pdata->startup(si->dev); | 882 | err = si->pdata->startup(si->dev); |
| 854 | if (err) | 883 | if (err) |
| 855 | goto err_startup; | 884 | goto err_startup; |
| 885 | } | ||
| 886 | |||
| 887 | if (gpio_is_valid(si->pdata->gpio_pwdown) && si->pdata->startup) | ||
| 888 | dev_warn(si->dev, "gpio_pwdown and startup() both defined!\n"); | ||
| 856 | 889 | ||
| 857 | dev->netdev_ops = &pxa_irda_netdev_ops; | 890 | dev->netdev_ops = &pxa_irda_netdev_ops; |
| 858 | 891 | ||
| @@ -903,6 +936,8 @@ static int pxa_irda_remove(struct platform_device *_dev) | |||
| 903 | if (dev) { | 936 | if (dev) { |
| 904 | struct pxa_irda *si = netdev_priv(dev); | 937 | struct pxa_irda *si = netdev_priv(dev); |
| 905 | unregister_netdev(dev); | 938 | unregister_netdev(dev); |
| 939 | if (gpio_is_valid(si->pdata->gpio_pwdown)) | ||
| 940 | gpio_free(si->pdata->gpio_pwdown); | ||
| 906 | if (si->pdata->shutdown) | 941 | if (si->pdata->shutdown) |
| 907 | si->pdata->shutdown(si->dev); | 942 | si->pdata->shutdown(si->dev); |
| 908 | kfree(si->tx_buff.head); | 943 | kfree(si->tx_buff.head); |
diff --git a/drivers/net/irda/toim3232-sir.c b/drivers/net/irda/toim3232-sir.c index fcf287b749db..99e1ec02a011 100644 --- a/drivers/net/irda/toim3232-sir.c +++ b/drivers/net/irda/toim3232-sir.c | |||
| @@ -120,6 +120,7 @@ | |||
| 120 | #include <linux/module.h> | 120 | #include <linux/module.h> |
| 121 | #include <linux/delay.h> | 121 | #include <linux/delay.h> |
| 122 | #include <linux/init.h> | 122 | #include <linux/init.h> |
| 123 | #include <linux/sched.h> | ||
| 123 | 124 | ||
| 124 | #include <net/irda/irda.h> | 125 | #include <net/irda/irda.h> |
| 125 | 126 | ||
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index a5036f7c1923..a456578b8578 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
| @@ -240,11 +240,11 @@ static void ixgbe_unmap_and_free_tx_resource(struct ixgbe_adapter *adapter, | |||
| 240 | static inline bool ixgbe_tx_is_paused(struct ixgbe_adapter *adapter, | 240 | static inline bool ixgbe_tx_is_paused(struct ixgbe_adapter *adapter, |
| 241 | struct ixgbe_ring *tx_ring) | 241 | struct ixgbe_ring *tx_ring) |
| 242 | { | 242 | { |
| 243 | int tc; | ||
| 244 | u32 txoff = IXGBE_TFCS_TXOFF; | 243 | u32 txoff = IXGBE_TFCS_TXOFF; |
| 245 | 244 | ||
| 246 | #ifdef CONFIG_IXGBE_DCB | 245 | #ifdef CONFIG_IXGBE_DCB |
| 247 | if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { | 246 | if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) { |
| 247 | int tc; | ||
| 248 | int reg_idx = tx_ring->reg_idx; | 248 | int reg_idx = tx_ring->reg_idx; |
| 249 | int dcb_i = adapter->ring_feature[RING_F_DCB].indices; | 249 | int dcb_i = adapter->ring_feature[RING_F_DCB].indices; |
| 250 | 250 | ||
diff --git a/drivers/net/ks8851_mll.c b/drivers/net/ks8851_mll.c index 0be14d702beb..c146304d8d6c 100644 --- a/drivers/net/ks8851_mll.c +++ b/drivers/net/ks8851_mll.c | |||
| @@ -568,6 +568,16 @@ static inline void ks_outblk(struct ks_net *ks, u16 *wptr, u32 len) | |||
| 568 | iowrite16(*wptr++, ks->hw_addr); | 568 | iowrite16(*wptr++, ks->hw_addr); |
| 569 | } | 569 | } |
| 570 | 570 | ||
| 571 | static void ks_disable_int(struct ks_net *ks) | ||
| 572 | { | ||
| 573 | ks_wrreg16(ks, KS_IER, 0x0000); | ||
| 574 | } /* ks_disable_int */ | ||
| 575 | |||
| 576 | static void ks_enable_int(struct ks_net *ks) | ||
| 577 | { | ||
| 578 | ks_wrreg16(ks, KS_IER, ks->rc_ier); | ||
| 579 | } /* ks_enable_int */ | ||
| 580 | |||
| 571 | /** | 581 | /** |
| 572 | * ks_tx_fifo_space - return the available hardware buffer size. | 582 | * ks_tx_fifo_space - return the available hardware buffer size. |
| 573 | * @ks: The chip information | 583 | * @ks: The chip information |
| @@ -681,6 +691,47 @@ static void ks_soft_reset(struct ks_net *ks, unsigned op) | |||
| 681 | } | 691 | } |
| 682 | 692 | ||
| 683 | 693 | ||
| 694 | void ks_enable_qmu(struct ks_net *ks) | ||
| 695 | { | ||
| 696 | u16 w; | ||
| 697 | |||
| 698 | w = ks_rdreg16(ks, KS_TXCR); | ||
| 699 | /* Enables QMU Transmit (TXCR). */ | ||
| 700 | ks_wrreg16(ks, KS_TXCR, w | TXCR_TXE); | ||
| 701 | |||
| 702 | /* | ||
| 703 | * RX Frame Count Threshold Enable and Auto-Dequeue RXQ Frame | ||
| 704 | * Enable | ||
| 705 | */ | ||
| 706 | |||
| 707 | w = ks_rdreg16(ks, KS_RXQCR); | ||
| 708 | ks_wrreg16(ks, KS_RXQCR, w | RXQCR_RXFCTE); | ||
| 709 | |||
| 710 | /* Enables QMU Receive (RXCR1). */ | ||
| 711 | w = ks_rdreg16(ks, KS_RXCR1); | ||
| 712 | ks_wrreg16(ks, KS_RXCR1, w | RXCR1_RXE); | ||
| 713 | ks->enabled = true; | ||
| 714 | } /* ks_enable_qmu */ | ||
| 715 | |||
| 716 | static void ks_disable_qmu(struct ks_net *ks) | ||
| 717 | { | ||
| 718 | u16 w; | ||
| 719 | |||
| 720 | w = ks_rdreg16(ks, KS_TXCR); | ||
| 721 | |||
| 722 | /* Disables QMU Transmit (TXCR). */ | ||
| 723 | w &= ~TXCR_TXE; | ||
| 724 | ks_wrreg16(ks, KS_TXCR, w); | ||
| 725 | |||
| 726 | /* Disables QMU Receive (RXCR1). */ | ||
| 727 | w = ks_rdreg16(ks, KS_RXCR1); | ||
| 728 | w &= ~RXCR1_RXE ; | ||
| 729 | ks_wrreg16(ks, KS_RXCR1, w); | ||
| 730 | |||
| 731 | ks->enabled = false; | ||
| 732 | |||
| 733 | } /* ks_disable_qmu */ | ||
| 734 | |||
| 684 | /** | 735 | /** |
| 685 | * ks_read_qmu - read 1 pkt data from the QMU. | 736 | * ks_read_qmu - read 1 pkt data from the QMU. |
| 686 | * @ks: The chip information | 737 | * @ks: The chip information |
| @@ -752,7 +803,7 @@ static void ks_rcv(struct ks_net *ks, struct net_device *netdev) | |||
| 752 | (frame_hdr->len < RX_BUF_SIZE) && frame_hdr->len)) { | 803 | (frame_hdr->len < RX_BUF_SIZE) && frame_hdr->len)) { |
| 753 | skb_reserve(skb, 2); | 804 | skb_reserve(skb, 2); |
| 754 | /* read data block including CRC 4 bytes */ | 805 | /* read data block including CRC 4 bytes */ |
| 755 | ks_read_qmu(ks, (u16 *)skb->data, frame_hdr->len + 4); | 806 | ks_read_qmu(ks, (u16 *)skb->data, frame_hdr->len); |
| 756 | skb_put(skb, frame_hdr->len); | 807 | skb_put(skb, frame_hdr->len); |
| 757 | skb->dev = netdev; | 808 | skb->dev = netdev; |
| 758 | skb->protocol = eth_type_trans(skb, netdev); | 809 | skb->protocol = eth_type_trans(skb, netdev); |
| @@ -861,7 +912,7 @@ static int ks_net_open(struct net_device *netdev) | |||
| 861 | ks_dbg(ks, "%s - entry\n", __func__); | 912 | ks_dbg(ks, "%s - entry\n", __func__); |
| 862 | 913 | ||
| 863 | /* reset the HW */ | 914 | /* reset the HW */ |
| 864 | err = request_irq(ks->irq, ks_irq, KS_INT_FLAGS, DRV_NAME, ks); | 915 | err = request_irq(ks->irq, ks_irq, KS_INT_FLAGS, DRV_NAME, netdev); |
| 865 | 916 | ||
| 866 | if (err) { | 917 | if (err) { |
| 867 | printk(KERN_ERR "Failed to request IRQ: %d: %d\n", | 918 | printk(KERN_ERR "Failed to request IRQ: %d: %d\n", |
| @@ -869,6 +920,15 @@ static int ks_net_open(struct net_device *netdev) | |||
| 869 | return err; | 920 | return err; |
| 870 | } | 921 | } |
| 871 | 922 | ||
| 923 | /* wake up powermode to normal mode */ | ||
| 924 | ks_set_powermode(ks, PMECR_PM_NORMAL); | ||
| 925 | mdelay(1); /* wait for normal mode to take effect */ | ||
| 926 | |||
| 927 | ks_wrreg16(ks, KS_ISR, 0xffff); | ||
| 928 | ks_enable_int(ks); | ||
| 929 | ks_enable_qmu(ks); | ||
| 930 | netif_start_queue(ks->netdev); | ||
| 931 | |||
| 872 | if (netif_msg_ifup(ks)) | 932 | if (netif_msg_ifup(ks)) |
| 873 | ks_dbg(ks, "network device %s up\n", netdev->name); | 933 | ks_dbg(ks, "network device %s up\n", netdev->name); |
| 874 | 934 | ||
| @@ -892,19 +952,14 @@ static int ks_net_stop(struct net_device *netdev) | |||
| 892 | 952 | ||
| 893 | netif_stop_queue(netdev); | 953 | netif_stop_queue(netdev); |
| 894 | 954 | ||
| 895 | kfree(ks->frame_head_info); | ||
| 896 | |||
| 897 | mutex_lock(&ks->lock); | 955 | mutex_lock(&ks->lock); |
| 898 | 956 | ||
| 899 | /* turn off the IRQs and ack any outstanding */ | 957 | /* turn off the IRQs and ack any outstanding */ |
| 900 | ks_wrreg16(ks, KS_IER, 0x0000); | 958 | ks_wrreg16(ks, KS_IER, 0x0000); |
| 901 | ks_wrreg16(ks, KS_ISR, 0xffff); | 959 | ks_wrreg16(ks, KS_ISR, 0xffff); |
| 902 | 960 | ||
| 903 | /* shutdown RX process */ | 961 | /* shutdown RX/TX QMU */ |
| 904 | ks_wrreg16(ks, KS_RXCR1, 0x0000); | 962 | ks_disable_qmu(ks); |
| 905 | |||
| 906 | /* shutdown TX process */ | ||
| 907 | ks_wrreg16(ks, KS_TXCR, 0x0000); | ||
| 908 | 963 | ||
| 909 | /* set powermode to soft power down to save power */ | 964 | /* set powermode to soft power down to save power */ |
| 910 | ks_set_powermode(ks, PMECR_PM_SOFTDOWN); | 965 | ks_set_powermode(ks, PMECR_PM_SOFTDOWN); |
| @@ -929,17 +984,8 @@ static int ks_net_stop(struct net_device *netdev) | |||
| 929 | */ | 984 | */ |
| 930 | static void ks_write_qmu(struct ks_net *ks, u8 *pdata, u16 len) | 985 | static void ks_write_qmu(struct ks_net *ks, u8 *pdata, u16 len) |
| 931 | { | 986 | { |
| 932 | unsigned fid = ks->fid; | ||
| 933 | |||
| 934 | fid = ks->fid; | ||
| 935 | ks->fid = (ks->fid + 1) & TXFR_TXFID_MASK; | ||
| 936 | |||
| 937 | /* reduce the tx interrupt occurrances. */ | ||
| 938 | if (!fid) | ||
| 939 | fid |= TXFR_TXIC; /* irq on completion */ | ||
| 940 | |||
| 941 | /* start header at txb[0] to align txw entries */ | 987 | /* start header at txb[0] to align txw entries */ |
| 942 | ks->txh.txw[0] = cpu_to_le16(fid); | 988 | ks->txh.txw[0] = 0; |
| 943 | ks->txh.txw[1] = cpu_to_le16(len); | 989 | ks->txh.txw[1] = cpu_to_le16(len); |
| 944 | 990 | ||
| 945 | /* 1. set sudo-DMA mode */ | 991 | /* 1. set sudo-DMA mode */ |
| @@ -957,16 +1003,6 @@ static void ks_write_qmu(struct ks_net *ks, u8 *pdata, u16 len) | |||
| 957 | ; | 1003 | ; |
| 958 | } | 1004 | } |
| 959 | 1005 | ||
| 960 | static void ks_disable_int(struct ks_net *ks) | ||
| 961 | { | ||
| 962 | ks_wrreg16(ks, KS_IER, 0x0000); | ||
| 963 | } /* ks_disable_int */ | ||
| 964 | |||
| 965 | static void ks_enable_int(struct ks_net *ks) | ||
| 966 | { | ||
| 967 | ks_wrreg16(ks, KS_IER, ks->rc_ier); | ||
| 968 | } /* ks_enable_int */ | ||
| 969 | |||
| 970 | /** | 1006 | /** |
| 971 | * ks_start_xmit - transmit packet | 1007 | * ks_start_xmit - transmit packet |
| 972 | * @skb : The buffer to transmit | 1008 | * @skb : The buffer to transmit |
| @@ -1410,25 +1446,6 @@ static int ks_read_selftest(struct ks_net *ks) | |||
| 1410 | return ret; | 1446 | return ret; |
| 1411 | } | 1447 | } |
| 1412 | 1448 | ||
| 1413 | static void ks_disable(struct ks_net *ks) | ||
| 1414 | { | ||
| 1415 | u16 w; | ||
| 1416 | |||
| 1417 | w = ks_rdreg16(ks, KS_TXCR); | ||
| 1418 | |||
| 1419 | /* Disables QMU Transmit (TXCR). */ | ||
| 1420 | w &= ~TXCR_TXE; | ||
| 1421 | ks_wrreg16(ks, KS_TXCR, w); | ||
| 1422 | |||
| 1423 | /* Disables QMU Receive (RXCR1). */ | ||
| 1424 | w = ks_rdreg16(ks, KS_RXCR1); | ||
| 1425 | w &= ~RXCR1_RXE ; | ||
| 1426 | ks_wrreg16(ks, KS_RXCR1, w); | ||
| 1427 | |||
| 1428 | ks->enabled = false; | ||
| 1429 | |||
| 1430 | } /* ks_disable */ | ||
| 1431 | |||
| 1432 | static void ks_setup(struct ks_net *ks) | 1449 | static void ks_setup(struct ks_net *ks) |
| 1433 | { | 1450 | { |
| 1434 | u16 w; | 1451 | u16 w; |
| @@ -1463,7 +1480,7 @@ static void ks_setup(struct ks_net *ks) | |||
| 1463 | w = TXCR_TXFCE | TXCR_TXPE | TXCR_TXCRC | TXCR_TCGIP; | 1480 | w = TXCR_TXFCE | TXCR_TXPE | TXCR_TXCRC | TXCR_TCGIP; |
| 1464 | ks_wrreg16(ks, KS_TXCR, w); | 1481 | ks_wrreg16(ks, KS_TXCR, w); |
| 1465 | 1482 | ||
| 1466 | w = RXCR1_RXFCE | RXCR1_RXBE | RXCR1_RXUE; | 1483 | w = RXCR1_RXFCE | RXCR1_RXBE | RXCR1_RXUE | RXCR1_RXME | RXCR1_RXIPFCC; |
| 1467 | 1484 | ||
| 1468 | if (ks->promiscuous) /* bPromiscuous */ | 1485 | if (ks->promiscuous) /* bPromiscuous */ |
| 1469 | w |= (RXCR1_RXAE | RXCR1_RXINVF); | 1486 | w |= (RXCR1_RXAE | RXCR1_RXINVF); |
| @@ -1486,28 +1503,6 @@ static void ks_setup_int(struct ks_net *ks) | |||
| 1486 | ks->rc_ier = (IRQ_LCI | IRQ_TXI | IRQ_RXI); | 1503 | ks->rc_ier = (IRQ_LCI | IRQ_TXI | IRQ_RXI); |
| 1487 | } /* ks_setup_int */ | 1504 | } /* ks_setup_int */ |
| 1488 | 1505 | ||
| 1489 | void ks_enable(struct ks_net *ks) | ||
| 1490 | { | ||
| 1491 | u16 w; | ||
| 1492 | |||
| 1493 | w = ks_rdreg16(ks, KS_TXCR); | ||
| 1494 | /* Enables QMU Transmit (TXCR). */ | ||
| 1495 | ks_wrreg16(ks, KS_TXCR, w | TXCR_TXE); | ||
| 1496 | |||
| 1497 | /* | ||
| 1498 | * RX Frame Count Threshold Enable and Auto-Dequeue RXQ Frame | ||
| 1499 | * Enable | ||
| 1500 | */ | ||
| 1501 | |||
| 1502 | w = ks_rdreg16(ks, KS_RXQCR); | ||
| 1503 | ks_wrreg16(ks, KS_RXQCR, w | RXQCR_RXFCTE); | ||
| 1504 | |||
| 1505 | /* Enables QMU Receive (RXCR1). */ | ||
| 1506 | w = ks_rdreg16(ks, KS_RXCR1); | ||
| 1507 | ks_wrreg16(ks, KS_RXCR1, w | RXCR1_RXE); | ||
| 1508 | ks->enabled = true; | ||
| 1509 | } /* ks_enable */ | ||
| 1510 | |||
| 1511 | static int ks_hw_init(struct ks_net *ks) | 1506 | static int ks_hw_init(struct ks_net *ks) |
| 1512 | { | 1507 | { |
| 1513 | #define MHEADER_SIZE (sizeof(struct type_frame_head) * MAX_RECV_FRAMES) | 1508 | #define MHEADER_SIZE (sizeof(struct type_frame_head) * MAX_RECV_FRAMES) |
| @@ -1612,11 +1607,9 @@ static int __devinit ks8851_probe(struct platform_device *pdev) | |||
| 1612 | 1607 | ||
| 1613 | ks_soft_reset(ks, GRR_GSR); | 1608 | ks_soft_reset(ks, GRR_GSR); |
| 1614 | ks_hw_init(ks); | 1609 | ks_hw_init(ks); |
| 1615 | ks_disable(ks); | 1610 | ks_disable_qmu(ks); |
| 1616 | ks_setup(ks); | 1611 | ks_setup(ks); |
| 1617 | ks_setup_int(ks); | 1612 | ks_setup_int(ks); |
| 1618 | ks_enable_int(ks); | ||
| 1619 | ks_enable(ks); | ||
| 1620 | memcpy(netdev->dev_addr, ks->mac_addr, 6); | 1613 | memcpy(netdev->dev_addr, ks->mac_addr, 6); |
| 1621 | 1614 | ||
| 1622 | data = ks_rdreg16(ks, KS_OBCR); | 1615 | data = ks_rdreg16(ks, KS_OBCR); |
| @@ -1658,6 +1651,7 @@ static int __devexit ks8851_remove(struct platform_device *pdev) | |||
| 1658 | struct ks_net *ks = netdev_priv(netdev); | 1651 | struct ks_net *ks = netdev_priv(netdev); |
| 1659 | struct resource *iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1652 | struct resource *iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 1660 | 1653 | ||
| 1654 | kfree(ks->frame_head_info); | ||
| 1661 | unregister_netdev(netdev); | 1655 | unregister_netdev(netdev); |
| 1662 | iounmap(ks->hw_addr); | 1656 | iounmap(ks->hw_addr); |
| 1663 | free_netdev(netdev); | 1657 | free_netdev(netdev); |
diff --git a/drivers/net/mlx4/fw.c b/drivers/net/mlx4/fw.c index cee199ceba2f..3c16602172fc 100644 --- a/drivers/net/mlx4/fw.c +++ b/drivers/net/mlx4/fw.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | */ | 33 | */ |
| 34 | 34 | ||
| 35 | #include <linux/mlx4/cmd.h> | 35 | #include <linux/mlx4/cmd.h> |
| 36 | #include <linux/cache.h> | ||
| 36 | 37 | ||
| 37 | #include "fw.h" | 38 | #include "fw.h" |
| 38 | #include "icm.h" | 39 | #include "icm.h" |
| @@ -698,6 +699,7 @@ int mlx4_INIT_HCA(struct mlx4_dev *dev, struct mlx4_init_hca_param *param) | |||
| 698 | #define INIT_HCA_IN_SIZE 0x200 | 699 | #define INIT_HCA_IN_SIZE 0x200 |
| 699 | #define INIT_HCA_VERSION_OFFSET 0x000 | 700 | #define INIT_HCA_VERSION_OFFSET 0x000 |
| 700 | #define INIT_HCA_VERSION 2 | 701 | #define INIT_HCA_VERSION 2 |
| 702 | #define INIT_HCA_CACHELINE_SZ_OFFSET 0x0e | ||
| 701 | #define INIT_HCA_FLAGS_OFFSET 0x014 | 703 | #define INIT_HCA_FLAGS_OFFSET 0x014 |
| 702 | #define INIT_HCA_QPC_OFFSET 0x020 | 704 | #define INIT_HCA_QPC_OFFSET 0x020 |
| 703 | #define INIT_HCA_QPC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x10) | 705 | #define INIT_HCA_QPC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x10) |
| @@ -735,6 +737,9 @@ int mlx4_INIT_HCA(struct mlx4_dev *dev, struct mlx4_init_hca_param *param) | |||
| 735 | 737 | ||
| 736 | *((u8 *) mailbox->buf + INIT_HCA_VERSION_OFFSET) = INIT_HCA_VERSION; | 738 | *((u8 *) mailbox->buf + INIT_HCA_VERSION_OFFSET) = INIT_HCA_VERSION; |
| 737 | 739 | ||
| 740 | *((u8 *) mailbox->buf + INIT_HCA_CACHELINE_SZ_OFFSET) = | ||
| 741 | (ilog2(cache_line_size()) - 4) << 5; | ||
| 742 | |||
| 738 | #if defined(__LITTLE_ENDIAN) | 743 | #if defined(__LITTLE_ENDIAN) |
| 739 | *(inbox + INIT_HCA_FLAGS_OFFSET / 4) &= ~cpu_to_be32(1 << 1); | 744 | *(inbox + INIT_HCA_FLAGS_OFFSET / 4) &= ~cpu_to_be32(1 << 1); |
| 740 | #elif defined(__BIG_ENDIAN) | 745 | #elif defined(__BIG_ENDIAN) |
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c index 3dd481e77f92..291a505fd4fc 100644 --- a/drivers/net/mlx4/main.c +++ b/drivers/net/mlx4/main.c | |||
| @@ -1282,6 +1282,8 @@ static struct pci_device_id mlx4_pci_table[] = { | |||
| 1282 | { PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */ | 1282 | { PCI_VDEVICE(MELLANOX, 0x6372) }, /* MT25458 ConnectX EN 10GBASE-T 10GigE */ |
| 1283 | { PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */ | 1283 | { PCI_VDEVICE(MELLANOX, 0x675a) }, /* MT25458 ConnectX EN 10GBASE-T+Gen2 10GigE */ |
| 1284 | { PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/ | 1284 | { PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/ |
| 1285 | { PCI_VDEVICE(MELLANOX, 0x6746) }, /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */ | ||
| 1286 | { PCI_VDEVICE(MELLANOX, 0x676e) }, /* MT26478 ConnectX2 40GigE PCIe gen2 */ | ||
| 1285 | { 0, } | 1287 | { 0, } |
| 1286 | }; | 1288 | }; |
| 1287 | 1289 | ||
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 7384f59df615..e1237b802872 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
| @@ -1163,6 +1163,8 @@ struct netxen_adapter { | |||
| 1163 | u32 int_vec_bit; | 1163 | u32 int_vec_bit; |
| 1164 | u32 heartbit; | 1164 | u32 heartbit; |
| 1165 | 1165 | ||
| 1166 | u8 mac_addr[ETH_ALEN]; | ||
| 1167 | |||
| 1166 | struct netxen_adapter_stats stats; | 1168 | struct netxen_adapter_stats stats; |
| 1167 | 1169 | ||
| 1168 | struct netxen_recv_context recv_ctx; | 1170 | struct netxen_recv_context recv_ctx; |
diff --git a/drivers/net/netxen/netxen_nic_hdr.h b/drivers/net/netxen/netxen_nic_hdr.h index 1c46da632125..17bb3818d84e 100644 --- a/drivers/net/netxen/netxen_nic_hdr.h +++ b/drivers/net/netxen/netxen_nic_hdr.h | |||
| @@ -545,6 +545,8 @@ enum { | |||
| 545 | #define NETXEN_NIU_TEST_MUX_CTL (NETXEN_CRB_NIU + 0x00094) | 545 | #define NETXEN_NIU_TEST_MUX_CTL (NETXEN_CRB_NIU + 0x00094) |
| 546 | #define NETXEN_NIU_XG_PAUSE_CTL (NETXEN_CRB_NIU + 0x00098) | 546 | #define NETXEN_NIU_XG_PAUSE_CTL (NETXEN_CRB_NIU + 0x00098) |
| 547 | #define NETXEN_NIU_XG_PAUSE_LEVEL (NETXEN_CRB_NIU + 0x000dc) | 547 | #define NETXEN_NIU_XG_PAUSE_LEVEL (NETXEN_CRB_NIU + 0x000dc) |
| 548 | #define NETXEN_NIU_FRAME_COUNT_SELECT (NETXEN_CRB_NIU + 0x000ac) | ||
| 549 | #define NETXEN_NIU_FRAME_COUNT (NETXEN_CRB_NIU + 0x000b0) | ||
| 548 | #define NETXEN_NIU_XG_SEL (NETXEN_CRB_NIU + 0x00128) | 550 | #define NETXEN_NIU_XG_SEL (NETXEN_CRB_NIU + 0x00128) |
| 549 | #define NETXEN_NIU_GB_PAUSE_CTL (NETXEN_CRB_NIU + 0x0030c) | 551 | #define NETXEN_NIU_GB_PAUSE_CTL (NETXEN_CRB_NIU + 0x0030c) |
| 550 | 552 | ||
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c index 3185a98b0917..52a3798d8d94 100644 --- a/drivers/net/netxen/netxen_nic_hw.c +++ b/drivers/net/netxen/netxen_nic_hw.c | |||
| @@ -383,24 +383,51 @@ int netxen_niu_disable_xg_port(struct netxen_adapter *adapter) | |||
| 383 | 383 | ||
| 384 | int netxen_p2_nic_set_promisc(struct netxen_adapter *adapter, u32 mode) | 384 | int netxen_p2_nic_set_promisc(struct netxen_adapter *adapter, u32 mode) |
| 385 | { | 385 | { |
| 386 | __u32 reg; | 386 | u32 mac_cfg; |
| 387 | u32 cnt = 0; | ||
| 388 | __u32 reg = 0x0200; | ||
| 387 | u32 port = adapter->physical_port; | 389 | u32 port = adapter->physical_port; |
| 390 | u16 board_type = adapter->ahw.board_type; | ||
| 388 | 391 | ||
| 389 | if (port > NETXEN_NIU_MAX_XG_PORTS) | 392 | if (port > NETXEN_NIU_MAX_XG_PORTS) |
| 390 | return -EINVAL; | 393 | return -EINVAL; |
| 391 | 394 | ||
| 392 | reg = NXRD32(adapter, NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port)); | 395 | mac_cfg = NXRD32(adapter, NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port)); |
| 393 | if (mode == NETXEN_NIU_PROMISC_MODE) | 396 | mac_cfg &= ~0x4; |
| 394 | reg = (reg | 0x2000UL); | 397 | NXWR32(adapter, NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), mac_cfg); |
| 395 | else | ||
| 396 | reg = (reg & ~0x2000UL); | ||
| 397 | 398 | ||
| 398 | if (mode == NETXEN_NIU_ALLMULTI_MODE) | 399 | if ((board_type == NETXEN_BRDTYPE_P2_SB31_10G_IMEZ) || |
| 399 | reg = (reg | 0x1000UL); | 400 | (board_type == NETXEN_BRDTYPE_P2_SB31_10G_HMEZ)) |
| 400 | else | 401 | reg = (0x20 << port); |
| 401 | reg = (reg & ~0x1000UL); | 402 | |
| 403 | NXWR32(adapter, NETXEN_NIU_FRAME_COUNT_SELECT, reg); | ||
| 404 | |||
| 405 | mdelay(10); | ||
| 406 | |||
| 407 | while (NXRD32(adapter, NETXEN_NIU_FRAME_COUNT) && ++cnt < 20) | ||
| 408 | mdelay(10); | ||
| 409 | |||
| 410 | if (cnt < 20) { | ||
| 411 | |||
| 412 | reg = NXRD32(adapter, | ||
| 413 | NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port)); | ||
| 414 | |||
| 415 | if (mode == NETXEN_NIU_PROMISC_MODE) | ||
| 416 | reg = (reg | 0x2000UL); | ||
| 417 | else | ||
| 418 | reg = (reg & ~0x2000UL); | ||
| 419 | |||
| 420 | if (mode == NETXEN_NIU_ALLMULTI_MODE) | ||
| 421 | reg = (reg | 0x1000UL); | ||
| 422 | else | ||
| 423 | reg = (reg & ~0x1000UL); | ||
| 424 | |||
| 425 | NXWR32(adapter, | ||
| 426 | NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port), reg); | ||
| 427 | } | ||
| 402 | 428 | ||
| 403 | NXWR32(adapter, NETXEN_NIU_XGE_CONFIG_1 + (0x10000 * port), reg); | 429 | mac_cfg |= 0x4; |
| 430 | NXWR32(adapter, NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), mac_cfg); | ||
| 404 | 431 | ||
| 405 | return 0; | 432 | return 0; |
| 406 | } | 433 | } |
| @@ -436,7 +463,7 @@ netxen_nic_enable_mcast_filter(struct netxen_adapter *adapter) | |||
| 436 | { | 463 | { |
| 437 | u32 val = 0; | 464 | u32 val = 0; |
| 438 | u16 port = adapter->physical_port; | 465 | u16 port = adapter->physical_port; |
| 439 | u8 *addr = adapter->netdev->dev_addr; | 466 | u8 *addr = adapter->mac_addr; |
| 440 | 467 | ||
| 441 | if (adapter->mc_enabled) | 468 | if (adapter->mc_enabled) |
| 442 | return 0; | 469 | return 0; |
| @@ -465,7 +492,7 @@ netxen_nic_disable_mcast_filter(struct netxen_adapter *adapter) | |||
| 465 | { | 492 | { |
| 466 | u32 val = 0; | 493 | u32 val = 0; |
| 467 | u16 port = adapter->physical_port; | 494 | u16 port = adapter->physical_port; |
| 468 | u8 *addr = adapter->netdev->dev_addr; | 495 | u8 *addr = adapter->mac_addr; |
| 469 | 496 | ||
| 470 | if (!adapter->mc_enabled) | 497 | if (!adapter->mc_enabled) |
| 471 | return 0; | 498 | return 0; |
| @@ -660,7 +687,7 @@ void netxen_p3_nic_set_multi(struct net_device *netdev) | |||
| 660 | 687 | ||
| 661 | list_splice_tail_init(&adapter->mac_list, &del_list); | 688 | list_splice_tail_init(&adapter->mac_list, &del_list); |
| 662 | 689 | ||
| 663 | nx_p3_nic_add_mac(adapter, netdev->dev_addr, &del_list); | 690 | nx_p3_nic_add_mac(adapter, adapter->mac_addr, &del_list); |
| 664 | nx_p3_nic_add_mac(adapter, bcast_addr, &del_list); | 691 | nx_p3_nic_add_mac(adapter, bcast_addr, &del_list); |
| 665 | 692 | ||
| 666 | if (netdev->flags & IFF_PROMISC) { | 693 | if (netdev->flags & IFF_PROMISC) { |
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index e40b914d6faf..8a0904368e08 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
| @@ -544,6 +544,8 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) | |||
| 544 | continue; | 544 | continue; |
| 545 | if (off == (ROMUSB_GLB + 0x1c)) /* MS clock */ | 545 | if (off == (ROMUSB_GLB + 0x1c)) /* MS clock */ |
| 546 | continue; | 546 | continue; |
| 547 | if ((off & 0x0ff00000) == NETXEN_CRB_DDR_NET) | ||
| 548 | continue; | ||
| 547 | if (off == (NETXEN_CRB_PEG_NET_1 + 0x18)) | 549 | if (off == (NETXEN_CRB_PEG_NET_1 + 0x18)) |
| 548 | buf[i].data = 0x1020; | 550 | buf[i].data = 0x1020; |
| 549 | /* skip the function enable register */ | 551 | /* skip the function enable register */ |
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 0b4a56a8c8d5..3bf78dbfbf0f 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
| @@ -437,6 +437,7 @@ netxen_read_mac_addr(struct netxen_adapter *adapter) | |||
| 437 | netdev->dev_addr[i] = *(p + 5 - i); | 437 | netdev->dev_addr[i] = *(p + 5 - i); |
| 438 | 438 | ||
| 439 | memcpy(netdev->perm_addr, netdev->dev_addr, netdev->addr_len); | 439 | memcpy(netdev->perm_addr, netdev->dev_addr, netdev->addr_len); |
| 440 | memcpy(adapter->mac_addr, netdev->dev_addr, netdev->addr_len); | ||
| 440 | 441 | ||
| 441 | /* set station address */ | 442 | /* set station address */ |
| 442 | 443 | ||
| @@ -459,6 +460,7 @@ int netxen_nic_set_mac(struct net_device *netdev, void *p) | |||
| 459 | netxen_napi_disable(adapter); | 460 | netxen_napi_disable(adapter); |
| 460 | } | 461 | } |
| 461 | 462 | ||
| 463 | memcpy(adapter->mac_addr, addr->sa_data, netdev->addr_len); | ||
| 462 | memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); | 464 | memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len); |
| 463 | adapter->macaddr_set(adapter, addr->sa_data); | 465 | adapter->macaddr_set(adapter, addr->sa_data); |
| 464 | 466 | ||
| @@ -956,7 +958,7 @@ netxen_nic_up(struct netxen_adapter *adapter, struct net_device *netdev) | |||
| 956 | return err; | 958 | return err; |
| 957 | } | 959 | } |
| 958 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) | 960 | if (NX_IS_REVISION_P2(adapter->ahw.revision_id)) |
| 959 | adapter->macaddr_set(adapter, netdev->dev_addr); | 961 | adapter->macaddr_set(adapter, adapter->mac_addr); |
| 960 | 962 | ||
| 961 | adapter->set_multi(netdev); | 963 | adapter->set_multi(netdev); |
| 962 | adapter->set_mtu(adapter, netdev->mtu); | 964 | adapter->set_mtu(adapter, netdev->mtu); |
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index c594e1946476..57fd483dbb1f 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
| @@ -111,6 +111,7 @@ | |||
| 111 | #include <linux/compiler.h> | 111 | #include <linux/compiler.h> |
| 112 | #include <linux/prefetch.h> | 112 | #include <linux/prefetch.h> |
| 113 | #include <linux/ethtool.h> | 113 | #include <linux/ethtool.h> |
| 114 | #include <linux/sched.h> | ||
| 114 | #include <linux/timer.h> | 115 | #include <linux/timer.h> |
| 115 | #include <linux/if_vlan.h> | 116 | #include <linux/if_vlan.h> |
| 116 | #include <linux/rtnetlink.h> | 117 | #include <linux/rtnetlink.h> |
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index 6d28b18e7e28..c1b3f09f452c 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
| @@ -31,6 +31,7 @@ static const char *const version = | |||
| 31 | 31 | ||
| 32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
| 33 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
| 34 | #include <linux/sched.h> | ||
| 34 | #include <linux/string.h> | 35 | #include <linux/string.h> |
| 35 | #include <linux/errno.h> | 36 | #include <linux/errno.h> |
| 36 | #include <linux/ioport.h> | 37 | #include <linux/ioport.h> |
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c index ee366c5a8fa3..c9c70ab0cce0 100644 --- a/drivers/net/sb1000.c +++ b/drivers/net/sb1000.c | |||
| @@ -36,6 +36,7 @@ static char version[] = "sb1000.c:v1.1.2 6/01/98 (fventuri@mediaone.net)\n"; | |||
| 36 | 36 | ||
| 37 | #include <linux/module.h> | 37 | #include <linux/module.h> |
| 38 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
| 39 | #include <linux/sched.h> | ||
| 39 | #include <linux/string.h> | 40 | #include <linux/string.h> |
| 40 | #include <linux/interrupt.h> | 41 | #include <linux/interrupt.h> |
| 41 | #include <linux/errno.h> | 42 | #include <linux/errno.h> |
diff --git a/drivers/net/sfc/sfe4001.c b/drivers/net/sfc/sfe4001.c index cee00ad49b57..49eb91b5f50c 100644 --- a/drivers/net/sfc/sfe4001.c +++ b/drivers/net/sfc/sfe4001.c | |||
| @@ -188,7 +188,7 @@ static int sfn4111t_reset(struct efx_nic *efx) | |||
| 188 | efx_oword_t reg; | 188 | efx_oword_t reg; |
| 189 | 189 | ||
| 190 | /* GPIO 3 and the GPIO register are shared with I2C, so block that */ | 190 | /* GPIO 3 and the GPIO register are shared with I2C, so block that */ |
| 191 | mutex_lock(&efx->i2c_adap.bus_lock); | 191 | i2c_lock_adapter(&efx->i2c_adap); |
| 192 | 192 | ||
| 193 | /* Pull RST_N (GPIO 2) low then let it up again, setting the | 193 | /* Pull RST_N (GPIO 2) low then let it up again, setting the |
| 194 | * FLASH_CFG_1 strap (GPIO 3) appropriately. Only change the | 194 | * FLASH_CFG_1 strap (GPIO 3) appropriately. Only change the |
| @@ -204,7 +204,7 @@ static int sfn4111t_reset(struct efx_nic *efx) | |||
| 204 | falcon_write(efx, ®, GPIO_CTL_REG_KER); | 204 | falcon_write(efx, ®, GPIO_CTL_REG_KER); |
| 205 | msleep(1); | 205 | msleep(1); |
| 206 | 206 | ||
| 207 | mutex_unlock(&efx->i2c_adap.bus_lock); | 207 | i2c_unlock_adapter(&efx->i2c_adap); |
| 208 | 208 | ||
| 209 | ssleep(1); | 209 | ssleep(1); |
| 210 | return 0; | 210 | return 0; |
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c index 97949d0a699b..c072f7f36acf 100644 --- a/drivers/net/sis900.c +++ b/drivers/net/sis900.c | |||
| @@ -52,6 +52,7 @@ | |||
| 52 | #include <linux/module.h> | 52 | #include <linux/module.h> |
| 53 | #include <linux/moduleparam.h> | 53 | #include <linux/moduleparam.h> |
| 54 | #include <linux/kernel.h> | 54 | #include <linux/kernel.h> |
| 55 | #include <linux/sched.h> | ||
| 55 | #include <linux/string.h> | 56 | #include <linux/string.h> |
| 56 | #include <linux/timer.h> | 57 | #include <linux/timer.h> |
| 57 | #include <linux/errno.h> | 58 | #include <linux/errno.h> |
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c index 38a508b4aad9..b27156eaf267 100644 --- a/drivers/net/skfp/skfddi.c +++ b/drivers/net/skfp/skfddi.c | |||
| @@ -73,6 +73,7 @@ static const char * const boot_msg = | |||
| 73 | 73 | ||
| 74 | /* Include files */ | 74 | /* Include files */ |
| 75 | 75 | ||
| 76 | #include <linux/capability.h> | ||
| 76 | #include <linux/module.h> | 77 | #include <linux/module.h> |
| 77 | #include <linux/kernel.h> | 78 | #include <linux/kernel.h> |
| 78 | #include <linux/errno.h> | 79 | #include <linux/errno.h> |
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index 01f6811f1324..8f5414348e86 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | #include <linux/crc32.h> | 37 | #include <linux/crc32.h> |
| 38 | #include <linux/dma-mapping.h> | 38 | #include <linux/dma-mapping.h> |
| 39 | #include <linux/debugfs.h> | 39 | #include <linux/debugfs.h> |
| 40 | #include <linux/sched.h> | ||
| 40 | #include <linux/seq_file.h> | 41 | #include <linux/seq_file.h> |
| 41 | #include <linux/mii.h> | 42 | #include <linux/mii.h> |
| 42 | #include <asm/irq.h> | 43 | #include <asm/irq.h> |
diff --git a/drivers/net/slip.c b/drivers/net/slip.c index e17c535a577e..fe3cebb984de 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c | |||
| @@ -67,6 +67,7 @@ | |||
| 67 | #include <asm/system.h> | 67 | #include <asm/system.h> |
| 68 | #include <asm/uaccess.h> | 68 | #include <asm/uaccess.h> |
| 69 | #include <linux/bitops.h> | 69 | #include <linux/bitops.h> |
| 70 | #include <linux/sched.h> | ||
| 70 | #include <linux/string.h> | 71 | #include <linux/string.h> |
| 71 | #include <linux/mm.h> | 72 | #include <linux/mm.h> |
| 72 | #include <linux/interrupt.h> | 73 | #include <linux/interrupt.h> |
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c index c2f14dc9ba28..9542995ba667 100644 --- a/drivers/net/stmmac/stmmac_main.c +++ b/drivers/net/stmmac/stmmac_main.c | |||
| @@ -416,13 +416,8 @@ static void init_dma_desc_rings(struct net_device *dev) | |||
| 416 | unsigned int txsize = priv->dma_tx_size; | 416 | unsigned int txsize = priv->dma_tx_size; |
| 417 | unsigned int rxsize = priv->dma_rx_size; | 417 | unsigned int rxsize = priv->dma_rx_size; |
| 418 | unsigned int bfsize = priv->dma_buf_sz; | 418 | unsigned int bfsize = priv->dma_buf_sz; |
| 419 | int buff2_needed = 0; | 419 | int buff2_needed = 0, dis_ic = 0; |
| 420 | int dis_ic = 0; | ||
| 421 | 420 | ||
| 422 | #ifdef CONFIG_STMMAC_TIMER | ||
| 423 | /* Using Timers disable interrupts on completion for the reception */ | ||
| 424 | dis_ic = 1; | ||
| 425 | #endif | ||
| 426 | /* Set the Buffer size according to the MTU; | 421 | /* Set the Buffer size according to the MTU; |
| 427 | * indeed, in case of jumbo we need to bump-up the buffer sizes. | 422 | * indeed, in case of jumbo we need to bump-up the buffer sizes. |
| 428 | */ | 423 | */ |
| @@ -437,6 +432,11 @@ static void init_dma_desc_rings(struct net_device *dev) | |||
| 437 | else | 432 | else |
| 438 | bfsize = DMA_BUFFER_SIZE; | 433 | bfsize = DMA_BUFFER_SIZE; |
| 439 | 434 | ||
| 435 | #ifdef CONFIG_STMMAC_TIMER | ||
| 436 | /* Disable interrupts on completion for the reception if timer is on */ | ||
| 437 | if (likely(priv->tm->enable)) | ||
| 438 | dis_ic = 1; | ||
| 439 | #endif | ||
| 440 | /* If the MTU exceeds 8k so use the second buffer in the chain */ | 440 | /* If the MTU exceeds 8k so use the second buffer in the chain */ |
| 441 | if (bfsize >= BUF_SIZE_8KiB) | 441 | if (bfsize >= BUF_SIZE_8KiB) |
| 442 | buff2_needed = 1; | 442 | buff2_needed = 1; |
| @@ -809,20 +809,22 @@ static void stmmac_tx(struct stmmac_priv *priv) | |||
| 809 | 809 | ||
| 810 | static inline void stmmac_enable_irq(struct stmmac_priv *priv) | 810 | static inline void stmmac_enable_irq(struct stmmac_priv *priv) |
| 811 | { | 811 | { |
| 812 | #ifndef CONFIG_STMMAC_TIMER | 812 | #ifdef CONFIG_STMMAC_TIMER |
| 813 | writel(DMA_INTR_DEFAULT_MASK, priv->dev->base_addr + DMA_INTR_ENA); | 813 | if (likely(priv->tm->enable)) |
| 814 | #else | 814 | priv->tm->timer_start(tmrate); |
| 815 | priv->tm->timer_start(tmrate); | 815 | else |
| 816 | #endif | 816 | #endif |
| 817 | writel(DMA_INTR_DEFAULT_MASK, priv->dev->base_addr + DMA_INTR_ENA); | ||
| 817 | } | 818 | } |
| 818 | 819 | ||
| 819 | static inline void stmmac_disable_irq(struct stmmac_priv *priv) | 820 | static inline void stmmac_disable_irq(struct stmmac_priv *priv) |
| 820 | { | 821 | { |
| 821 | #ifndef CONFIG_STMMAC_TIMER | 822 | #ifdef CONFIG_STMMAC_TIMER |
| 822 | writel(0, priv->dev->base_addr + DMA_INTR_ENA); | 823 | if (likely(priv->tm->enable)) |
| 823 | #else | 824 | priv->tm->timer_stop(); |
| 824 | priv->tm->timer_stop(); | 825 | else |
| 825 | #endif | 826 | #endif |
| 827 | writel(0, priv->dev->base_addr + DMA_INTR_ENA); | ||
| 826 | } | 828 | } |
| 827 | 829 | ||
| 828 | static int stmmac_has_work(struct stmmac_priv *priv) | 830 | static int stmmac_has_work(struct stmmac_priv *priv) |
| @@ -1031,22 +1033,23 @@ static int stmmac_open(struct net_device *dev) | |||
| 1031 | } | 1033 | } |
| 1032 | 1034 | ||
| 1033 | #ifdef CONFIG_STMMAC_TIMER | 1035 | #ifdef CONFIG_STMMAC_TIMER |
| 1034 | priv->tm = kmalloc(sizeof(struct stmmac_timer *), GFP_KERNEL); | 1036 | priv->tm = kzalloc(sizeof(struct stmmac_timer *), GFP_KERNEL); |
| 1035 | if (unlikely(priv->tm == NULL)) { | 1037 | if (unlikely(priv->tm == NULL)) { |
| 1036 | pr_err("%s: ERROR: timer memory alloc failed \n", __func__); | 1038 | pr_err("%s: ERROR: timer memory alloc failed \n", __func__); |
| 1037 | return -ENOMEM; | 1039 | return -ENOMEM; |
| 1038 | } | 1040 | } |
| 1039 | priv->tm->freq = tmrate; | 1041 | priv->tm->freq = tmrate; |
| 1040 | 1042 | ||
| 1041 | /* Test if the HW timer can be actually used. | 1043 | /* Test if the external timer can be actually used. |
| 1042 | * In case of failure continue with no timer. */ | 1044 | * In case of failure continue without timer. */ |
| 1043 | if (unlikely((stmmac_open_ext_timer(dev, priv->tm)) < 0)) { | 1045 | if (unlikely((stmmac_open_ext_timer(dev, priv->tm)) < 0)) { |
| 1044 | pr_warning("stmmaceth: cannot attach the HW timer\n"); | 1046 | pr_warning("stmmaceth: cannot attach the external timer.\n"); |
| 1045 | tmrate = 0; | 1047 | tmrate = 0; |
| 1046 | priv->tm->freq = 0; | 1048 | priv->tm->freq = 0; |
| 1047 | priv->tm->timer_start = stmmac_no_timer_started; | 1049 | priv->tm->timer_start = stmmac_no_timer_started; |
| 1048 | priv->tm->timer_stop = stmmac_no_timer_stopped; | 1050 | priv->tm->timer_stop = stmmac_no_timer_stopped; |
| 1049 | } | 1051 | } else |
| 1052 | priv->tm->enable = 1; | ||
| 1050 | #endif | 1053 | #endif |
| 1051 | 1054 | ||
| 1052 | /* Create and initialize the TX/RX descriptors chains. */ | 1055 | /* Create and initialize the TX/RX descriptors chains. */ |
| @@ -1322,9 +1325,11 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev) | |||
| 1322 | 1325 | ||
| 1323 | /* Interrupt on completition only for the latest segment */ | 1326 | /* Interrupt on completition only for the latest segment */ |
| 1324 | priv->mac_type->ops->close_tx_desc(desc); | 1327 | priv->mac_type->ops->close_tx_desc(desc); |
| 1328 | |||
| 1325 | #ifdef CONFIG_STMMAC_TIMER | 1329 | #ifdef CONFIG_STMMAC_TIMER |
| 1326 | /* Clean IC while using timers */ | 1330 | /* Clean IC while using timer */ |
| 1327 | priv->mac_type->ops->clear_tx_ic(desc); | 1331 | if (likely(priv->tm->enable)) |
| 1332 | priv->mac_type->ops->clear_tx_ic(desc); | ||
| 1328 | #endif | 1333 | #endif |
| 1329 | /* To avoid raise condition */ | 1334 | /* To avoid raise condition */ |
| 1330 | priv->mac_type->ops->set_tx_owner(first); | 1335 | priv->mac_type->ops->set_tx_owner(first); |
| @@ -2028,7 +2033,8 @@ static int stmmac_suspend(struct platform_device *pdev, pm_message_t state) | |||
| 2028 | 2033 | ||
| 2029 | #ifdef CONFIG_STMMAC_TIMER | 2034 | #ifdef CONFIG_STMMAC_TIMER |
| 2030 | priv->tm->timer_stop(); | 2035 | priv->tm->timer_stop(); |
| 2031 | dis_ic = 1; | 2036 | if (likely(priv->tm->enable)) |
| 2037 | dis_ic = 1; | ||
| 2032 | #endif | 2038 | #endif |
| 2033 | napi_disable(&priv->napi); | 2039 | napi_disable(&priv->napi); |
| 2034 | 2040 | ||
diff --git a/drivers/net/stmmac/stmmac_timer.c b/drivers/net/stmmac/stmmac_timer.c index b838c6582077..679f61ffb1f8 100644 --- a/drivers/net/stmmac/stmmac_timer.c +++ b/drivers/net/stmmac/stmmac_timer.c | |||
| @@ -63,7 +63,7 @@ int stmmac_open_ext_timer(struct net_device *dev, struct stmmac_timer *tm) | |||
| 63 | 63 | ||
| 64 | stmmac_rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE); | 64 | stmmac_rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE); |
| 65 | if (stmmac_rtc == NULL) { | 65 | if (stmmac_rtc == NULL) { |
| 66 | pr_error("open rtc device failed\n"); | 66 | pr_err("open rtc device failed\n"); |
| 67 | return -ENODEV; | 67 | return -ENODEV; |
| 68 | } | 68 | } |
| 69 | 69 | ||
| @@ -71,7 +71,7 @@ int stmmac_open_ext_timer(struct net_device *dev, struct stmmac_timer *tm) | |||
| 71 | 71 | ||
| 72 | /* Periodic mode is not supported */ | 72 | /* Periodic mode is not supported */ |
| 73 | if ((rtc_irq_set_freq(stmmac_rtc, &stmmac_task, tm->freq) < 0)) { | 73 | if ((rtc_irq_set_freq(stmmac_rtc, &stmmac_task, tm->freq) < 0)) { |
| 74 | pr_error("set periodic failed\n"); | 74 | pr_err("set periodic failed\n"); |
| 75 | rtc_irq_unregister(stmmac_rtc, &stmmac_task); | 75 | rtc_irq_unregister(stmmac_rtc, &stmmac_task); |
| 76 | rtc_class_close(stmmac_rtc); | 76 | rtc_class_close(stmmac_rtc); |
| 77 | return -1; | 77 | return -1; |
diff --git a/drivers/net/stmmac/stmmac_timer.h b/drivers/net/stmmac/stmmac_timer.h index f795cae33725..6863590d184b 100644 --- a/drivers/net/stmmac/stmmac_timer.h +++ b/drivers/net/stmmac/stmmac_timer.h | |||
| @@ -26,6 +26,7 @@ struct stmmac_timer { | |||
| 26 | void (*timer_start) (unsigned int new_freq); | 26 | void (*timer_start) (unsigned int new_freq); |
| 27 | void (*timer_stop) (void); | 27 | void (*timer_stop) (void); |
| 28 | unsigned int freq; | 28 | unsigned int freq; |
| 29 | unsigned int enable; | ||
| 29 | }; | 30 | }; |
| 30 | 31 | ||
| 31 | /* Open the HW timer device and return 0 in case of success */ | 32 | /* Open the HW timer device and return 0 in case of success */ |
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c index 1927b3de9eec..61640b99b705 100644 --- a/drivers/net/sungem.c +++ b/drivers/net/sungem.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <linux/interrupt.h> | 38 | #include <linux/interrupt.h> |
| 39 | #include <linux/ioport.h> | 39 | #include <linux/ioport.h> |
| 40 | #include <linux/in.h> | 40 | #include <linux/in.h> |
| 41 | #include <linux/sched.h> | ||
| 41 | #include <linux/slab.h> | 42 | #include <linux/slab.h> |
| 42 | #include <linux/string.h> | 43 | #include <linux/string.h> |
| 43 | #include <linux/delay.h> | 44 | #include <linux/delay.h> |
diff --git a/drivers/net/tokenring/ibmtr.c b/drivers/net/tokenring/ibmtr.c index 6a3c7510afd9..75fa32e34fd0 100644 --- a/drivers/net/tokenring/ibmtr.c +++ b/drivers/net/tokenring/ibmtr.c | |||
| @@ -108,6 +108,7 @@ in the event that chatty debug messages are desired - jjs 12/30/98 */ | |||
| 108 | #define IBMTR_DEBUG_MESSAGES 0 | 108 | #define IBMTR_DEBUG_MESSAGES 0 |
| 109 | 109 | ||
| 110 | #include <linux/module.h> | 110 | #include <linux/module.h> |
| 111 | #include <linux/sched.h> | ||
| 111 | 112 | ||
| 112 | #ifdef PCMCIA /* required for ibmtr_cs.c to build */ | 113 | #ifdef PCMCIA /* required for ibmtr_cs.c to build */ |
| 113 | #undef MODULE /* yes, really */ | 114 | #undef MODULE /* yes, really */ |
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c index d6d345229fe9..5921f5bdd764 100644 --- a/drivers/net/typhoon.c +++ b/drivers/net/typhoon.c | |||
| @@ -108,6 +108,7 @@ static const int multicast_filter_limit = 32; | |||
| 108 | 108 | ||
| 109 | #include <linux/module.h> | 109 | #include <linux/module.h> |
| 110 | #include <linux/kernel.h> | 110 | #include <linux/kernel.h> |
| 111 | #include <linux/sched.h> | ||
| 111 | #include <linux/string.h> | 112 | #include <linux/string.h> |
| 112 | #include <linux/timer.h> | 113 | #include <linux/timer.h> |
| 113 | #include <linux/errno.h> | 114 | #include <linux/errno.h> |
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index fa4e58196c21..43bc3fcc0d85 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c | |||
| @@ -378,7 +378,7 @@ static void dbg_dump(int line_count, const char *func_name, unsigned char *buf, | |||
| 378 | } | 378 | } |
| 379 | 379 | ||
| 380 | #define DUMP(buf_, len_) \ | 380 | #define DUMP(buf_, len_) \ |
| 381 | dbg_dump(__LINE__, __func__, buf_, len_) | 381 | dbg_dump(__LINE__, __func__, (unsigned char *)buf_, len_) |
| 382 | 382 | ||
| 383 | #define DUMP1(buf_, len_) \ | 383 | #define DUMP1(buf_, len_) \ |
| 384 | do { \ | 384 | do { \ |
| @@ -1363,7 +1363,7 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp) | |||
| 1363 | /* reset the rts and dtr */ | 1363 | /* reset the rts and dtr */ |
| 1364 | /* do the actual close */ | 1364 | /* do the actual close */ |
| 1365 | serial->open_count--; | 1365 | serial->open_count--; |
| 1366 | kref_put(&serial->parent->ref, hso_serial_ref_free); | 1366 | |
| 1367 | if (serial->open_count <= 0) { | 1367 | if (serial->open_count <= 0) { |
| 1368 | serial->open_count = 0; | 1368 | serial->open_count = 0; |
| 1369 | spin_lock_irq(&serial->serial_lock); | 1369 | spin_lock_irq(&serial->serial_lock); |
| @@ -1383,6 +1383,8 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp) | |||
| 1383 | usb_autopm_put_interface(serial->parent->interface); | 1383 | usb_autopm_put_interface(serial->parent->interface); |
| 1384 | 1384 | ||
| 1385 | mutex_unlock(&serial->parent->mutex); | 1385 | mutex_unlock(&serial->parent->mutex); |
| 1386 | |||
| 1387 | kref_put(&serial->parent->ref, hso_serial_ref_free); | ||
| 1386 | } | 1388 | } |
| 1387 | 1389 | ||
| 1388 | /* close the requested serial port */ | 1390 | /* close the requested serial port */ |
| @@ -1527,7 +1529,7 @@ static void tiocmget_intr_callback(struct urb *urb) | |||
| 1527 | dev_warn(&usb->dev, | 1529 | dev_warn(&usb->dev, |
| 1528 | "hso received invalid serial state notification\n"); | 1530 | "hso received invalid serial state notification\n"); |
| 1529 | DUMP(serial_state_notification, | 1531 | DUMP(serial_state_notification, |
| 1530 | sizeof(hso_serial_state_notifation)) | 1532 | sizeof(struct hso_serial_state_notification)); |
| 1531 | } else { | 1533 | } else { |
| 1532 | 1534 | ||
| 1533 | UART_state_bitmap = le16_to_cpu(serial_state_notification-> | 1535 | UART_state_bitmap = le16_to_cpu(serial_state_notification-> |
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c index 0caa8008c51c..f56dec6119c3 100644 --- a/drivers/net/usb/rndis_host.c +++ b/drivers/net/usb/rndis_host.c | |||
| @@ -362,12 +362,12 @@ generic_rndis_bind(struct usbnet *dev, struct usb_interface *intf, int flags) | |||
| 362 | retval = -EINVAL; | 362 | retval = -EINVAL; |
| 363 | goto halt_fail_and_release; | 363 | goto halt_fail_and_release; |
| 364 | } | 364 | } |
| 365 | dev->hard_mtu = tmp; | ||
| 366 | net->mtu = dev->hard_mtu - net->hard_header_len; | ||
| 367 | dev_warn(&intf->dev, | 365 | dev_warn(&intf->dev, |
| 368 | "dev can't take %u byte packets (max %u), " | 366 | "dev can't take %u byte packets (max %u), " |
| 369 | "adjusting MTU to %u\n", | 367 | "adjusting MTU to %u\n", |
| 370 | dev->hard_mtu, tmp, net->mtu); | 368 | dev->hard_mtu, tmp, tmp - net->hard_header_len); |
| 369 | dev->hard_mtu = tmp; | ||
| 370 | net->mtu = dev->hard_mtu - net->hard_header_len; | ||
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | /* REVISIT: peripheral "alignment" request is ignored ... */ | 373 | /* REVISIT: peripheral "alignment" request is ignored ... */ |
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index ade5b344f75d..52af5017c46b 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c | |||
| @@ -210,32 +210,29 @@ rx_drop: | |||
| 210 | static struct net_device_stats *veth_get_stats(struct net_device *dev) | 210 | static struct net_device_stats *veth_get_stats(struct net_device *dev) |
| 211 | { | 211 | { |
| 212 | struct veth_priv *priv; | 212 | struct veth_priv *priv; |
| 213 | struct net_device_stats *dev_stats; | ||
| 214 | int cpu; | 213 | int cpu; |
| 215 | struct veth_net_stats *stats; | 214 | struct veth_net_stats *stats, total = {0}; |
| 216 | 215 | ||
| 217 | priv = netdev_priv(dev); | 216 | priv = netdev_priv(dev); |
| 218 | dev_stats = &dev->stats; | ||
| 219 | |||
| 220 | dev_stats->rx_packets = 0; | ||
| 221 | dev_stats->tx_packets = 0; | ||
| 222 | dev_stats->rx_bytes = 0; | ||
| 223 | dev_stats->tx_bytes = 0; | ||
| 224 | dev_stats->tx_dropped = 0; | ||
| 225 | dev_stats->rx_dropped = 0; | ||
| 226 | 217 | ||
| 227 | for_each_online_cpu(cpu) { | 218 | for_each_possible_cpu(cpu) { |
| 228 | stats = per_cpu_ptr(priv->stats, cpu); | 219 | stats = per_cpu_ptr(priv->stats, cpu); |
| 229 | 220 | ||
| 230 | dev_stats->rx_packets += stats->rx_packets; | 221 | total.rx_packets += stats->rx_packets; |
| 231 | dev_stats->tx_packets += stats->tx_packets; | 222 | total.tx_packets += stats->tx_packets; |
| 232 | dev_stats->rx_bytes += stats->rx_bytes; | 223 | total.rx_bytes += stats->rx_bytes; |
| 233 | dev_stats->tx_bytes += stats->tx_bytes; | 224 | total.tx_bytes += stats->tx_bytes; |
| 234 | dev_stats->tx_dropped += stats->tx_dropped; | 225 | total.tx_dropped += stats->tx_dropped; |
| 235 | dev_stats->rx_dropped += stats->rx_dropped; | 226 | total.rx_dropped += stats->rx_dropped; |
| 236 | } | 227 | } |
| 237 | 228 | dev->stats.rx_packets = total.rx_packets; | |
| 238 | return dev_stats; | 229 | dev->stats.tx_packets = total.tx_packets; |
| 230 | dev->stats.rx_bytes = total.rx_bytes; | ||
| 231 | dev->stats.tx_bytes = total.tx_bytes; | ||
| 232 | dev->stats.tx_dropped = total.tx_dropped; | ||
| 233 | dev->stats.rx_dropped = total.rx_dropped; | ||
| 234 | |||
| 235 | return &dev->stats; | ||
| 239 | } | 236 | } |
| 240 | 237 | ||
| 241 | static int veth_open(struct net_device *dev) | 238 | static int veth_open(struct net_device *dev) |
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index bb8b52d0d1ce..b9e002fccbca 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | #include <linux/ethtool.h> | 22 | #include <linux/ethtool.h> |
| 23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
| 24 | #include <linux/virtio.h> | 24 | #include <linux/virtio.h> |
| 25 | #include <linux/virtio_ids.h> | ||
| 26 | #include <linux/virtio_net.h> | 25 | #include <linux/virtio_net.h> |
| 27 | #include <linux/scatterlist.h> | 26 | #include <linux/scatterlist.h> |
| 28 | #include <linux/if_vlan.h> | 27 | #include <linux/if_vlan.h> |
diff --git a/drivers/net/wan/c101.c b/drivers/net/wan/c101.c index 9693b0fd323d..0bd898c94759 100644 --- a/drivers/net/wan/c101.c +++ b/drivers/net/wan/c101.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
| 18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
| 19 | #include <linux/capability.h> | ||
| 19 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
| 20 | #include <linux/types.h> | 21 | #include <linux/types.h> |
| 21 | #include <linux/string.h> | 22 | #include <linux/string.h> |
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index 66360a2a14c2..e2c33c06190b 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c | |||
| @@ -76,6 +76,7 @@ | |||
| 76 | 76 | ||
| 77 | #include <linux/module.h> | 77 | #include <linux/module.h> |
| 78 | #include <linux/kernel.h> | 78 | #include <linux/kernel.h> |
| 79 | #include <linux/sched.h> | ||
| 79 | #include <linux/slab.h> | 80 | #include <linux/slab.h> |
| 80 | #include <linux/poll.h> | 81 | #include <linux/poll.h> |
| 81 | #include <linux/fs.h> | 82 | #include <linux/fs.h> |
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c index 2573c18b6aa5..cd8cb95c5bd7 100644 --- a/drivers/net/wan/cycx_x25.c +++ b/drivers/net/wan/cycx_x25.c | |||
| @@ -84,6 +84,7 @@ | |||
| 84 | #include <linux/kernel.h> /* printk(), and other useful stuff */ | 84 | #include <linux/kernel.h> /* printk(), and other useful stuff */ |
| 85 | #include <linux/module.h> | 85 | #include <linux/module.h> |
| 86 | #include <linux/string.h> /* inline memset(), etc. */ | 86 | #include <linux/string.h> /* inline memset(), etc. */ |
| 87 | #include <linux/sched.h> | ||
| 87 | #include <linux/slab.h> /* kmalloc(), kfree() */ | 88 | #include <linux/slab.h> /* kmalloc(), kfree() */ |
| 88 | #include <linux/stddef.h> /* offsetof(), etc. */ | 89 | #include <linux/stddef.h> /* offsetof(), etc. */ |
| 89 | #include <linux/wanrouter.h> /* WAN router definitions */ | 90 | #include <linux/wanrouter.h> /* WAN router definitions */ |
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c index 81c8aec9df92..07d00b4cf48a 100644 --- a/drivers/net/wan/dscc4.c +++ b/drivers/net/wan/dscc4.c | |||
| @@ -81,6 +81,7 @@ | |||
| 81 | */ | 81 | */ |
| 82 | 82 | ||
| 83 | #include <linux/module.h> | 83 | #include <linux/module.h> |
| 84 | #include <linux/sched.h> | ||
| 84 | #include <linux/types.h> | 85 | #include <linux/types.h> |
| 85 | #include <linux/errno.h> | 86 | #include <linux/errno.h> |
| 86 | #include <linux/list.h> | 87 | #include <linux/list.h> |
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 3e90eb816181..beda387f2fc7 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
| 20 | #include <linux/version.h> | 20 | #include <linux/version.h> |
| 21 | #include <linux/pci.h> | 21 | #include <linux/pci.h> |
| 22 | #include <linux/sched.h> | ||
| 22 | #include <linux/ioport.h> | 23 | #include <linux/ioport.h> |
| 23 | #include <linux/init.h> | 24 | #include <linux/init.h> |
| 24 | #include <linux/if.h> | 25 | #include <linux/if.h> |
diff --git a/drivers/net/wan/n2.c b/drivers/net/wan/n2.c index 83da596e2052..58c66819f39b 100644 --- a/drivers/net/wan/n2.c +++ b/drivers/net/wan/n2.c | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
| 20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
| 21 | #include <linux/capability.h> | ||
| 21 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
| 22 | #include <linux/types.h> | 23 | #include <linux/types.h> |
| 23 | #include <linux/fcntl.h> | 24 | #include <linux/fcntl.h> |
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c index a52f29c72c33..f1340faaf022 100644 --- a/drivers/net/wan/pci200syn.c +++ b/drivers/net/wan/pci200syn.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
| 18 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
| 19 | #include <linux/capability.h> | ||
| 19 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
| 20 | #include <linux/types.h> | 21 | #include <linux/types.h> |
| 21 | #include <linux/fcntl.h> | 22 | #include <linux/fcntl.h> |
diff --git a/drivers/net/wireless/b43/pio.c b/drivers/net/wireless/b43/pio.c index dbbf0d11e18e..9b9044400218 100644 --- a/drivers/net/wireless/b43/pio.c +++ b/drivers/net/wireless/b43/pio.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #include "xmit.h" | 30 | #include "xmit.h" |
| 31 | 31 | ||
| 32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| 33 | #include <linux/sched.h> | ||
| 33 | 34 | ||
| 34 | 35 | ||
| 35 | static u16 generate_cookie(struct b43_pio_txqueue *q, | 36 | static u16 generate_cookie(struct b43_pio_txqueue *q, |
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c index 1d9223b3d4c4..4b60148a5e61 100644 --- a/drivers/net/wireless/b43legacy/main.c +++ b/drivers/net/wireless/b43legacy/main.c | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | #include <linux/firmware.h> | 37 | #include <linux/firmware.h> |
| 38 | #include <linux/wireless.h> | 38 | #include <linux/wireless.h> |
| 39 | #include <linux/workqueue.h> | 39 | #include <linux/workqueue.h> |
| 40 | #include <linux/sched.h> | ||
| 40 | #include <linux/skbuff.h> | 41 | #include <linux/skbuff.h> |
| 41 | #include <linux/dma-mapping.h> | 42 | #include <linux/dma-mapping.h> |
| 42 | #include <net/dst.h> | 43 | #include <net/dst.h> |
diff --git a/drivers/net/wireless/b43legacy/phy.c b/drivers/net/wireless/b43legacy/phy.c index 11319ec2d64a..aaf227203a98 100644 --- a/drivers/net/wireless/b43legacy/phy.c +++ b/drivers/net/wireless/b43legacy/phy.c | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | 31 | ||
| 32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| 33 | #include <linux/pci.h> | 33 | #include <linux/pci.h> |
| 34 | #include <linux/sched.h> | ||
| 34 | #include <linux/types.h> | 35 | #include <linux/types.h> |
| 35 | 36 | ||
| 36 | #include "b43legacy.h" | 37 | #include "b43legacy.h" |
diff --git a/drivers/net/wireless/hostap/hostap_info.c b/drivers/net/wireless/hostap/hostap_info.c index 6fa14a4e4b53..4dfb40a84c96 100644 --- a/drivers/net/wireless/hostap/hostap_info.c +++ b/drivers/net/wireless/hostap/hostap_info.c | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | /* Host AP driver Info Frame processing (part of hostap.o module) */ | 1 | /* Host AP driver Info Frame processing (part of hostap.o module) */ |
| 2 | 2 | ||
| 3 | #include <linux/if_arp.h> | 3 | #include <linux/if_arp.h> |
| 4 | #include <linux/sched.h> | ||
| 4 | #include "hostap_wlan.h" | 5 | #include "hostap_wlan.h" |
| 5 | #include "hostap.h" | 6 | #include "hostap.h" |
| 6 | #include "hostap_ap.h" | 7 | #include "hostap_ap.h" |
diff --git a/drivers/net/wireless/hostap/hostap_ioctl.c b/drivers/net/wireless/hostap/hostap_ioctl.c index 3f2bda881a4f..9419cebca8a5 100644 --- a/drivers/net/wireless/hostap/hostap_ioctl.c +++ b/drivers/net/wireless/hostap/hostap_ioctl.c | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | /* ioctl() (mostly Linux Wireless Extensions) routines for Host AP driver */ | 1 | /* ioctl() (mostly Linux Wireless Extensions) routines for Host AP driver */ |
| 2 | 2 | ||
| 3 | #include <linux/types.h> | 3 | #include <linux/types.h> |
| 4 | #include <linux/sched.h> | ||
| 4 | #include <linux/ethtool.h> | 5 | #include <linux/ethtool.h> |
| 5 | #include <linux/if_arp.h> | 6 | #include <linux/if_arp.h> |
| 6 | #include <net/lib80211.h> | 7 | #include <net/lib80211.h> |
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c index 0d30a9e2d3df..a6ca536e44f8 100644 --- a/drivers/net/wireless/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/ipw2x00/ipw2200.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | 30 | ||
| 31 | ******************************************************************************/ | 31 | ******************************************************************************/ |
| 32 | 32 | ||
| 33 | #include <linux/sched.h> | ||
| 33 | #include "ipw2200.h" | 34 | #include "ipw2200.h" |
| 34 | 35 | ||
| 35 | 36 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 231c833f6469..f059b49dc691 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #include <linux/pci.h> | 30 | #include <linux/pci.h> |
| 31 | #include <linux/dma-mapping.h> | 31 | #include <linux/dma-mapping.h> |
| 32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| 33 | #include <linux/sched.h> | ||
| 33 | #include <linux/skbuff.h> | 34 | #include <linux/skbuff.h> |
| 34 | #include <linux/netdevice.h> | 35 | #include <linux/netdevice.h> |
| 35 | #include <linux/wireless.h> | 36 | #include <linux/wireless.h> |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index a22a0501c190..6f703a041847 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | #include <linux/pci.h> | 30 | #include <linux/pci.h> |
| 31 | #include <linux/dma-mapping.h> | 31 | #include <linux/dma-mapping.h> |
| 32 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| 33 | #include <linux/sched.h> | ||
| 33 | #include <linux/skbuff.h> | 34 | #include <linux/skbuff.h> |
| 34 | #include <linux/netdevice.h> | 35 | #include <linux/netdevice.h> |
| 35 | #include <linux/wireless.h> | 36 | #include <linux/wireless.h> |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 524e7e4c51d1..6e6f516ba404 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #include <linux/pci.h> | 29 | #include <linux/pci.h> |
| 30 | #include <linux/dma-mapping.h> | 30 | #include <linux/dma-mapping.h> |
| 31 | #include <linux/delay.h> | 31 | #include <linux/delay.h> |
| 32 | #include <linux/sched.h> | ||
| 32 | #include <linux/skbuff.h> | 33 | #include <linux/skbuff.h> |
| 33 | #include <linux/netdevice.h> | 34 | #include <linux/netdevice.h> |
| 34 | #include <linux/wireless.h> | 35 | #include <linux/wireless.h> |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 877af443aac0..921dc4a26fe2 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/pci.h> | 33 | #include <linux/pci.h> |
| 34 | #include <linux/dma-mapping.h> | 34 | #include <linux/dma-mapping.h> |
| 35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
| 36 | #include <linux/sched.h> | ||
| 36 | #include <linux/skbuff.h> | 37 | #include <linux/skbuff.h> |
| 37 | #include <linux/netdevice.h> | 38 | #include <linux/netdevice.h> |
| 38 | #include <linux/wireless.h> | 39 | #include <linux/wireless.h> |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 484d5c1a7312..2dc928755454 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
| 30 | #include <linux/module.h> | 30 | #include <linux/module.h> |
| 31 | #include <linux/etherdevice.h> | 31 | #include <linux/etherdevice.h> |
| 32 | #include <linux/sched.h> | ||
| 32 | #include <net/mac80211.h> | 33 | #include <net/mac80211.h> |
| 33 | 34 | ||
| 34 | #include "iwl-eeprom.h" | 35 | #include "iwl-eeprom.h" |
diff --git a/drivers/net/wireless/iwlwifi/iwl-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-hcmd.c index 532c8d6cd8da..a6856daf14cb 100644 --- a/drivers/net/wireless/iwlwifi/iwl-hcmd.c +++ b/drivers/net/wireless/iwlwifi/iwl-hcmd.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | 28 | ||
| 29 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
| 30 | #include <linux/module.h> | 30 | #include <linux/module.h> |
| 31 | #include <linux/sched.h> | ||
| 31 | #include <net/mac80211.h> | 32 | #include <net/mac80211.h> |
| 32 | 33 | ||
| 33 | #include "iwl-dev.h" /* FIXME: remove */ | 34 | #include "iwl-dev.h" /* FIXME: remove */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index c18907544701..fb9bcfa6d947 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
| @@ -28,6 +28,7 @@ | |||
| 28 | *****************************************************************************/ | 28 | *****************************************************************************/ |
| 29 | 29 | ||
| 30 | #include <linux/etherdevice.h> | 30 | #include <linux/etherdevice.h> |
| 31 | #include <linux/sched.h> | ||
| 31 | #include <net/mac80211.h> | 32 | #include <net/mac80211.h> |
| 32 | #include "iwl-eeprom.h" | 33 | #include "iwl-eeprom.h" |
| 33 | #include "iwl-dev.h" | 34 | #include "iwl-dev.h" |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 837a193221cf..d00a80334095 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | #include <linux/pci.h> | 33 | #include <linux/pci.h> |
| 34 | #include <linux/dma-mapping.h> | 34 | #include <linux/dma-mapping.h> |
| 35 | #include <linux/delay.h> | 35 | #include <linux/delay.h> |
| 36 | #include <linux/sched.h> | ||
| 36 | #include <linux/skbuff.h> | 37 | #include <linux/skbuff.h> |
| 37 | #include <linux/netdevice.h> | 38 | #include <linux/netdevice.h> |
| 38 | #include <linux/wireless.h> | 39 | #include <linux/wireless.h> |
diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c index a56a2b0ac99a..f3c55658225b 100644 --- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c +++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | 23 | ||
| 24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
| 25 | #include <linux/netdevice.h> | 25 | #include <linux/netdevice.h> |
| 26 | #include <linux/sched.h> | ||
| 26 | #include <linux/etherdevice.h> | 27 | #include <linux/etherdevice.h> |
| 27 | #include <linux/wireless.h> | 28 | #include <linux/wireless.h> |
| 28 | #include <linux/ieee80211.h> | 29 | #include <linux/ieee80211.h> |
diff --git a/drivers/net/wireless/iwmc3200wifi/commands.c b/drivers/net/wireless/iwmc3200wifi/commands.c index 23b52fa2605f..84158b6d35d8 100644 --- a/drivers/net/wireless/iwmc3200wifi/commands.c +++ b/drivers/net/wireless/iwmc3200wifi/commands.c | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | #include <linux/wireless.h> | 40 | #include <linux/wireless.h> |
| 41 | #include <linux/etherdevice.h> | 41 | #include <linux/etherdevice.h> |
| 42 | #include <linux/ieee80211.h> | 42 | #include <linux/ieee80211.h> |
| 43 | #include <linux/sched.h> | ||
| 43 | 44 | ||
| 44 | #include "iwm.h" | 45 | #include "iwm.h" |
| 45 | #include "bus.h" | 46 | #include "bus.h" |
diff --git a/drivers/net/wireless/iwmc3200wifi/main.c b/drivers/net/wireless/iwmc3200wifi/main.c index d668e4756324..222eb2cf1b30 100644 --- a/drivers/net/wireless/iwmc3200wifi/main.c +++ b/drivers/net/wireless/iwmc3200wifi/main.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | 38 | ||
| 39 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
| 40 | #include <linux/netdevice.h> | 40 | #include <linux/netdevice.h> |
| 41 | #include <linux/sched.h> | ||
| 41 | #include <linux/ieee80211.h> | 42 | #include <linux/ieee80211.h> |
| 42 | #include <linux/wireless.h> | 43 | #include <linux/wireless.h> |
| 43 | 44 | ||
diff --git a/drivers/net/wireless/iwmc3200wifi/rx.c b/drivers/net/wireless/iwmc3200wifi/rx.c index 40dbcbc16593..771a301003c9 100644 --- a/drivers/net/wireless/iwmc3200wifi/rx.c +++ b/drivers/net/wireless/iwmc3200wifi/rx.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | 38 | ||
| 39 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
| 40 | #include <linux/netdevice.h> | 40 | #include <linux/netdevice.h> |
| 41 | #include <linux/sched.h> | ||
| 41 | #include <linux/etherdevice.h> | 42 | #include <linux/etherdevice.h> |
| 42 | #include <linux/wireless.h> | 43 | #include <linux/wireless.h> |
| 43 | #include <linux/ieee80211.h> | 44 | #include <linux/ieee80211.h> |
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c index 685098148e10..0a324dcd264c 100644 --- a/drivers/net/wireless/libertas/cmd.c +++ b/drivers/net/wireless/libertas/cmd.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include <net/iw_handler.h> | 6 | #include <net/iw_handler.h> |
| 7 | #include <net/lib80211.h> | 7 | #include <net/lib80211.h> |
| 8 | #include <linux/kfifo.h> | 8 | #include <linux/kfifo.h> |
| 9 | #include <linux/sched.h> | ||
| 9 | #include "host.h" | 10 | #include "host.h" |
| 10 | #include "hostcmd.h" | 11 | #include "hostcmd.h" |
| 11 | #include "decl.h" | 12 | #include "decl.h" |
diff --git a/drivers/net/wireless/libertas/tx.c b/drivers/net/wireless/libertas/tx.c index 4c018f7a0a8d..8c3766a6e8e7 100644 --- a/drivers/net/wireless/libertas/tx.c +++ b/drivers/net/wireless/libertas/tx.c | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | */ | 3 | */ |
| 4 | #include <linux/netdevice.h> | 4 | #include <linux/netdevice.h> |
| 5 | #include <linux/etherdevice.h> | 5 | #include <linux/etherdevice.h> |
| 6 | #include <linux/sched.h> | ||
| 6 | 7 | ||
| 7 | #include "hostcmd.h" | 8 | #include "hostcmd.h" |
| 8 | #include "radiotap.h" | 9 | #include "radiotap.h" |
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index 4c97c6ad6f5d..bc08464d8323 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | * | 19 | * |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <linux/capability.h> | ||
| 22 | #include <linux/module.h> | 23 | #include <linux/module.h> |
| 23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
| 24 | #include <linux/if_arp.h> | 25 | #include <linux/if_arp.h> |
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index e26d7b3ceab5..2505be56ae39 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | #include <linux/netdevice.h> | 23 | #include <linux/netdevice.h> |
| 24 | #include <linux/ethtool.h> | 24 | #include <linux/ethtool.h> |
| 25 | #include <linux/pci.h> | 25 | #include <linux/pci.h> |
| 26 | #include <linux/sched.h> | ||
| 26 | #include <linux/etherdevice.h> | 27 | #include <linux/etherdevice.h> |
| 27 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
| 28 | #include <linux/if_arp.h> | 29 | #include <linux/if_arp.h> |
diff --git a/drivers/net/wireless/prism54/islpci_mgt.c b/drivers/net/wireless/prism54/islpci_mgt.c index f7c677e2094d..69d2f882fd06 100644 --- a/drivers/net/wireless/prism54/islpci_mgt.c +++ b/drivers/net/wireless/prism54/islpci_mgt.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | #include <linux/netdevice.h> | 20 | #include <linux/netdevice.h> |
| 21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
| 22 | #include <linux/pci.h> | 22 | #include <linux/pci.h> |
| 23 | #include <linux/sched.h> | ||
| 23 | 24 | ||
| 24 | #include <asm/io.h> | 25 | #include <asm/io.h> |
| 25 | #include <asm/system.h> | 26 | #include <asm/system.h> |
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 88cd58eb3b9f..1c88c2ea59aa 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c | |||
| @@ -2879,7 +2879,7 @@ static int write_essid(struct file *file, const char __user *buffer, | |||
| 2879 | unsigned long count, void *data) | 2879 | unsigned long count, void *data) |
| 2880 | { | 2880 | { |
| 2881 | static char proc_essid[33]; | 2881 | static char proc_essid[33]; |
| 2882 | int len = count; | 2882 | unsigned int len = count; |
| 2883 | 2883 | ||
| 2884 | if (len > 32) | 2884 | if (len > 32) |
| 2885 | len = 32; | 2885 | len = 32; |
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c index 7b3ee8c2eaef..68bc9bb1dbf9 100644 --- a/drivers/net/wireless/rt2x00/rt2x00debug.c +++ b/drivers/net/wireless/rt2x00/rt2x00debug.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
| 28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
| 29 | #include <linux/poll.h> | 29 | #include <linux/poll.h> |
| 30 | #include <linux/sched.h> | ||
| 30 | #include <linux/uaccess.h> | 31 | #include <linux/uaccess.h> |
| 31 | 32 | ||
| 32 | #include "rt2x00.h" | 33 | #include "rt2x00.h" |
