X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Fe1000%2Fe1000_main.c;h=311ca266bd77ac62558f89069797d200acb5d668;hb=b45f87681e2851f0c991a589989daa6a4a351565;hp=0991648c53dc2f5bc0c1d5aee568c3a0a007d6e5;hpb=1f1519ef597ae4628dbd47244f0f68d700231523;p=pandora-kernel.git diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 0991648c53dc..311ca266bd77 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -47,12 +47,6 @@ static const char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation * Macro expands to... * {PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)} */ -#ifdef CONFIG_E1000E_ENABLED - #define PCIE(x) -#else - #define PCIE(x) x, -#endif - static struct pci_device_id e1000_pci_tbl[] = { INTEL_E1000_ETHERNET_DEVICE(0x1000), INTEL_E1000_ETHERNET_DEVICE(0x1001), @@ -79,14 +73,6 @@ static struct pci_device_id e1000_pci_tbl[] = { INTEL_E1000_ETHERNET_DEVICE(0x1026), INTEL_E1000_ETHERNET_DEVICE(0x1027), INTEL_E1000_ETHERNET_DEVICE(0x1028), -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x1049)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x104A)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x104B)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x104C)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x104D)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x105E)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x105F)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x1060)) INTEL_E1000_ETHERNET_DEVICE(0x1075), INTEL_E1000_ETHERNET_DEVICE(0x1076), INTEL_E1000_ETHERNET_DEVICE(0x1077), @@ -95,28 +81,9 @@ PCIE( INTEL_E1000_ETHERNET_DEVICE(0x1060)) INTEL_E1000_ETHERNET_DEVICE(0x107A), INTEL_E1000_ETHERNET_DEVICE(0x107B), INTEL_E1000_ETHERNET_DEVICE(0x107C), -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x107D)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x107E)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x107F)) INTEL_E1000_ETHERNET_DEVICE(0x108A), -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x108B)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x108C)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x1096)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x1098)) INTEL_E1000_ETHERNET_DEVICE(0x1099), -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x109A)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10A4)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10A5)) INTEL_E1000_ETHERNET_DEVICE(0x10B5), -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10B9)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10BA)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10BB)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10BC)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10C4)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10C5)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10D5)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10D9)) -PCIE( INTEL_E1000_ETHERNET_DEVICE(0x10DA)) /* required last entry */ {0,} }; @@ -127,7 +94,7 @@ int e1000_up(struct e1000_adapter *adapter); void e1000_down(struct e1000_adapter *adapter); void e1000_reinit_locked(struct e1000_adapter *adapter); void e1000_reset(struct e1000_adapter *adapter); -int e1000_set_spd_dplx(struct e1000_adapter *adapter, uint16_t spddplx); +int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx); int e1000_setup_all_tx_resources(struct e1000_adapter *adapter); int e1000_setup_all_rx_resources(struct e1000_adapter *adapter); void e1000_free_all_tx_resources(struct e1000_adapter *adapter); @@ -169,21 +136,21 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu); static int e1000_set_mac(struct net_device *netdev, void *p); static irqreturn_t e1000_intr(int irq, void *data); static irqreturn_t e1000_intr_msi(int irq, void *data); -static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter, - struct e1000_tx_ring *tx_ring); +static bool e1000_clean_tx_irq(struct e1000_adapter *adapter, + struct e1000_tx_ring *tx_ring); #ifdef CONFIG_E1000_NAPI static int e1000_clean(struct napi_struct *napi, int budget); -static boolean_t e1000_clean_rx_irq(struct e1000_adapter *adapter, - struct e1000_rx_ring *rx_ring, - int *work_done, int work_to_do); -static boolean_t e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, - struct e1000_rx_ring *rx_ring, - int *work_done, int work_to_do); +static bool e1000_clean_rx_irq(struct e1000_adapter *adapter, + struct e1000_rx_ring *rx_ring, + int *work_done, int work_to_do); +static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, + struct e1000_rx_ring *rx_ring, + int *work_done, int work_to_do); #else -static boolean_t e1000_clean_rx_irq(struct e1000_adapter *adapter, - struct e1000_rx_ring *rx_ring); -static boolean_t e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, - struct e1000_rx_ring *rx_ring); +static bool e1000_clean_rx_irq(struct e1000_adapter *adapter, + struct e1000_rx_ring *rx_ring); +static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, + struct e1000_rx_ring *rx_ring); #endif static void e1000_alloc_rx_buffers(struct e1000_adapter *adapter, struct e1000_rx_ring *rx_ring, @@ -203,8 +170,8 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter, struct sk_buff *skb); static void e1000_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp); -static void e1000_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid); -static void e1000_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid); +static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); +static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); static void e1000_restore_vlan(struct e1000_adapter *adapter); static int e1000_suspend(struct pci_dev *pdev, pm_message_t state); @@ -347,7 +314,6 @@ static void e1000_free_irq(struct e1000_adapter *adapter) static void e1000_irq_disable(struct e1000_adapter *adapter) { - atomic_inc(&adapter->irq_sem); E1000_WRITE_REG(&adapter->hw, IMC, ~0); E1000_WRITE_FLUSH(&adapter->hw); synchronize_irq(adapter->pdev->irq); @@ -361,18 +327,16 @@ e1000_irq_disable(struct e1000_adapter *adapter) static void e1000_irq_enable(struct e1000_adapter *adapter) { - if (likely(atomic_dec_and_test(&adapter->irq_sem))) { - E1000_WRITE_REG(&adapter->hw, IMS, IMS_ENABLE_MASK); - E1000_WRITE_FLUSH(&adapter->hw); - } + E1000_WRITE_REG(&adapter->hw, IMS, IMS_ENABLE_MASK); + E1000_WRITE_FLUSH(&adapter->hw); } static void e1000_update_mng_vlan(struct e1000_adapter *adapter) { struct net_device *netdev = adapter->netdev; - uint16_t vid = adapter->hw.mng_cookie.vlan_id; - uint16_t old_vid = adapter->mng_vlan_id; + u16 vid = adapter->hw.mng_cookie.vlan_id; + u16 old_vid = adapter->mng_vlan_id; if (adapter->vlgrp) { if (!vlan_group_get_device(adapter->vlgrp, vid)) { if (adapter->hw.mng_cookie.status & @@ -382,7 +346,7 @@ e1000_update_mng_vlan(struct e1000_adapter *adapter) } else adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; - if ((old_vid != (uint16_t)E1000_MNG_VLAN_NONE) && + if ((old_vid != (u16)E1000_MNG_VLAN_NONE) && (vid != old_vid) && !vlan_group_get_device(adapter->vlgrp, old_vid)) e1000_vlan_rx_kill_vid(netdev, old_vid); @@ -405,8 +369,8 @@ e1000_update_mng_vlan(struct e1000_adapter *adapter) static void e1000_release_hw_control(struct e1000_adapter *adapter) { - uint32_t ctrl_ext; - uint32_t swsm; + u32 ctrl_ext; + u32 swsm; /* Let firmware taken over control of h/w */ switch (adapter->hw.mac_type) { @@ -442,8 +406,8 @@ e1000_release_hw_control(struct e1000_adapter *adapter) static void e1000_get_hw_control(struct e1000_adapter *adapter) { - uint32_t ctrl_ext; - uint32_t swsm; + u32 ctrl_ext; + u32 swsm; /* Let firmware know the driver has taken over */ switch (adapter->hw.mac_type) { @@ -469,7 +433,7 @@ static void e1000_init_manageability(struct e1000_adapter *adapter) { if (adapter->en_mng_pt) { - uint32_t manc = E1000_READ_REG(&adapter->hw, MANC); + u32 manc = E1000_READ_REG(&adapter->hw, MANC); /* disable hardware interception of ARP */ manc &= ~(E1000_MANC_ARP_EN); @@ -478,7 +442,7 @@ e1000_init_manageability(struct e1000_adapter *adapter) /* this will probably generate destination unreachable messages * from the host OS, but the packets will be handled on SMBUS */ if (adapter->hw.has_manc2h) { - uint32_t manc2h = E1000_READ_REG(&adapter->hw, MANC2H); + u32 manc2h = E1000_READ_REG(&adapter->hw, MANC2H); manc |= E1000_MANC_EN_MNG2HOST; #define E1000_MNG2HOST_PORT_623 (1 << 5) @@ -496,7 +460,7 @@ static void e1000_release_manageability(struct e1000_adapter *adapter) { if (adapter->en_mng_pt) { - uint32_t manc = E1000_READ_REG(&adapter->hw, MANC); + u32 manc = E1000_READ_REG(&adapter->hw, MANC); /* re-enable hardware interception of ARP */ manc |= E1000_MANC_ARP_EN; @@ -569,7 +533,7 @@ int e1000_up(struct e1000_adapter *adapter) void e1000_power_up_phy(struct e1000_adapter *adapter) { - uint16_t mii_reg = 0; + u16 mii_reg = 0; /* Just clear the power down bit to wake the phy back up */ if (adapter->hw.media_type == e1000_media_type_copper) { @@ -584,13 +548,13 @@ void e1000_power_up_phy(struct e1000_adapter *adapter) static void e1000_power_down_phy(struct e1000_adapter *adapter) { /* Power down the PHY so no link is implied when interface is down * - * The PHY cannot be powered down if any of the following is TRUE * + * The PHY cannot be powered down if any of the following is true * * (a) WoL is enabled * (b) AMT is active * (c) SoL/IDER session is active */ if (!adapter->wol && adapter->hw.mac_type >= e1000_82540 && adapter->hw.media_type == e1000_media_type_copper) { - uint16_t mii_reg = 0; + u16 mii_reg = 0; switch (adapter->hw.mac_type) { case e1000_82540: @@ -638,7 +602,6 @@ e1000_down(struct e1000_adapter *adapter) #ifdef CONFIG_E1000_NAPI napi_disable(&adapter->napi); - atomic_set(&adapter->irq_sem, 0); #endif e1000_irq_disable(adapter); @@ -671,9 +634,9 @@ e1000_reinit_locked(struct e1000_adapter *adapter) void e1000_reset(struct e1000_adapter *adapter) { - uint32_t pba = 0, tx_space, min_tx_space, min_rx_space; - uint16_t fc_high_water_mark = E1000_FC_HIGH_DIFF; - boolean_t legacy_pba_adjust = FALSE; + u32 pba = 0, tx_space, min_tx_space, min_rx_space; + u16 fc_high_water_mark = E1000_FC_HIGH_DIFF; + bool legacy_pba_adjust = false; /* Repartition Pba for greater than 9k mtu * To take effect CTRL.RST is required. @@ -687,7 +650,7 @@ e1000_reset(struct e1000_adapter *adapter) case e1000_82540: case e1000_82541: case e1000_82541_rev_2: - legacy_pba_adjust = TRUE; + legacy_pba_adjust = true; pba = E1000_PBA_48K; break; case e1000_82545: @@ -698,7 +661,7 @@ e1000_reset(struct e1000_adapter *adapter) break; case e1000_82547: case e1000_82547_rev_2: - legacy_pba_adjust = TRUE; + legacy_pba_adjust = true; pba = E1000_PBA_30K; break; case e1000_82571: @@ -716,7 +679,7 @@ e1000_reset(struct e1000_adapter *adapter) break; } - if (legacy_pba_adjust == TRUE) { + if (legacy_pba_adjust) { if (adapter->netdev->mtu > E1000_RXBUFFER_8192) pba -= 8; /* allocate more FIFO for Tx */ @@ -819,7 +782,7 @@ e1000_reset(struct e1000_adapter *adapter) adapter->hw.mac_type <= e1000_82547_rev_2 && adapter->hw.autoneg == 1 && adapter->hw.autoneg_advertised == ADVERTISE_1000_FULL) { - uint32_t ctrl = E1000_READ_REG(&adapter->hw, CTRL); + u32 ctrl = E1000_READ_REG(&adapter->hw, CTRL); /* clear phy power management bit if we are in gig only mode, * which if enabled will attempt negotiation to 100Mb, which * can cause a loss of link at power off or driver unload */ @@ -836,7 +799,7 @@ e1000_reset(struct e1000_adapter *adapter) if (!adapter->smart_power_down && (adapter->hw.mac_type == e1000_82571 || adapter->hw.mac_type == e1000_82572)) { - uint16_t phy_data = 0; + u16 phy_data = 0; /* speed up time to link by disabling smart power down, ignore * the return value of this function because there is nothing * different we would do if it failed */ @@ -930,8 +893,8 @@ e1000_probe(struct pci_dev *pdev, static int cards_found = 0; static int global_quad_port_a = 0; /* global ksp3 port a indication */ int i, err, pci_using_dac; - uint16_t eeprom_data = 0; - uint16_t eeprom_apme_mask = E1000_EEPROM_APME; + u16 eeprom_data = 0; + u16 eeprom_apme_mask = E1000_EEPROM_APME; DECLARE_MAC_BUF(mac); if ((err = pci_enable_device(pdev))) @@ -1366,15 +1329,15 @@ e1000_sw_init(struct e1000_adapter *adapter) e1000_set_media_type(hw); - hw->wait_autoneg_complete = FALSE; - hw->tbi_compatibility_en = TRUE; - hw->adaptive_ifs = TRUE; + hw->wait_autoneg_complete = false; + hw->tbi_compatibility_en = true; + hw->adaptive_ifs = true; /* Copper options */ if (hw->media_type == e1000_media_type_copper) { hw->mdix = AUTO_ALL_MODES; - hw->disable_polarity_correction = FALSE; + hw->disable_polarity_correction = false; hw->master_slave = E1000_MASTER_SLAVE; } @@ -1396,7 +1359,6 @@ e1000_sw_init(struct e1000_adapter *adapter) #endif /* Explicitly disable IRQ since the NIC can be in any state. */ - atomic_set(&adapter->irq_sem, 0); e1000_irq_disable(adapter); spin_lock_init(&adapter->stats_lock); @@ -1576,7 +1538,7 @@ e1000_close(struct net_device *netdev) * @start: address of beginning of memory * @len: length of memory **/ -static boolean_t +static bool e1000_check_64k_bound(struct e1000_adapter *adapter, void *start, unsigned long len) { @@ -1587,10 +1549,10 @@ e1000_check_64k_bound(struct e1000_adapter *adapter, * write location to cross 64k boundary due to errata 23 */ if (adapter->hw.mac_type == e1000_82545 || adapter->hw.mac_type == e1000_82546) { - return ((begin ^ (end - 1)) >> 16) != 0 ? FALSE : TRUE; + return ((begin ^ (end - 1)) >> 16) != 0 ? false : true; } - return TRUE; + return true; } /** @@ -1707,10 +1669,10 @@ e1000_setup_all_tx_resources(struct e1000_adapter *adapter) static void e1000_configure_tx(struct e1000_adapter *adapter) { - uint64_t tdba; + u64 tdba; struct e1000_hw *hw = &adapter->hw; - uint32_t tdlen, tctl, tipg, tarc; - uint32_t ipgr1, ipgr2; + u32 tdlen, tctl, tipg, tarc; + u32 ipgr1, ipgr2; /* Setup the HW Tx Head and Tail descriptor pointers */ @@ -1952,10 +1914,10 @@ e1000_setup_all_rx_resources(struct e1000_adapter *adapter) static void e1000_setup_rctl(struct e1000_adapter *adapter) { - uint32_t rctl, rfctl; - uint32_t psrctl = 0; + u32 rctl, rfctl; + u32 psrctl = 0; #ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT - uint32_t pages = 0; + u32 pages = 0; #endif rctl = E1000_READ_REG(&adapter->hw, RCTL); @@ -2070,9 +2032,9 @@ e1000_setup_rctl(struct e1000_adapter *adapter) static void e1000_configure_rx(struct e1000_adapter *adapter) { - uint64_t rdba; + u64 rdba; struct e1000_hw *hw = &adapter->hw; - uint32_t rdlen, rctl, rxcsum, ctrl_ext; + u32 rdlen, rctl, rxcsum, ctrl_ext; if (adapter->rx_ps_pages) { /* this is a 32 byte descriptor */ @@ -2133,7 +2095,7 @@ e1000_configure_rx(struct e1000_adapter *adapter) /* Enable 82543 Receive Checksum Offload for TCP and UDP */ if (hw->mac_type >= e1000_82543) { rxcsum = E1000_READ_REG(hw, RXCSUM); - if (adapter->rx_csum == TRUE) { + if (adapter->rx_csum) { rxcsum |= E1000_RXCSUM_TUOFL; /* Enable 82571 IPv4 payload checksum for UDP fragments @@ -2392,7 +2354,7 @@ static void e1000_enter_82542_rst(struct e1000_adapter *adapter) { struct net_device *netdev = adapter->netdev; - uint32_t rctl; + u32 rctl; e1000_pci_clear_mwi(&adapter->hw); @@ -2410,7 +2372,7 @@ static void e1000_leave_82542_rst(struct e1000_adapter *adapter) { struct net_device *netdev = adapter->netdev; - uint32_t rctl; + u32 rctl; rctl = E1000_READ_REG(&adapter->hw, RCTL); rctl &= ~E1000_RCTL_RST; @@ -2495,8 +2457,8 @@ e1000_set_rx_mode(struct net_device *netdev) struct e1000_hw *hw = &adapter->hw; struct dev_addr_list *uc_ptr; struct dev_addr_list *mc_ptr; - uint32_t rctl; - uint32_t hash_value; + u32 rctl; + u32 hash_value; int i, rar_entries = E1000_RAR_ENTRIES; int mta_reg_count = (hw->mac_type == e1000_ich8lan) ? E1000_NUM_MTA_REGISTERS_ICH8LAN : @@ -2600,7 +2562,7 @@ e1000_82547_tx_fifo_stall(unsigned long data) { struct e1000_adapter *adapter = (struct e1000_adapter *) data; struct net_device *netdev = adapter->netdev; - uint32_t tctl; + u32 tctl; if (atomic_read(&adapter->tx_fifo_stall)) { if ((E1000_READ_REG(&adapter->hw, TDT) == @@ -2642,8 +2604,8 @@ e1000_watchdog(unsigned long data) struct e1000_adapter *adapter = (struct e1000_adapter *) data; struct net_device *netdev = adapter->netdev; struct e1000_tx_ring *txdr = adapter->tx_ring; - uint32_t link, tctl; - int32_t ret_val; + u32 link, tctl; + s32 ret_val; ret_val = e1000_check_for_link(&adapter->hw); if ((ret_val == E1000_ERR_PHY) && @@ -2668,8 +2630,8 @@ e1000_watchdog(unsigned long data) if (link) { if (!netif_carrier_ok(netdev)) { - uint32_t ctrl; - boolean_t txb2b = 1; + u32 ctrl; + bool txb2b = true; e1000_get_speed_and_duplex(&adapter->hw, &adapter->link_speed, &adapter->link_duplex); @@ -2691,12 +2653,12 @@ e1000_watchdog(unsigned long data) adapter->tx_timeout_factor = 1; switch (adapter->link_speed) { case SPEED_10: - txb2b = 0; + txb2b = false; netdev->tx_queue_len = 10; adapter->tx_timeout_factor = 8; break; case SPEED_100: - txb2b = 0; + txb2b = false; netdev->tx_queue_len = 100; /* maybe add some timeout factor ? */ break; @@ -2704,8 +2666,8 @@ e1000_watchdog(unsigned long data) if ((adapter->hw.mac_type == e1000_82571 || adapter->hw.mac_type == e1000_82572) && - txb2b == 0) { - uint32_t tarc0; + !txb2b) { + u32 tarc0; tarc0 = E1000_READ_REG(&adapter->hw, TARC0); tarc0 &= ~(1 << 21); E1000_WRITE_REG(&adapter->hw, TARC0, tarc0); @@ -2747,7 +2709,7 @@ e1000_watchdog(unsigned long data) /* make sure the receive unit is started */ if (adapter->hw.rx_needs_kicking) { struct e1000_hw *hw = &adapter->hw; - uint32_t rctl = E1000_READ_REG(hw, RCTL); + u32 rctl = E1000_READ_REG(hw, RCTL); E1000_WRITE_REG(hw, RCTL, rctl | E1000_RCTL_EN); } } @@ -2802,7 +2764,7 @@ e1000_watchdog(unsigned long data) E1000_WRITE_REG(&adapter->hw, ICS, E1000_ICS_RXDMT0); /* Force detection of hung controller every watchdog period */ - adapter->detect_tx_hung = TRUE; + adapter->detect_tx_hung = true; /* With 82571 controllers, LAA may be overwritten due to controller * reset from the other port. Set the appropriate LAA in RAR[0] */ @@ -2837,7 +2799,7 @@ enum latency_range { * @bytes: the number of bytes during this measurement interval **/ static unsigned int e1000_update_itr(struct e1000_adapter *adapter, - uint16_t itr_setting, + u16 itr_setting, int packets, int bytes) { @@ -2889,8 +2851,8 @@ update_itr_done: static void e1000_set_itr(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - uint16_t current_itr; - uint32_t new_itr = adapter->itr; + u16 current_itr; + u32 new_itr = adapter->itr; if (unlikely(hw->mac_type < e1000_82540)) return; @@ -2964,9 +2926,9 @@ e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, struct e1000_context_desc *context_desc; struct e1000_buffer *buffer_info; unsigned int i; - uint32_t cmd_length = 0; - uint16_t ipcse = 0, tucse, mss; - uint8_t ipcss, ipcso, tucss, tucso, hdr_len; + u32 cmd_length = 0; + u16 ipcse = 0, tucse, mss; + u8 ipcss, ipcso, tucss, tucso, hdr_len; int err; if (skb_is_gso(skb)) { @@ -3025,19 +2987,19 @@ e1000_tso(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, if (++i == tx_ring->count) i = 0; tx_ring->next_to_use = i; - return TRUE; + return true; } - return FALSE; + return false; } -static boolean_t +static bool e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, struct sk_buff *skb) { struct e1000_context_desc *context_desc; struct e1000_buffer *buffer_info; unsigned int i; - uint8_t css; + u8 css; if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) { css = skb_transport_offset(skb); @@ -3060,10 +3022,10 @@ e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, if (unlikely(++i == tx_ring->count)) i = 0; tx_ring->next_to_use = i; - return TRUE; + return true; } - return FALSE; + return false; } #define E1000_MAX_TXD_PWR 12 @@ -3182,7 +3144,7 @@ e1000_tx_queue(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, { struct e1000_tx_desc *tx_desc = NULL; struct e1000_buffer *buffer_info; - uint32_t txd_upper = 0, txd_lower = E1000_TXD_CMD_IFCS; + u32 txd_upper = 0, txd_lower = E1000_TXD_CMD_IFCS; unsigned int i; if (likely(tx_flags & E1000_TX_FLAGS_TSO)) { @@ -3246,8 +3208,8 @@ e1000_tx_queue(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring, static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter, struct sk_buff *skb) { - uint32_t fifo_space = adapter->tx_fifo_size - adapter->tx_fifo_head; - uint32_t skb_fifo_len = skb->len + E1000_FIFO_HDR; + u32 fifo_space = adapter->tx_fifo_size - adapter->tx_fifo_head; + u32 skb_fifo_len = skb->len + E1000_FIFO_HDR; skb_fifo_len = ALIGN(skb_fifo_len, E1000_FIFO_HDR); @@ -3274,7 +3236,7 @@ static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter, struct sk_buff *skb) { struct e1000_hw *hw = &adapter->hw; - uint16_t length, offset; + u16 length, offset; if (vlan_tx_tag_present(skb)) { if (!((vlan_tx_tag_get(skb) == adapter->hw.mng_cookie.vlan_id) && ( adapter->hw.mng_cookie.status & @@ -3285,17 +3247,17 @@ e1000_transfer_dhcp_info(struct e1000_adapter *adapter, struct sk_buff *skb) struct ethhdr *eth = (struct ethhdr *) skb->data; if ((htons(ETH_P_IP) == eth->h_proto)) { const struct iphdr *ip = - (struct iphdr *)((uint8_t *)skb->data+14); + (struct iphdr *)((u8 *)skb->data+14); if (IPPROTO_UDP == ip->protocol) { struct udphdr *udp = - (struct udphdr *)((uint8_t *)ip + + (struct udphdr *)((u8 *)ip + (ip->ihl << 2)); if (ntohs(udp->dest) == 67) { - offset = (uint8_t *)udp + 8 - skb->data; + offset = (u8 *)udp + 8 - skb->data; length = skb->len - offset; return e1000_mng_write_dhcp_info(hw, - (uint8_t *)udp + 8, + (u8 *)udp + 8, length); } } @@ -3375,7 +3337,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev) * overrun the FIFO, adjust the max buffer len if mss * drops. */ if (mss) { - uint8_t hdr_len; + u8 hdr_len; max_per_txd = min(mss << 2, max_per_txd); max_txd_pwr = fls(max_per_txd) - 1; @@ -3562,7 +3524,7 @@ e1000_change_mtu(struct net_device *netdev, int new_mtu) { struct e1000_adapter *adapter = netdev_priv(netdev); int max_frame = new_mtu + ENET_HEADER_SIZE + ETHERNET_FCS_SIZE; - uint16_t eeprom_data = 0; + u16 eeprom_data = 0; if ((max_frame < MINIMUM_ETHERNET_FRAME_SIZE) || (max_frame > MAX_JUMBO_FRAME_SIZE)) { @@ -3657,7 +3619,7 @@ e1000_update_stats(struct e1000_adapter *adapter) struct e1000_hw *hw = &adapter->hw; struct pci_dev *pdev = adapter->pdev; unsigned long flags; - uint16_t phy_tmp; + u16 phy_tmp; #define PHY_IDLE_ERROR_COUNT_MASK 0x00FF @@ -3834,13 +3796,10 @@ e1000_intr_msi(int irq, void *data) #ifndef CONFIG_E1000_NAPI int i; #endif - uint32_t icr = E1000_READ_REG(hw, ICR); + u32 icr = E1000_READ_REG(hw, ICR); + + /* in NAPI mode read ICR disables interrupts using IAM */ -#ifdef CONFIG_E1000_NAPI - /* read ICR disables interrupts using IAM, so keep up with our - * enable/disable accounting */ - atomic_inc(&adapter->irq_sem); -#endif if (icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) { hw->get_link_status = 1; /* 80003ES2LAN workaround-- For packet buffer work-around on @@ -3849,7 +3808,7 @@ e1000_intr_msi(int irq, void *data) if (netif_carrier_ok(netdev) && (adapter->hw.mac_type == e1000_80003es2lan)) { /* disable receives */ - uint32_t rctl = E1000_READ_REG(hw, RCTL); + u32 rctl = E1000_READ_REG(hw, RCTL); E1000_WRITE_REG(hw, RCTL, rctl & ~E1000_RCTL_EN); } /* guard against interrupt when we're going down */ @@ -3896,7 +3855,7 @@ e1000_intr(int irq, void *data) struct net_device *netdev = data; struct e1000_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; - uint32_t rctl, icr = E1000_READ_REG(hw, ICR); + u32 rctl, icr = E1000_READ_REG(hw, ICR); #ifndef CONFIG_E1000_NAPI int i; #endif @@ -3910,12 +3869,8 @@ e1000_intr(int irq, void *data) !(icr & E1000_ICR_INT_ASSERTED))) return IRQ_NONE; - /* Interrupt Auto-Mask...upon reading ICR, - * interrupts are masked. No need for the - * IMC write, but it does mean we should - * account for it ASAP. */ - if (likely(hw->mac_type >= e1000_82571)) - atomic_inc(&adapter->irq_sem); + /* Interrupt Auto-Mask...upon reading ICR, interrupts are masked. No + * need for the IMC write */ #endif if (unlikely(icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC))) { @@ -3939,7 +3894,6 @@ e1000_intr(int irq, void *data) #ifdef CONFIG_E1000_NAPI if (unlikely(hw->mac_type < e1000_82571)) { /* disable interrupts, without the synchronize_irq bit */ - atomic_inc(&adapter->irq_sem); E1000_WRITE_REG(hw, IMC, ~0); E1000_WRITE_FLUSH(hw); } @@ -3964,10 +3918,8 @@ e1000_intr(int irq, void *data) * in dead lock. Writing IMC forces 82547 into * de-assertion state. */ - if (hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2) { - atomic_inc(&adapter->irq_sem); + if (hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2) E1000_WRITE_REG(hw, IMC, ~0); - } adapter->total_tx_bytes = 0; adapter->total_rx_bytes = 0; @@ -4038,7 +3990,7 @@ e1000_clean(struct napi_struct *napi, int budget) * @adapter: board private structure **/ -static boolean_t +static bool e1000_clean_tx_irq(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring) { @@ -4049,7 +4001,7 @@ e1000_clean_tx_irq(struct e1000_adapter *adapter, #ifdef CONFIG_E1000_NAPI unsigned int count = 0; #endif - boolean_t cleaned = FALSE; + bool cleaned = false; unsigned int total_tx_bytes=0, total_tx_packets=0; i = tx_ring->next_to_clean; @@ -4057,7 +4009,7 @@ e1000_clean_tx_irq(struct e1000_adapter *adapter, eop_desc = E1000_TX_DESC(*tx_ring, eop); while (eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) { - for (cleaned = FALSE; !cleaned; ) { + for (cleaned = false; !cleaned; ) { tx_desc = E1000_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; cleaned = (i == eop); @@ -4105,7 +4057,7 @@ e1000_clean_tx_irq(struct e1000_adapter *adapter, if (adapter->detect_tx_hung) { /* Detect a transmit hang in hardware, this serializes the * check with the clearing of time_stamp and movement of i */ - adapter->detect_tx_hung = FALSE; + adapter->detect_tx_hung = false; if (tx_ring->buffer_info[eop].dma && time_after(jiffies, tx_ring->buffer_info[eop].time_stamp + (adapter->tx_timeout_factor * HZ)) @@ -4154,11 +4106,11 @@ e1000_clean_tx_irq(struct e1000_adapter *adapter, static void e1000_rx_checksum(struct e1000_adapter *adapter, - uint32_t status_err, uint32_t csum, + u32 status_err, u32 csum, struct sk_buff *skb) { - uint16_t status = (uint16_t)status_err; - uint8_t errors = (uint8_t)(status_err >> 24); + u16 status = (u16)status_err; + u8 errors = (u8)(status_err >> 24); skb->ip_summed = CHECKSUM_NONE; /* 82543 or newer only */ @@ -4200,7 +4152,7 @@ e1000_rx_checksum(struct e1000_adapter *adapter, * @adapter: board private structure **/ -static boolean_t +static bool #ifdef CONFIG_E1000_NAPI e1000_clean_rx_irq(struct e1000_adapter *adapter, struct e1000_rx_ring *rx_ring, @@ -4215,11 +4167,11 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, struct e1000_rx_desc *rx_desc, *next_rxd; struct e1000_buffer *buffer_info, *next_buffer; unsigned long flags; - uint32_t length; - uint8_t last_byte; + u32 length; + u8 last_byte; unsigned int i; int cleaned_count = 0; - boolean_t cleaned = FALSE; + bool cleaned = false; unsigned int total_rx_bytes=0, total_rx_packets=0; i = rx_ring->next_to_clean; @@ -4247,7 +4199,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, next_buffer = &rx_ring->buffer_info[i]; - cleaned = TRUE; + cleaned = true; cleaned_count++; pci_unmap_single(pdev, buffer_info->dma, @@ -4316,8 +4268,8 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, /* Receive Checksum Offload */ e1000_rx_checksum(adapter, - (uint32_t)(status) | - ((uint32_t)(rx_desc->errors) << 24), + (u32)(status) | + ((u32)(rx_desc->errors) << 24), le16_to_cpu(rx_desc->csum), skb); skb->protocol = eth_type_trans(skb, netdev); @@ -4373,7 +4325,7 @@ next_desc: * @adapter: board private structure **/ -static boolean_t +static bool #ifdef CONFIG_E1000_NAPI e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, struct e1000_rx_ring *rx_ring, @@ -4391,9 +4343,9 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, struct e1000_ps_page_dma *ps_page_dma; struct sk_buff *skb; unsigned int i, j; - uint32_t length, staterr; + u32 length, staterr; int cleaned_count = 0; - boolean_t cleaned = FALSE; + bool cleaned = false; unsigned int total_rx_bytes=0, total_rx_packets=0; i = rx_ring->next_to_clean; @@ -4420,7 +4372,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, next_buffer = &rx_ring->buffer_info[i]; - cleaned = TRUE; + cleaned = true; cleaned_count++; pci_unmap_single(pdev, buffer_info->dma, buffer_info->length, @@ -4774,8 +4726,8 @@ no_buffers: static void e1000_smartspeed(struct e1000_adapter *adapter) { - uint16_t phy_status; - uint16_t phy_ctrl; + u16 phy_status; + u16 phy_ctrl; if ((adapter->hw.phy_type != e1000_phy_igp) || !adapter->hw.autoneg || !(adapter->hw.autoneg_advertised & ADVERTISE_1000_FULL)) @@ -4854,8 +4806,8 @@ e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) struct e1000_adapter *adapter = netdev_priv(netdev); struct mii_ioctl_data *data = if_mii(ifr); int retval; - uint16_t mii_reg; - uint16_t spddplx; + u16 mii_reg; + u16 spddplx; unsigned long flags; if (adapter->hw.media_type != e1000_media_type_copper) @@ -4974,11 +4926,11 @@ e1000_pcix_set_mmrbc(struct e1000_hw *hw, int mmrbc) pcix_set_mmrbc(adapter->pdev, mmrbc); } -int32_t -e1000_read_pcie_cap_reg(struct e1000_hw *hw, uint32_t reg, uint16_t *value) +s32 +e1000_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value) { struct e1000_adapter *adapter = hw->back; - uint16_t cap_offset; + u16 cap_offset; cap_offset = pci_find_capability(adapter->pdev, PCI_CAP_ID_EXP); if (!cap_offset) @@ -4990,7 +4942,7 @@ e1000_read_pcie_cap_reg(struct e1000_hw *hw, uint32_t reg, uint16_t *value) } void -e1000_io_write(struct e1000_hw *hw, unsigned long port, uint32_t value) +e1000_io_write(struct e1000_hw *hw, unsigned long port, u32 value) { outl(value, port); } @@ -4999,9 +4951,10 @@ static void e1000_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) { struct e1000_adapter *adapter = netdev_priv(netdev); - uint32_t ctrl, rctl; + u32 ctrl, rctl; - e1000_irq_disable(adapter); + if (!test_bit(__E1000_DOWN, &adapter->flags)) + e1000_irq_disable(adapter); adapter->vlgrp = grp; if (grp) { @@ -5030,7 +4983,7 @@ e1000_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) rctl &= ~E1000_RCTL_VFE; E1000_WRITE_REG(&adapter->hw, RCTL, rctl); if (adapter->mng_vlan_id != - (uint16_t)E1000_MNG_VLAN_NONE) { + (u16)E1000_MNG_VLAN_NONE) { e1000_vlan_rx_kill_vid(netdev, adapter->mng_vlan_id); adapter->mng_vlan_id = E1000_MNG_VLAN_NONE; @@ -5038,14 +4991,15 @@ e1000_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) } } - e1000_irq_enable(adapter); + if (!test_bit(__E1000_DOWN, &adapter->flags)) + e1000_irq_enable(adapter); } static void -e1000_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid) +e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) { struct e1000_adapter *adapter = netdev_priv(netdev); - uint32_t vfta, index; + u32 vfta, index; if ((adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && @@ -5059,14 +5013,16 @@ e1000_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid) } static void -e1000_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid) +e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) { struct e1000_adapter *adapter = netdev_priv(netdev); - uint32_t vfta, index; + u32 vfta, index; - e1000_irq_disable(adapter); + if (!test_bit(__E1000_DOWN, &adapter->flags)) + e1000_irq_disable(adapter); vlan_group_set_device(adapter->vlgrp, vid, NULL); - e1000_irq_enable(adapter); + if (!test_bit(__E1000_DOWN, &adapter->flags)) + e1000_irq_enable(adapter); if ((adapter->hw.mng_cookie.status & E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) && @@ -5089,7 +5045,7 @@ e1000_restore_vlan(struct e1000_adapter *adapter) e1000_vlan_rx_register(adapter->netdev, adapter->vlgrp); if (adapter->vlgrp) { - uint16_t vid; + u16 vid; for (vid = 0; vid < VLAN_GROUP_ARRAY_LEN; vid++) { if (!vlan_group_get_device(adapter->vlgrp, vid)) continue; @@ -5099,7 +5055,7 @@ e1000_restore_vlan(struct e1000_adapter *adapter) } int -e1000_set_spd_dplx(struct e1000_adapter *adapter, uint16_t spddplx) +e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx) { adapter->hw.autoneg = 0; @@ -5140,8 +5096,8 @@ e1000_suspend(struct pci_dev *pdev, pm_message_t state) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); - uint32_t ctrl, ctrl_ext, rctl, status; - uint32_t wufc = adapter->wol; + u32 ctrl, ctrl_ext, rctl, status; + u32 wufc = adapter->wol; #ifdef CONFIG_PM int retval = 0; #endif @@ -5238,7 +5194,7 @@ e1000_resume(struct pci_dev *pdev) { struct net_device *netdev = pci_get_drvdata(pdev); struct e1000_adapter *adapter = netdev_priv(netdev); - uint32_t err; + u32 err; pci_set_power_state(pdev, PCI_D0); pci_restore_state(pdev); @@ -5295,7 +5251,6 @@ e1000_netpoll(struct net_device *netdev) disable_irq(adapter->pdev->irq); e1000_intr(adapter->pdev->irq, netdev); - e1000_clean_tx_irq(adapter, adapter->tx_ring); #ifndef CONFIG_E1000_NAPI adapter->clean_rx(adapter, adapter->rx_ring); #endif