diff options
Diffstat (limited to 'drivers/net/ixgb')
-rw-r--r-- | drivers/net/ixgb/ixgb.h | 60 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_ee.c | 124 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_ee.h | 12 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_ethtool.c | 67 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_hw.c | 199 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_hw.h | 250 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 156 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_osdep.h | 7 |
8 files changed, 442 insertions, 433 deletions
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h index 3d2e7217e9a..16f9c756aa4 100644 --- a/drivers/net/ixgb/ixgb.h +++ b/drivers/net/ixgb/ixgb.h @@ -117,8 +117,8 @@ struct ixgb_buffer { struct sk_buff *skb; dma_addr_t dma; unsigned long time_stamp; - uint16_t length; - uint16_t next_to_watch; + u16 length; + u16 next_to_watch; }; struct ixgb_desc_ring { @@ -152,13 +152,12 @@ struct ixgb_desc_ring { struct ixgb_adapter { struct timer_list watchdog_timer; struct vlan_group *vlgrp; - uint32_t bd_number; - uint32_t rx_buffer_len; - uint32_t part_num; - uint16_t link_speed; - uint16_t link_duplex; + u32 bd_number; + u32 rx_buffer_len; + u32 part_num; + u16 link_speed; + u16 link_duplex; spinlock_t tx_lock; - atomic_t irq_sem; struct work_struct tx_timeout_task; struct timer_list blink_timer; @@ -168,20 +167,20 @@ struct ixgb_adapter { struct ixgb_desc_ring tx_ring ____cacheline_aligned_in_smp; unsigned int restart_queue; unsigned long timeo_start; - uint32_t tx_cmd_type; - uint64_t hw_csum_tx_good; - uint64_t hw_csum_tx_error; - uint32_t tx_int_delay; - uint32_t tx_timeout_count; - boolean_t tx_int_delay_enable; - boolean_t detect_tx_hung; + u32 tx_cmd_type; + u64 hw_csum_tx_good; + u64 hw_csum_tx_error; + u32 tx_int_delay; + u32 tx_timeout_count; + bool tx_int_delay_enable; + bool detect_tx_hung; /* RX */ struct ixgb_desc_ring rx_ring; - uint64_t hw_csum_rx_error; - uint64_t hw_csum_rx_good; - uint32_t rx_int_delay; - boolean_t rx_csum; + u64 hw_csum_rx_error; + u64 hw_csum_rx_good; + u32 rx_int_delay; + bool rx_csum; /* OS defined structs */ struct napi_struct napi; @@ -193,8 +192,17 @@ struct ixgb_adapter { struct ixgb_hw hw; u16 msg_enable; struct ixgb_hw_stats stats; - uint32_t alloc_rx_buff_failed; - boolean_t have_msi; + u32 alloc_rx_buff_failed; + bool have_msi; + unsigned long flags; +}; + +enum ixgb_state_t { + /* TBD + __IXGB_TESTING, + __IXGB_RESETTING, + */ + __IXGB_DOWN }; /* Exported from other modules */ @@ -203,4 +211,14 @@ extern void ixgb_set_ethtool_ops(struct net_device *netdev); extern char ixgb_driver_name[]; extern const char ixgb_driver_version[]; +extern int ixgb_up(struct ixgb_adapter *adapter); +extern void ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog); +extern void ixgb_reset(struct ixgb_adapter *adapter); +extern int ixgb_setup_rx_resources(struct ixgb_adapter *adapter); +extern int ixgb_setup_tx_resources(struct ixgb_adapter *adapter); +extern void ixgb_free_rx_resources(struct ixgb_adapter *adapter); +extern void ixgb_free_tx_resources(struct ixgb_adapter *adapter); +extern void ixgb_update_stats(struct ixgb_adapter *adapter); + + #endif /* _IXGB_H_ */ diff --git a/drivers/net/ixgb/ixgb_ee.c b/drivers/net/ixgb/ixgb_ee.c index e8eb0fd6c57..2f7ed52c750 100644 --- a/drivers/net/ixgb/ixgb_ee.c +++ b/drivers/net/ixgb/ixgb_ee.c @@ -29,14 +29,14 @@ #include "ixgb_hw.h" #include "ixgb_ee.h" /* Local prototypes */ -static uint16_t ixgb_shift_in_bits(struct ixgb_hw *hw); +static u16 ixgb_shift_in_bits(struct ixgb_hw *hw); static void ixgb_shift_out_bits(struct ixgb_hw *hw, - uint16_t data, - uint16_t count); + u16 data, + u16 count); static void ixgb_standby_eeprom(struct ixgb_hw *hw); -static boolean_t ixgb_wait_eeprom_command(struct ixgb_hw *hw); +static bool ixgb_wait_eeprom_command(struct ixgb_hw *hw); static void ixgb_cleanup_eeprom(struct ixgb_hw *hw); @@ -48,7 +48,7 @@ static void ixgb_cleanup_eeprom(struct ixgb_hw *hw); *****************************************************************************/ static void ixgb_raise_clock(struct ixgb_hw *hw, - uint32_t *eecd_reg) + u32 *eecd_reg) { /* Raise the clock input to the EEPROM (by setting the SK bit), and then * wait 50 microseconds. @@ -67,7 +67,7 @@ ixgb_raise_clock(struct ixgb_hw *hw, *****************************************************************************/ static void ixgb_lower_clock(struct ixgb_hw *hw, - uint32_t *eecd_reg) + u32 *eecd_reg) { /* Lower the clock input to the EEPROM (by clearing the SK bit), and then * wait 50 microseconds. @@ -87,11 +87,11 @@ ixgb_lower_clock(struct ixgb_hw *hw, *****************************************************************************/ static void ixgb_shift_out_bits(struct ixgb_hw *hw, - uint16_t data, - uint16_t count) + u16 data, + u16 count) { - uint32_t eecd_reg; - uint32_t mask; + u32 eecd_reg; + u32 mask; /* We need to shift "count" bits out to the EEPROM. So, value in the * "data" parameter will be shifted out to the EEPROM one bit at a time. @@ -133,12 +133,12 @@ ixgb_shift_out_bits(struct ixgb_hw *hw, * * hw - Struct containing variables accessed by shared code *****************************************************************************/ -static uint16_t +static u16 ixgb_shift_in_bits(struct ixgb_hw *hw) { - uint32_t eecd_reg; - uint32_t i; - uint16_t data; + u32 eecd_reg; + u32 i; + u16 data; /* In order to read a register from the EEPROM, we need to shift 16 bits * in from the EEPROM. Bits are "shifted in" by raising the clock input to @@ -179,7 +179,7 @@ ixgb_shift_in_bits(struct ixgb_hw *hw) static void ixgb_setup_eeprom(struct ixgb_hw *hw) { - uint32_t eecd_reg; + u32 eecd_reg; eecd_reg = IXGB_READ_REG(hw, EECD); @@ -201,7 +201,7 @@ ixgb_setup_eeprom(struct ixgb_hw *hw) static void ixgb_standby_eeprom(struct ixgb_hw *hw) { - uint32_t eecd_reg; + u32 eecd_reg; eecd_reg = IXGB_READ_REG(hw, EECD); @@ -235,7 +235,7 @@ ixgb_standby_eeprom(struct ixgb_hw *hw) static void ixgb_clock_eeprom(struct ixgb_hw *hw) { - uint32_t eecd_reg; + u32 eecd_reg; eecd_reg = IXGB_READ_REG(hw, EECD); @@ -259,7 +259,7 @@ ixgb_clock_eeprom(struct ixgb_hw *hw) static void ixgb_cleanup_eeprom(struct ixgb_hw *hw) { - uint32_t eecd_reg; + u32 eecd_reg; eecd_reg = IXGB_READ_REG(hw, EECD); @@ -279,14 +279,14 @@ ixgb_cleanup_eeprom(struct ixgb_hw *hw) * The command is done when the EEPROM's data out pin goes high. * * Returns: - * TRUE: EEPROM data pin is high before timeout. - * FALSE: Time expired. + * true: EEPROM data pin is high before timeout. + * false: Time expired. *****************************************************************************/ -static boolean_t +static bool ixgb_wait_eeprom_command(struct ixgb_hw *hw) { - uint32_t eecd_reg; - uint32_t i; + u32 eecd_reg; + u32 i; /* Toggle the CS line. This in effect tells to EEPROM to actually execute * the command in question. @@ -301,12 +301,12 @@ ixgb_wait_eeprom_command(struct ixgb_hw *hw) eecd_reg = IXGB_READ_REG(hw, EECD); if(eecd_reg & IXGB_EECD_DO) - return (TRUE); + return (true); udelay(50); } ASSERT(0); - return (FALSE); + return (false); } /****************************************************************************** @@ -319,22 +319,22 @@ ixgb_wait_eeprom_command(struct ixgb_hw *hw) * valid. * * Returns: - * TRUE: Checksum is valid - * FALSE: Checksum is not valid. + * true: Checksum is valid + * false: Checksum is not valid. *****************************************************************************/ -boolean_t +bool ixgb_validate_eeprom_checksum(struct ixgb_hw *hw) { - uint16_t checksum = 0; - uint16_t i; + u16 checksum = 0; + u16 i; for(i = 0; i < (EEPROM_CHECKSUM_REG + 1); i++) checksum += ixgb_read_eeprom(hw, i); - if(checksum == (uint16_t) EEPROM_SUM) - return (TRUE); + if(checksum == (u16) EEPROM_SUM) + return (true); else - return (FALSE); + return (false); } /****************************************************************************** @@ -348,13 +348,13 @@ ixgb_validate_eeprom_checksum(struct ixgb_hw *hw) void ixgb_update_eeprom_checksum(struct ixgb_hw *hw) { - uint16_t checksum = 0; - uint16_t i; + u16 checksum = 0; + u16 i; for(i = 0; i < EEPROM_CHECKSUM_REG; i++) checksum += ixgb_read_eeprom(hw, i); - checksum = (uint16_t) EEPROM_SUM - checksum; + checksum = (u16) EEPROM_SUM - checksum; ixgb_write_eeprom(hw, EEPROM_CHECKSUM_REG, checksum); return; @@ -372,7 +372,7 @@ ixgb_update_eeprom_checksum(struct ixgb_hw *hw) * *****************************************************************************/ void -ixgb_write_eeprom(struct ixgb_hw *hw, uint16_t offset, uint16_t data) +ixgb_write_eeprom(struct ixgb_hw *hw, u16 offset, u16 data) { struct ixgb_ee_map_type *ee_map = (struct ixgb_ee_map_type *)hw->eeprom; @@ -425,11 +425,11 @@ ixgb_write_eeprom(struct ixgb_hw *hw, uint16_t offset, uint16_t data) * Returns: * The 16-bit value read from the eeprom *****************************************************************************/ -uint16_t +u16 ixgb_read_eeprom(struct ixgb_hw *hw, - uint16_t offset) + u16 offset) { - uint16_t data; + u16 data; /* Prepare the EEPROM for reading */ ixgb_setup_eeprom(hw); @@ -457,14 +457,14 @@ ixgb_read_eeprom(struct ixgb_hw *hw, * hw - Struct containing variables accessed by shared code * * Returns: - * TRUE: if eeprom read is successful - * FALSE: otherwise. + * true: if eeprom read is successful + * false: otherwise. *****************************************************************************/ -boolean_t +bool ixgb_get_eeprom_data(struct ixgb_hw *hw) { - uint16_t i; - uint16_t checksum = 0; + u16 i; + u16 checksum = 0; struct ixgb_ee_map_type *ee_map; DEBUGFUNC("ixgb_get_eeprom_data"); @@ -473,27 +473,27 @@ ixgb_get_eeprom_data(struct ixgb_hw *hw) DEBUGOUT("ixgb_ee: Reading eeprom data\n"); for(i = 0; i < IXGB_EEPROM_SIZE ; i++) { - uint16_t ee_data; + u16 ee_data; ee_data = ixgb_read_eeprom(hw, i); checksum += ee_data; hw->eeprom[i] = cpu_to_le16(ee_data); } - if (checksum != (uint16_t) EEPROM_SUM) { + if (checksum != (u16) EEPROM_SUM) { DEBUGOUT("ixgb_ee: Checksum invalid.\n"); /* clear the init_ctrl_reg_1 to signify that the cache is * invalidated */ ee_map->init_ctrl_reg_1 = cpu_to_le16(EEPROM_ICW1_SIGNATURE_CLEAR); - return (FALSE); + return (false); } if ((ee_map->init_ctrl_reg_1 & cpu_to_le16(EEPROM_ICW1_SIGNATURE_MASK)) != cpu_to_le16(EEPROM_ICW1_SIGNATURE_VALID)) { DEBUGOUT("ixgb_ee: Signature invalid.\n"); - return(FALSE); + return(false); } - return(TRUE); + return(true); } /****************************************************************************** @@ -503,17 +503,17 @@ ixgb_get_eeprom_data(struct ixgb_hw *hw) * hw - Struct containing variables accessed by shared code * * Returns: - * TRUE: eeprom signature was good and the eeprom read was successful - * FALSE: otherwise. + * true: eeprom signature was good and the eeprom read was successful + * false: otherwise. ******************************************************************************/ -static boolean_t +static bool ixgb_check_and_get_eeprom_data (struct ixgb_hw* hw) { struct ixgb_ee_map_type *ee_map = (struct ixgb_ee_map_type *)hw->eeprom; if ((ee_map->init_ctrl_reg_1 & cpu_to_le16(EEPROM_ICW1_SIGNATURE_MASK)) == cpu_to_le16(EEPROM_ICW1_SIGNATURE_VALID)) { - return (TRUE); + return (true); } else { return ixgb_get_eeprom_data(hw); } @@ -529,11 +529,11 @@ ixgb_check_and_get_eeprom_data (struct ixgb_hw* hw) * Word at indexed offset in eeprom, if valid, 0 otherwise. ******************************************************************************/ __le16 -ixgb_get_eeprom_word(struct ixgb_hw *hw, uint16_t index) +ixgb_get_eeprom_word(struct ixgb_hw *hw, u16 index) { if ((index < IXGB_EEPROM_SIZE) && - (ixgb_check_and_get_eeprom_data(hw) == TRUE)) { + (ixgb_check_and_get_eeprom_data(hw) == true)) { return(hw->eeprom[index]); } @@ -550,14 +550,14 @@ ixgb_get_eeprom_word(struct ixgb_hw *hw, uint16_t index) ******************************************************************************/ void ixgb_get_ee_mac_addr(struct ixgb_hw *hw, - uint8_t *mac_addr) + u8 *mac_addr) { int i; struct ixgb_ee_map_type *ee_map = (struct ixgb_ee_map_type *)hw->eeprom; DEBUGFUNC("ixgb_get_ee_mac_addr"); - if (ixgb_check_and_get_eeprom_data(hw) == TRUE) { + if (ixgb_check_and_get_eeprom_data(hw) == true) { for (i = 0; i < IXGB_ETH_LENGTH_OF_ADDRESS; i++) { mac_addr[i] = ee_map->mac_addr[i]; DEBUGOUT2("mac(%d) = %.2X\n", i, mac_addr[i]); @@ -574,10 +574,10 @@ ixgb_get_ee_mac_addr(struct ixgb_hw *hw, * Returns: * PBA number if EEPROM contents are valid, 0 otherwise ******************************************************************************/ -uint32_t +u32 ixgb_get_ee_pba_number(struct ixgb_hw *hw) { - if(ixgb_check_and_get_eeprom_data(hw) == TRUE) + if (ixgb_check_and_get_eeprom_data(hw) == true) return (le16_to_cpu(hw->eeprom[EEPROM_PBA_1_2_REG]) | (le16_to_cpu(hw->eeprom[EEPROM_PBA_3_4_REG])<<16)); @@ -593,12 +593,12 @@ ixgb_get_ee_pba_number(struct ixgb_hw *hw) * Returns: * Device Id if EEPROM contents are valid, 0 otherwise ******************************************************************************/ -uint16_t +u16 ixgb_get_ee_device_id(struct ixgb_hw *hw) { struct ixgb_ee_map_type *ee_map = (struct ixgb_ee_map_type *)hw->eeprom; - if(ixgb_check_and_get_eeprom_data(hw) == TRUE) + if (ixgb_check_and_get_eeprom_data(hw) == true) return (le16_to_cpu(ee_map->device_id)); return (0); diff --git a/drivers/net/ixgb/ixgb_ee.h b/drivers/net/ixgb/ixgb_ee.h index 7908bf3005e..4b7bd0d4a8a 100644 --- a/drivers/net/ixgb/ixgb_ee.h +++ b/drivers/net/ixgb/ixgb_ee.h @@ -75,7 +75,7 @@ /* EEPROM structure */ struct ixgb_ee_map_type { - uint8_t mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS]; + u8 mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS]; __le16 compatibility; __le16 reserved1[4]; __le32 pba_number; @@ -88,19 +88,19 @@ struct ixgb_ee_map_type { __le16 oem_reserved[16]; __le16 swdpins_reg; __le16 circuit_ctrl_reg; - uint8_t d3_power; - uint8_t d0_power; + u8 d3_power; + u8 d0_power; __le16 reserved2[28]; __le16 checksum; }; /* EEPROM Functions */ -uint16_t ixgb_read_eeprom(struct ixgb_hw *hw, uint16_t reg); +u16 ixgb_read_eeprom(struct ixgb_hw *hw, u16 reg); -boolean_t ixgb_validate_eeprom_checksum(struct ixgb_hw *hw); +bool ixgb_validate_eeprom_checksum(struct ixgb_hw *hw); void ixgb_update_eeprom_checksum(struct ixgb_hw *hw); -void ixgb_write_eeprom(struct ixgb_hw *hw, uint16_t reg, uint16_t data); +void ixgb_write_eeprom(struct ixgb_hw *hw, u16 reg, u16 data); #endif /* IXGB_EE_H */ diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c index 75f3a68ee35..8464d8a013b 100644 --- a/drivers/net/ixgb/ixgb_ethtool.c +++ b/drivers/net/ixgb/ixgb_ethtool.c @@ -32,15 +32,6 @@ #include <asm/uaccess.h> -extern int ixgb_up(struct ixgb_adapter *adapter); -extern void ixgb_down(struct ixgb_adapter *adapter, boolean_t kill_watchdog); -extern void ixgb_reset(struct ixgb_adapter *adapter); -extern int ixgb_setup_rx_resources(struct ixgb_adapter *adapter); -extern int ixgb_setup_tx_resources(struct ixgb_adapter *adapter); -extern void ixgb_free_rx_resources(struct ixgb_adapter *adapter); -extern void ixgb_free_tx_resources(struct ixgb_adapter *adapter); -extern void ixgb_update_stats(struct ixgb_adapter *adapter); - #define IXGB_ALL_RAR_ENTRIES 16 struct ixgb_stats { @@ -136,7 +127,7 @@ ixgb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) return -EINVAL; if(netif_running(adapter->netdev)) { - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); ixgb_reset(adapter); ixgb_up(adapter); ixgb_set_speed_duplex(netdev); @@ -185,7 +176,7 @@ ixgb_set_pauseparam(struct net_device *netdev, hw->fc.type = ixgb_fc_none; if(netif_running(adapter->netdev)) { - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); ixgb_up(adapter); ixgb_set_speed_duplex(netdev); } else @@ -194,7 +185,7 @@ ixgb_set_pauseparam(struct net_device *netdev, return 0; } -static uint32_t +static u32 ixgb_get_rx_csum(struct net_device *netdev) { struct ixgb_adapter *adapter = netdev_priv(netdev); @@ -203,14 +194,14 @@ ixgb_get_rx_csum(struct net_device *netdev) } static int -ixgb_set_rx_csum(struct net_device *netdev, uint32_t data) +ixgb_set_rx_csum(struct net_device *netdev, u32 data) { struct ixgb_adapter *adapter = netdev_priv(netdev); adapter->rx_csum = data; if(netif_running(netdev)) { - ixgb_down(adapter,TRUE); + ixgb_down(adapter, true); ixgb_up(adapter); ixgb_set_speed_duplex(netdev); } else @@ -218,14 +209,14 @@ ixgb_set_rx_csum(struct net_device *netdev, uint32_t data) return 0; } -static uint32_t +static u32 ixgb_get_tx_csum(struct net_device *netdev) { return (netdev->features & NETIF_F_HW_CSUM) != 0; } static int -ixgb_set_tx_csum(struct net_device *netdev, uint32_t data) +ixgb_set_tx_csum(struct net_device *netdev, u32 data) { if (data) netdev->features |= NETIF_F_HW_CSUM; @@ -236,7 +227,7 @@ ixgb_set_tx_csum(struct net_device *netdev, uint32_t data) } static int -ixgb_set_tso(struct net_device *netdev, uint32_t data) +ixgb_set_tso(struct net_device *netdev, u32 data) { if(data) netdev->features |= NETIF_F_TSO; @@ -245,7 +236,7 @@ ixgb_set_tso(struct net_device *netdev, uint32_t data) return 0; } -static uint32_t +static u32 ixgb_get_msglevel(struct net_device *netdev) { struct ixgb_adapter *adapter = netdev_priv(netdev); @@ -253,7 +244,7 @@ ixgb_get_msglevel(struct net_device *netdev) } static void -ixgb_set_msglevel(struct net_device *netdev, uint32_t data) +ixgb_set_msglevel(struct net_device *netdev, u32 data) { struct ixgb_adapter *adapter = netdev_priv(netdev); adapter->msg_enable = data; @@ -263,7 +254,7 @@ ixgb_set_msglevel(struct net_device *netdev, uint32_t data) static int ixgb_get_regs_len(struct net_device *netdev) { -#define IXGB_REG_DUMP_LEN 136*sizeof(uint32_t) +#define IXGB_REG_DUMP_LEN 136*sizeof(u32) return IXGB_REG_DUMP_LEN; } @@ -273,9 +264,9 @@ ixgb_get_regs(struct net_device *netdev, { struct ixgb_adapter *adapter = netdev_priv(netdev); struct ixgb_hw *hw = &adapter->hw; - uint32_t *reg = p; - uint32_t *reg_start = reg; - uint8_t i; + u32 *reg = p; + u32 *reg_start = reg; + u8 i; /* the 1 (one) below indicates an attempt at versioning, if the * interface in ethtool or the driver changes, this 1 should be @@ -404,7 +395,7 @@ ixgb_get_regs(struct net_device *netdev, *reg++ = IXGB_GET_STAT(adapter, xofftxc); /* 134 */ *reg++ = IXGB_GET_STAT(adapter, rjc); /* 135 */ - regs->len = (reg - reg_start) * sizeof(uint32_t); + regs->len = (reg - reg_start) * sizeof(u32); } static int @@ -416,7 +407,7 @@ ixgb_get_eeprom_len(struct net_device *netdev) static int ixgb_get_eeprom(struct net_device *netdev, - struct ethtool_eeprom *eeprom, uint8_t *bytes) + struct ethtool_eeprom *eeprom, u8 *bytes) { struct ixgb_adapter *adapter = netdev_priv(netdev); struct ixgb_hw *hw = &adapter->hw; @@ -454,7 +445,7 @@ ixgb_get_eeprom(struct net_device *netdev, eeprom_buff[i] = ixgb_get_eeprom_word(hw, (first_word + i)); } - memcpy(bytes, (uint8_t *)eeprom_buff + (eeprom->offset & 1), + memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 1), eeprom->len); kfree(eeprom_buff); @@ -464,14 +455,14 @@ geeprom_error: static int ixgb_set_eeprom(struct net_device *netdev, - struct ethtool_eeprom *eeprom, uint8_t *bytes) + struct ethtool_eeprom *eeprom, u8 *bytes) { struct ixgb_adapter *adapter = netdev_priv(netdev); struct ixgb_hw *hw = &adapter->hw; - uint16_t *eeprom_buff; + u16 *eeprom_buff; void *ptr; int max_len, first_word, last_word; - uint16_t i; + u16 i; if(eeprom->len == 0) return -EINVAL; @@ -570,14 +561,14 @@ ixgb_set_ringparam(struct net_device *netdev, return -EINVAL; if(netif_running(adapter->netdev)) - ixgb_down(adapter,TRUE); + ixgb_down(adapter, true); - rxdr->count = max(ring->rx_pending,(uint32_t)MIN_RXD); - rxdr->count = min(rxdr->count,(uint32_t)MAX_RXD); + rxdr->count = max(ring->rx_pending,(u32)MIN_RXD); + rxdr->count = min(rxdr->count,(u32)MAX_RXD); rxdr->count = ALIGN(rxdr->count, IXGB_REQ_RX_DESCRIPTOR_MULTIPLE); - txdr->count = max(ring->tx_pending,(uint32_t)MIN_TXD); - txdr->count = min(txdr->count,(uint32_t)MAX_TXD); + txdr->count = max(ring->tx_pending,(u32)MIN_TXD); + txdr->count = min(txdr->count,(u32)MAX_TXD); txdr->count = ALIGN(txdr->count, IXGB_REQ_TX_DESCRIPTOR_MULTIPLE); if(netif_running(adapter->netdev)) { @@ -633,7 +624,7 @@ ixgb_led_blink_callback(unsigned long data) } static int -ixgb_phys_id(struct net_device *netdev, uint32_t data) +ixgb_phys_id(struct net_device *netdev, u32 data) { struct ixgb_adapter *adapter = netdev_priv(netdev); @@ -669,7 +660,7 @@ ixgb_get_sset_count(struct net_device *netdev, int sset) static void ixgb_get_ethtool_stats(struct net_device *netdev, - struct ethtool_stats *stats, uint64_t *data) + struct ethtool_stats *stats, u64 *data) { struct ixgb_adapter *adapter = netdev_priv(netdev); int i; @@ -678,12 +669,12 @@ ixgb_get_ethtool_stats(struct net_device *netdev, for(i = 0; i < IXGB_STATS_LEN; i++) { char *p = (char *)adapter+ixgb_gstrings_stats[i].stat_offset; data[i] = (ixgb_gstrings_stats[i].sizeof_stat == - sizeof(uint64_t)) ? *(uint64_t *)p : *(uint32_t *)p; + sizeof(u64)) ? *(u64 *)p : *(u32 *)p; } } static void -ixgb_get_strings(struct net_device *netdev, uint32_t stringset, uint8_t *data) +ixgb_get_strings(struct net_device *netdev, u32 stringset, u8 *data) { int i; diff --git a/drivers/net/ixgb/ixgb_hw.c b/drivers/net/ixgb/ixgb_hw.c index 80a8b988822..04d2003e24e 100644 --- a/drivers/net/ixgb/ixgb_hw.c +++ b/drivers/net/ixgb/ixgb_hw.c @@ -35,13 +35,13 @@ /* Local function prototypes */ -static uint32_t ixgb_hash_mc_addr(struct ixgb_hw *hw, uint8_t * mc_addr); +static u32 ixgb_hash_mc_addr(struct ixgb_hw *hw, u8 * mc_addr); -static void ixgb_mta_set(struct ixgb_hw *hw, uint32_t hash_value); +static void ixgb_mta_set(struct ixgb_hw *hw, u32 hash_value); static void ixgb_get_bus_info(struct ixgb_hw *hw); -static boolean_t ixgb_link_reset(struct ixgb_hw *hw); +static bool ixgb_link_reset(struct ixgb_hw *hw); static void ixgb_optics_reset(struct ixgb_hw *hw); @@ -55,18 +55,18 @@ static void ixgb_clear_vfta(struct ixgb_hw *hw); static void ixgb_init_rx_addrs(struct ixgb_hw *hw); -static uint16_t ixgb_read_phy_reg(struct ixgb_hw *hw, - uint32_t reg_address, - uint32_t phy_address, - uint32_t device_type); +static u16 ixgb_read_phy_reg(struct ixgb_hw *hw, + u32 reg_address, + u32 phy_address, + u32 device_type); -static boolean_t ixgb_setup_fc(struct ixgb_hw *hw); +static bool ixgb_setup_fc(struct ixgb_hw *hw); -static boolean_t mac_addr_valid(uint8_t *mac_addr); +static bool mac_addr_valid(u8 *mac_addr); -static uint32_t ixgb_mac_reset(struct ixgb_hw *hw) +static u32 ixgb_mac_reset(struct ixgb_hw *hw) { - uint32_t ctrl_reg; + u32 ctrl_reg; ctrl_reg = IXGB_CTRL0_RST | IXGB_CTRL0_SDP3_DIR | /* All pins are Output=1 */ @@ -114,11 +114,11 @@ static uint32_t ixgb_mac_reset(struct ixgb_hw *hw) * * hw - Struct containing variables accessed by shared code *****************************************************************************/ -boolean_t +bool ixgb_adapter_stop(struct ixgb_hw *hw) { - uint32_t ctrl_reg; - uint32_t icr_reg; + u32 ctrl_reg; + u32 icr_reg; DEBUGFUNC("ixgb_adapter_stop"); @@ -127,13 +127,13 @@ ixgb_adapter_stop(struct ixgb_hw *hw) */ if(hw->adapter_stopped) { DEBUGOUT("Exiting because the adapter is already stopped!!!\n"); - return FALSE; + return false; } /* Set the Adapter Stopped flag so other driver functions stop * touching the Hardware. */ - hw->adapter_stopped = TRUE; + hw->adapter_stopped = true; /* Clear interrupt mask to stop board from generating interrupts */ DEBUGOUT("Masking off all interrupts\n"); @@ -179,8 +179,8 @@ ixgb_adapter_stop(struct ixgb_hw *hw) static ixgb_xpak_vendor ixgb_identify_xpak_vendor(struct ixgb_hw *hw) { - uint32_t i; - uint16_t vendor_name[5]; + u32 i; + u16 vendor_name[5]; ixgb_xpak_vendor xpak_vendor; DEBUGFUNC("ixgb_identify_xpak_vendor"); @@ -286,15 +286,15 @@ ixgb_identify_phy(struct ixgb_hw *hw) * Leaves the transmit and receive units disabled and uninitialized. * * Returns: - * TRUE if successful, - * FALSE if unrecoverable problems were encountered. + * true if successful, + * false if unrecoverable problems were encountered. *****************************************************************************/ -boolean_t +bool ixgb_init_hw(struct ixgb_hw *hw) { - uint32_t i; - uint32_t ctrl_reg; - boolean_t status; + u32 i; + u32 ctrl_reg; + bool status; DEBUGFUNC("ixgb_init_hw"); @@ -318,9 +318,8 @@ ixgb_init_hw(struct ixgb_hw *hw) /* Delay a few ms just to allow the reset to complete */ msleep(IXGB_DELAY_AFTER_EE_RESET); - if (ixgb_get_eeprom_data(hw) == FALSE) { - return(FALSE); - } + if (!ixgb_get_eeprom_data(hw)) + return false; /* Use the device id to determine the type of phy/transceiver. */ hw->device_id = ixgb_get_ee_device_id(hw); @@ -337,11 +336,11 @@ ixgb_init_hw(struct ixgb_hw *hw) */ if (!mac_addr_valid(hw->curr_mac_addr)) { DEBUGOUT("MAC address invalid after ixgb_init_rx_addrs\n"); - return(FALSE); + return(false); } /* tell the routines in this file they can access hardware again */ - hw->adapter_stopped = FALSE; + hw->adapter_stopped = false; /* Fill in the bus_info structure */ ixgb_get_bus_info(hw); @@ -378,7 +377,7 @@ ixgb_init_hw(struct ixgb_hw *hw) static void ixgb_init_rx_addrs(struct ixgb_hw *hw) { - uint32_t i; + u32 i; DEBUGFUNC("ixgb_init_rx_addrs"); @@ -438,13 +437,13 @@ ixgb_init_rx_addrs(struct ixgb_hw *hw) *****************************************************************************/ void ixgb_mc_addr_list_update(struct ixgb_hw *hw, - uint8_t *mc_addr_list, - uint32_t mc_addr_count, - uint32_t pad) + u8 *mc_addr_list, + u32 mc_addr_count, + u32 pad) { - uint32_t hash_value; - uint32_t i; - uint32_t rar_used_count = 1; /* RAR[0] is used for our MAC address */ + u32 hash_value; + u32 i; + u32 rar_used_count = 1; /* RAR[0] is used for our MAC address */ DEBUGFUNC("ixgb_mc_addr_list_update"); @@ -516,11 +515,11 @@ ixgb_mc_addr_list_update(struct ixgb_hw *hw, * Returns: * The hash value *****************************************************************************/ -static uint32_t +static u32 ixgb_hash_mc_addr(struct ixgb_hw *hw, - uint8_t *mc_addr) + u8 *mc_addr) { - uint32_t hash_value = 0; + u32 hash_value = 0; DEBUGFUNC("ixgb_hash_mc_addr"); @@ -534,18 +533,18 @@ ixgb_hash_mc_addr(struct ixgb_hw *hw, case 0: /* [47:36] i.e. 0x563 for above example address */ hash_value = - ((mc_addr[4] >> 4) | (((uint16_t) mc_addr[5]) << 4)); + ((mc_addr[4] >> 4) | (((u16) mc_addr[5]) << 4)); break; case 1: /* [46:35] i.e. 0xAC6 for above example address */ hash_value = - ((mc_addr[4] >> 3) | (((uint16_t) mc_addr[5]) << 5)); + ((mc_addr[4] >> 3) | (((u16) mc_addr[5]) << 5)); break; case 2: /* [45:34] i.e. 0x5D8 for above example address */ hash_value = - ((mc_addr[4] >> 2) | (((uint16_t) mc_addr[5]) << 6)); + ((mc_addr[4] >> 2) | (((u16) mc_addr[5]) << 6)); break; case 3: /* [43:32] i.e. 0x634 for above example address */ - hash_value = ((mc_addr[4]) | (((uint16_t) mc_addr[5]) << 8)); + hash_value = ((mc_addr[4]) | (((u16) mc_addr[5]) << 8)); break; default: /* Invalid mc_filter_type, what should we do? */ @@ -566,10 +565,10 @@ ixgb_hash_mc_addr(struct ixgb_hw *hw, *****************************************************************************/ static void ixgb_mta_set(struct ixgb_hw *hw, - uint32_t hash_value) + u32 hash_value) { - uint32_t hash_bit, hash_reg; - uint32_t mta_reg; + u32 hash_bit, hash_reg; + u32 mta_reg; /* The MTA is a register array of 128 32-bit registers. * It is treated like an array of 4096 bits. We want to set @@ -600,23 +599,23 @@ ixgb_mta_set(struct ixgb_hw *hw, *****************************************************************************/ void ixgb_rar_set(struct ixgb_hw *hw, - uint8_t *addr, - uint32_t index) + u8 *addr, + u32 index) { - uint32_t rar_low, rar_high; + u32 rar_low, rar_high; DEBUGFUNC("ixgb_rar_set"); /* HW expects these in little endian so we reverse the byte order * from network order (big endian) to little endian */ - rar_low = ((uint32_t) addr[0] | - ((uint32_t)addr[1] << 8) | - ((uint32_t)addr[2] << 16) | - ((uint32_t)addr[3] << 24)); + rar_low = ((u32) addr[0] | + ((u32)addr[1] << 8) | + ((u32)addr[2] << 16) | + ((u32)addr[3] << 24)); - rar_high = ((uint32_t) addr[4] | - ((uint32_t)addr[5] << 8) | + rar_high = ((u32) addr[4] | + ((u32)addr[5] << 8) | IXGB_RAH_AV); IXGB_WRITE_REG_ARRAY(hw, RA, (index << 1), rar_low); @@ -633,8 +632,8 @@ ixgb_rar_set(struct ixgb_hw *hw, *****************************************************************************/ void ixgb_write_vfta(struct ixgb_hw *hw, - uint32_t offset, - uint32_t value) + u32 offset, + u32 value) { IXGB_WRITE_REG_ARRAY(hw, VFTA, offset, value); return; @@ -648,7 +647,7 @@ ixgb_write_vfta(struct ixgb_hw *hw, static void ixgb_clear_vfta(struct ixgb_hw *hw) { - uint32_t offset; + u32 offset; for(offset = 0; offset < IXGB_VLAN_FILTER_TBL_SIZE; offset++) IXGB_WRITE_REG_ARRAY(hw, VFTA, offset, 0); @@ -661,12 +660,12 @@ ixgb_clear_vfta(struct ixgb_hw *hw) * hw - Struct containing variables accessed by shared code *****************************************************************************/ -static boolean_t +static bool ixgb_setup_fc(struct ixgb_hw *hw) { - uint32_t ctrl_reg; - uint32_t pap_reg = 0; /* by default, assume no pause time */ - boolean_t status = TRUE; + u32 ctrl_reg; + u32 pap_reg = 0; /* by default, assume no pause time */ + bool status = true; DEBUGFUNC("ixgb_setup_fc"); @@ -763,15 +762,15 @@ ixgb_setup_fc(struct ixgb_hw *hw) * This requires that first an address cycle command is sent, followed by a * read command. *****************************************************************************/ -static uint16_t +static u16 ixgb_read_phy_reg(struct ixgb_hw *hw, - uint32_t reg_address, - uint32_t phy_address, - uint32_t device_type) + u32 reg_address, + u32 phy_address, + u32 device_type) { - uint32_t i; - uint32_t data; - uint32_t command = 0; + u32 i; + u32 data; + u32 command = 0; ASSERT(reg_address <= IXGB_MAX_PHY_REG_ADDRESS); ASSERT(phy_address <= IXGB_MAX_PHY_ADDRESS); @@ -836,7 +835,7 @@ ixgb_read_phy_reg(struct ixgb_hw *hw, */ data = IXGB_READ_REG(hw, MSRWD); data >>= IXGB_MSRWD_READ_DATA_SHIFT; - return((uint16_t) data); + return((u16) data); } /****************************************************************************** @@ -858,20 +857,20 @@ ixgb_read_phy_reg(struct ixgb_hw *hw, *****************************************************************************/ static void ixgb_write_phy_reg(struct ixgb_hw *hw, - uint32_t reg_address, - uint32_t phy_address, - uint32_t device_type, - uint16_t data) + u32 reg_address, + u32 phy_address, + u32 device_type, + u16 data) { - uint32_t i; - uint32_t command = 0; + u32 i; + u32 command = 0; ASSERT(reg_address <= IXGB_MAX_PHY_REG_ADDRESS); ASSERT(phy_address <= IXGB_MAX_PHY_ADDRESS); ASSERT(device_type <= IXGB_MAX_PHY_DEV_TYPE); /* Put the data in the MDIO Read/Write Data register */ - IXGB_WRITE_REG(hw, MSRWD, (uint32_t)data); + IXGB_WRITE_REG(hw, MSRWD, (u32)data); /* Setup and write the address cycle command */ command = ((reg_address << IXGB_MSCA_NP_ADDR_SHIFT) | @@ -940,8 +939,8 @@ ixgb_write_phy_reg(struct ixgb_hw *hw, void ixgb_check_for_link(struct ixgb_hw *hw) { - uint32_t status_reg; - uint32_t xpcss_reg; + u32 status_reg; + u32 xpcss_reg; DEBUGFUNC("ixgb_check_for_link"); @@ -950,7 +949,7 @@ ixgb_check_for_link(struct ixgb_hw *hw) if ((xpcss_reg & IXGB_XPCSS_ALIGN_STATUS) && (status_reg & IXGB_STATUS_LU)) { - hw->link_up = TRUE; + hw->link_up = true; } else if (!(xpcss_reg & IXGB_XPCSS_ALIGN_STATUS) && (status_reg & IXGB_STATUS_LU)) { DEBUGOUT("XPCSS Not Aligned while Status:LU is set.\n"); @@ -974,10 +973,10 @@ ixgb_check_for_link(struct ixgb_hw *hw) * * Called by any function that needs to check the link status of the adapter. *****************************************************************************/ -boolean_t ixgb_check_for_bad_link(struct ixgb_hw *hw) +bool ixgb_check_for_bad_link(struct ixgb_hw *hw) { - uint32_t newLFC, newRFC; - boolean_t bad_link_returncode = FALSE; + u32 newLFC, newRFC; + bool bad_link_returncode = false; if (hw->phy_type == ixgb_phy_type_txn17401) { newLFC = IXGB_READ_REG(hw, LFC); @@ -986,7 +985,7 @@ boolean_t ixgb_check_for_bad_link(struct ixgb_hw *hw) || (hw->lastRFC + 250 < newRFC)) { DEBUGOUT ("BAD LINK! too many LFC/RFC since last check\n"); - bad_link_returncode = TRUE; + bad_link_returncode = true; } hw->lastLFC = newLFC; hw->lastRFC = newRFC; @@ -1003,7 +1002,7 @@ boolean_t ixgb_check_for_bad_link(struct ixgb_hw *hw) static void ixgb_clear_hw_cntrs(struct ixgb_hw *hw) { - volatile uint32_t temp_reg; + volatile u32 temp_reg; DEBUGFUNC("ixgb_clear_hw_cntrs"); @@ -1084,7 +1083,7 @@ ixgb_clear_hw_cntrs(struct ixgb_hw *hw) void ixgb_led_on(struct ixgb_hw *hw) { - uint32_t ctrl0_reg = IXGB_READ_REG(hw, CTRL0); + u32 ctrl0_reg = IXGB_READ_REG(hw, CTRL0); /* To turn on the LED, clear software-definable pin 0 (SDP0). */ ctrl0_reg &= ~IXGB_CTRL0_SDP0; @@ -1100,7 +1099,7 @@ ixgb_led_on(struct ixgb_hw *hw) void ixgb_led_off(struct ixgb_hw *hw) { - uint32_t ctrl0_reg = IXGB_READ_REG(hw, CTRL0); + u32 ctrl0_reg = IXGB_READ_REG(hw, CTRL0); /* To turn off the LED, set software-definable pin 0 (SDP0). */ ctrl0_reg |= IXGB_CTRL0_SDP0; @@ -1116,7 +1115,7 @@ ixgb_led_off(struct ixgb_hw *hw) static void ixgb_get_bus_info(struct ixgb_hw *hw) { - uint32_t status_reg; + u32 status_reg; status_reg = IXGB_READ_REG(hw, STATUS); @@ -1155,21 +1154,21 @@ ixgb_get_bus_info(struct ixgb_hw *hw) * mac_addr - pointer to MAC address. * *****************************************************************************/ -static boolean_t -mac_addr_valid(uint8_t *mac_addr) +static bool +mac_addr_valid(u8 *mac_addr) { - boolean_t is_valid = TRUE; + bool is_valid = true; DEBUGFUNC("mac_addr_valid"); /* Make sure it is not a multicast address */ if (IS_MULTICAST(mac_addr)) { DEBUGOUT("MAC address is multicast\n"); - is_valid = FALSE; + is_valid = false; } /* Not a broadcast address */ else if (IS_BROADCAST(mac_addr)) { DEBUGOUT("MAC address is broadcast\n"); - is_valid = FALSE; + is_valid = false; } /* Reject the zero address */ else if (mac_addr[0] == 0 && @@ -1179,7 +1178,7 @@ mac_addr_valid(uint8_t *mac_addr) mac_addr[4] == 0 && mac_addr[5] == 0) { DEBUGOUT("MAC address is all zeros\n"); - is_valid = FALSE; + is_valid = false; } return (is_valid); } @@ -1190,12 +1189,12 @@ mac_addr_valid(uint8_t *mac_addr) * * hw - Struct containing variables accessed by shared code *****************************************************************************/ -static boolean_t +static bool ixgb_link_reset(struct ixgb_hw *hw) { - boolean_t link_status = FALSE; - uint8_t wait_retries = MAX_RESET_ITERATIONS; - uint8_t lrst_retries = MAX_RESET_ITERATIONS; + bool link_status = false; + u8 wait_retries = MAX_RESET_ITERATIONS; + u8 lrst_retries = MAX_RESET_ITERATIONS; do { /* Reset the link */ @@ -1208,7 +1207,7 @@ ixgb_link_reset(struct ixgb_hw *hw) link_status = ((IXGB_READ_REG(hw, STATUS) & IXGB_STATUS_LU) && (IXGB_READ_REG(hw, XPCSS) & - IXGB_XPCSS_ALIGN_STATUS)) ? TRUE : FALSE; + IXGB_XPCSS_ALIGN_STATUS)) ? true : false; } while (!link_status && --wait_retries); } while (!link_status && --lrst_retries); @@ -1225,7 +1224,7 @@ static void ixgb_optics_reset(struct ixgb_hw *hw) { if (hw->phy_type == ixgb_phy_type_txn17401) { - uint16_t mdio_reg; + u16 mdio_reg; ixgb_write_phy_reg(hw, MDIO_PMA_PMD_CR1, diff --git a/drivers/net/ixgb/ixgb_hw.h b/drivers/net/ixgb/ixgb_hw.h index 4f176ff2b78..39cfa47bea6 100644 --- a/drivers/net/ixgb/ixgb_hw.h +++ b/drivers/net/ixgb/ixgb_hw.h @@ -538,8 +538,8 @@ struct ixgb_rx_desc { __le64 buff_addr; __le16 length; __le16 reserved; - uint8_t status; - uint8_t errors; + u8 status; + u8 errors; __le16 special; }; @@ -570,8 +570,8 @@ struct ixgb_rx_desc { struct ixgb_tx_desc { __le64 buff_addr; __le32 cmd_type_len; - uint8_t status; - uint8_t popts; + u8 status; + u8 popts; __le16 vlan; }; @@ -595,15 +595,15 @@ struct ixgb_tx_desc { #define IXGB_TX_DESC_SPECIAL_PRI_SHIFT IXGB_RX_DESC_SPECIAL_PRI_SHIFT /* Priority is in upper 3 of 16 */ struct ixgb_context_desc { - uint8_t ipcss; - uint8_t ipcso; + u8 ipcss; + u8 ipcso; __le16 ipcse; - uint8_t tucss; - uint8_t tucso; + u8 tucss; + u8 tucso; __le16 tucse; __le32 cmd_type_len; - uint8_t status; - uint8_t hdr_len; + u8 status; + u8 hdr_len; __le16 mss; }; @@ -637,33 +637,33 @@ struct ixgb_context_desc { /* This structure takes a 64k flash and maps it for identification commands */ struct ixgb_flash_buffer { - uint8_t manufacturer_id; - uint8_t device_id; - uint8_t filler1[0x2AA8]; - uint8_t cmd2; - uint8_t filler2[0x2AAA]; - uint8_t cmd1; - uint8_t filler3[0xAAAA]; + u8 manufacturer_id; + u8 device_id; + u8 filler1[0x2AA8]; + u8 cmd2; + u8 filler2[0x2AAA]; + u8 cmd1; + u8 filler3[0xAAAA]; }; /* * This is a little-endian specific check. */ #define IS_MULTICAST(Address) \ - (boolean_t)(((uint8_t *)(Address))[0] & ((uint8_t)0x01)) + (bool)(((u8 *)(Address))[0] & ((u8)0x01)) /* * Check whether an address is broadcast. */ #define IS_BROADCAST(Address) \ - ((((uint8_t *)(Address))[0] == ((uint8_t)0xff)) && (((uint8_t *)(Address))[1] == ((uint8_t)0xff))) + ((((u8 *)(Address))[0] == ((u8)0xff)) && (((u8 *)(Address))[1] == ((u8)0xff))) /* Flow control parameters */ struct ixgb_fc { - uint32_t high_water; /* Flow Control High-water */ - uint32_t low_water; /* Flow Control Low-water */ - uint16_t pause_time; /* Flow Control Pause timer */ - boolean_t send_xon; /* Flow control send XON */ + u32 high_water; /* Flow Control High-water */ + u32 low_water; /* Flow Control Low-water */ + u16 pause_time; /* Flow Control Pause timer */ + bool send_xon; /* Flow control send XON */ ixgb_fc_type type; /* Type of flow control */ }; @@ -685,139 +685,139 @@ struct ixgb_bus { }; struct ixgb_hw { - uint8_t __iomem *hw_addr;/* Base Address of the hardware */ + u8 __iomem *hw_addr;/* Base Address of the hardware */ void *back; /* Pointer to OS-dependent struct */ struct ixgb_fc fc; /* Flow control parameters */ struct ixgb_bus bus; /* Bus parameters */ - uint32_t phy_id; /* Phy Identifier */ - uint32_t phy_addr; /* XGMII address of Phy */ + u32 phy_id; /* Phy Identifier */ + u32 phy_addr; /* XGMII address of Phy */ ixgb_mac_type mac_type; /* Identifier for MAC controller */ ixgb_phy_type phy_type; /* Transceiver/phy identifier */ - uint32_t max_frame_size; /* Maximum frame size supported */ - uint32_t mc_filter_type; /* Multicast filter hash type */ - uint32_t num_mc_addrs; /* Number of current Multicast addrs */ - uint8_t curr_mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS]; /* Individual address currently programmed in MAC */ - uint32_t num_tx_desc; /* Number of Transmit descriptors */ - uint32_t num_rx_desc; /* Number of Receive descriptors */ - uint32_t rx_buffer_size; /* Size of Receive buffer */ - boolean_t link_up; /* TRUE if link is valid */ - boolean_t adapter_stopped; /* State of adapter */ - uint16_t device_id; /* device id from PCI configuration space */ - uint16_t vendor_id; /* vendor id from PCI configuration space */ - uint8_t revision_id; /* revision id from PCI configuration space */ - uint16_t subsystem_vendor_id; /* subsystem vendor id from PCI configuration space */ - uint16_t subsystem_id; /* subsystem id from PCI configuration space */ - uint32_t bar0; /* Base Address registers */ - uint32_t bar1; - uint32_t bar2; - uint32_t bar3; - uint16_t pci_cmd_word; /* PCI command register id from PCI configuration space */ + u32 max_frame_size; /* Maximum frame size supported */ + u32 mc_filter_type; /* Multicast filter hash type */ + u32 num_mc_addrs; /* Number of current Multicast addrs */ + u8 curr_mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS]; /* Individual address currently programmed in MAC */ + u32 num_tx_desc; /* Number of Transmit descriptors */ + u32 num_rx_desc; /* Number of Receive descriptors */ + u32 rx_buffer_size; /* Size of Receive buffer */ + bool link_up; /* true if link is valid */ + bool adapter_stopped; /* State of adapter */ + u16 device_id; /* device id from PCI configuration space */ + u16 vendor_id; /* vendor id from PCI configuration space */ + u8 revision_id; /* revision id from PCI configuration space */ + u16 subsystem_vendor_id; /* subsystem vendor id from PCI configuration space */ + u16 subsystem_id; /* subsystem id from PCI configuration space */ + u32 bar0; /* Base Address registers */ + u32 bar1; + u32 bar2; + u32 bar3; + u16 pci_cmd_word; /* PCI command register id from PCI configuration space */ __le16 eeprom[IXGB_EEPROM_SIZE]; /* EEPROM contents read at init time */ unsigned long io_base; /* Our I/O mapped location */ - uint32_t lastLFC; - uint32_t lastRFC; + u32 lastLFC; + u32 lastRFC; }; /* Statistics reported by the hardware */ struct ixgb_hw_stats { - uint64_t tprl; - uint64_t tprh; - uint64_t gprcl; - uint64_t gprch; - uint64_t bprcl; - uint64_t bprch; - uint64_t mprcl; - uint64_t mprch; - uint64_t uprcl; - uint64_t uprch; - uint64_t vprcl; - uint64_t vprch; - uint64_t jprcl; - uint64_t jprch; - uint64_t gorcl; - uint64_t gorch; - uint64_t torl; - uint64_t torh; - uint64_t rnbc; - uint64_t ruc; - uint64_t roc; - uint64_t rlec; - uint64_t crcerrs; - uint64_t icbc; - uint64_t ecbc; - uint64_t mpc; - uint64_t tptl; - uint64_t tpth; - uint64_t gptcl; - uint64_t gptch; - uint64_t bptcl; - uint64_t bptch; - uint64_t mptcl; - uint64_t mptch; - uint64_t uptcl; - uint64_t uptch; - uint64_t vptcl; - uint64_t vptch; - uint64_t jptcl; - uint64_t jptch; - uint64_t gotcl; - uint64_t gotch; - uint64_t totl; - uint64_t toth; - uint64_t dc; - uint64_t plt64c; - uint64_t tsctc; - uint64_t tsctfc; - uint64_t ibic; - uint64_t rfc; - uint64_t lfc; - uint64_t pfrc; - uint64_t pftc; - uint64_t mcfrc; - uint64_t mcftc; - uint64_t xonrxc; - uint64_t xontxc; - uint64_t xoffrxc; - uint64_t xofftxc; - uint64_t rjc; + u64 tprl; + u64 tprh; + u64 gprcl; + u64 gprch; + u64 bprcl; + u64 bprch; + u64 mprcl; + u64 mprch; + u64 uprcl; + u64 uprch; + u64 vprcl; + u64 vprch; + u64 jprcl; + u64 jprch; + u64 gorcl; + u64 gorch; + u64 torl; + u64 torh; + u64 rnbc; + u64 ruc; + u64 roc; + u64 rlec; + u64 crcerrs; + u64 icbc; + u64 ecbc; + u64 mpc; + u64 tptl; + u64 tpth; + u64 gptcl; + u64 gptch; + u64 bptcl; + u64 bptch; + u64 mptcl; + u64 mptch; + u64 uptcl; + u64 uptch; + u64 vptcl; + u64 vptch; + u64 jptcl; + u64 jptch; + u64 gotcl; + u64 gotch; + u64 totl; + u64 toth; + u64 dc; + u64 plt64c; + u64 tsctc; + u64 tsctfc; + u64 ibic; + u64 rfc; + u64 lfc; + u64 pfrc; + u64 pftc; + u64 mcfrc; + u64 mcftc; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 rjc; }; /* Function Prototypes */ -extern boolean_t ixgb_adapter_stop(struct ixgb_hw *hw); -extern boolean_t ixgb_init_hw(struct ixgb_hw *hw); -extern boolean_t ixgb_adapter_start(struct ixgb_hw *hw); +extern bool ixgb_adapter_stop(struct ixgb_hw *hw); +extern bool ixgb_init_hw(struct ixgb_hw *hw); +extern bool ixgb_adapter_start(struct ixgb_hw *hw); extern void ixgb_check_for_link(struct ixgb_hw *hw); -extern boolean_t ixgb_check_for_bad_link(struct ixgb_hw *hw); +extern bool ixgb_check_for_bad_link(struct ixgb_hw *hw); extern void ixgb_rar_set(struct ixgb_hw *hw, - uint8_t *addr, - uint32_t index); + u8 *addr, + u32 index); /* Filters (multicast, vlan, receive) */ extern void ixgb_mc_addr_list_update(struct ixgb_hw *hw, - uint8_t *mc_addr_list, - uint32_t mc_addr_count, - uint32_t pad); + u8 *mc_addr_list, + u32 mc_addr_count, + u32 pad); /* Vfta functions */ extern void ixgb_write_vfta(struct ixgb_hw *hw, - uint32_t offset, - uint32_t value); + u32 offset, + u32 value); /* Access functions to eeprom data */ -void ixgb_get_ee_mac_addr(struct ixgb_hw *hw, uint8_t *mac_addr); -uint32_t ixgb_get_ee_pba_number(struct ixgb_hw *hw); -uint16_t ixgb_get_ee_device_id(struct ixgb_hw *hw); -boolean_t ixgb_get_eeprom_data(struct ixgb_hw *hw); -__le16 ixgb_get_eeprom_word(struct ixgb_hw *hw, uint16_t index); +void ixgb_get_ee_mac_addr(struct ixgb_hw *hw, u8 *mac_addr); +u32 ixgb_get_ee_pba_number(struct ixgb_hw *hw); +u16 ixgb_get_ee_device_id(struct ixgb_hw *hw); +bool ixgb_get_eeprom_data(struct ixgb_hw *hw); +__le16 ixgb_get_eeprom_word(struct ixgb_hw *hw, u16 index); /* Everything else */ void ixgb_led_on(struct ixgb_hw *hw); void ixgb_led_off(struct ixgb_hw *hw); void ixgb_write_pci_cfg(struct ixgb_hw *hw, - uint32_t reg, - uint16_t * value); + u32 reg, + u16 * value); #endif /* _IXGB_HW_H_ */ diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index 6738b4d097f..cb8daddafa2 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c @@ -67,7 +67,7 @@ MODULE_DEVICE_TABLE(pci, ixgb_pci_tbl); /* Local Function Prototypes */ int ixgb_up(struct ixgb_adapter *adapter); -void ixgb_down(struct ixgb_adapter *adapter, boolean_t kill_watchdog); +void ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog); void ixgb_reset(struct ixgb_adapter *adapter); int ixgb_setup_tx_resources(struct ixgb_adapter *adapter); int ixgb_setup_rx_resources(struct ixgb_adapter *adapter); @@ -94,22 +94,22 @@ static struct net_device_stats *ixgb_get_stats(struct net_device *netdev); static int ixgb_change_mtu(struct net_device *netdev, int new_mtu); static int ixgb_set_mac(struct net_device *netdev, void *p); static irqreturn_t ixgb_intr(int irq, void *data); -static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter); +static bool ixgb_clean_tx_irq(struct ixgb_adapter *adapter); #ifdef CONFIG_IXGB_NAPI static int ixgb_clean(struct napi_struct *napi, int budget); -static boolean_t ixgb_clean_rx_irq(struct ixgb_adapter *adapter, - int *work_done, int work_to_do); +static bool ixgb_clean_rx_irq(struct ixgb_adapter *adapter, + int *work_done, int work_to_do); #else -static boolean_t ixgb_clean_rx_irq(struct ixgb_adapter *adapter); +static bool ixgb_clean_rx_irq(struct ixgb_adapter *adapter); #endif static void ixgb_alloc_rx_buffers(struct ixgb_adapter *adapter); static void ixgb_tx_timeout(struct net_device *dev); static void ixgb_tx_timeout_task(struct work_struct *work); static void ixgb_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp); -static void ixgb_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid); -static void ixgb_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid); +static void ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid); +static void ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); static void ixgb_restore_vlan(struct ixgb_adapter *adapter); #ifdef CONFIG_NET_POLL_CONTROLLER @@ -197,7 +197,6 @@ module_exit(ixgb_exit_module); static void ixgb_irq_disable(struct ixgb_adapter *adapter) { - atomic_inc(&adapter->irq_sem); IXGB_WRITE_REG(&adapter->hw, IMC, ~0); IXGB_WRITE_FLUSH(&adapter->hw); synchronize_irq(adapter->pdev->irq); @@ -211,14 +210,12 @@ ixgb_irq_disable(struct ixgb_adapter *adapter) static void ixgb_irq_enable(struct ixgb_adapter *adapter) { - if(atomic_dec_and_test(&adapter->irq_sem)) { - u32 val = IXGB_INT_RXT0 | IXGB_INT_RXDMT0 | - IXGB_INT_TXDW | IXGB_INT_LSC; - if (adapter->hw.subsystem_vendor_id == SUN_SUBVENDOR_ID) - val |= IXGB_INT_GPI0; - IXGB_WRITE_REG(&adapter->hw, IMS, val); - IXGB_WRITE_FLUSH(&adapter->hw); - } + u32 val = IXGB_INT_RXT0 | IXGB_INT_RXDMT0 | + IXGB_INT_TXDW | IXGB_INT_LSC; + if (adapter->hw.subsystem_vendor_id == SUN_SUBVENDOR_ID) + val |= IXGB_INT_GPI0; + IXGB_WRITE_REG(&adapter->hw, IMS, val); + IXGB_WRITE_FLUSH(&adapter->hw); } int @@ -274,7 +271,7 @@ ixgb_up(struct ixgb_adapter *adapter) if(hw->max_frame_size > IXGB_MAX_ENET_FRAME_SIZE_WITHOUT_FCS + ENET_FCS_LENGTH) { - uint32_t ctrl0 = IXGB_READ_REG(hw, CTRL0); + u32 ctrl0 = IXGB_READ_REG(hw, CTRL0); if(!(ctrl0 & IXGB_CTRL0_JFE)) { ctrl0 |= IXGB_CTRL0_JFE; @@ -283,26 +280,30 @@ ixgb_up(struct ixgb_adapter *adapter) } } - mod_timer(&adapter->watchdog_timer, jiffies); + clear_bit(__IXGB_DOWN, &adapter->flags); #ifdef CONFIG_IXGB_NAPI napi_enable(&adapter->napi); #endif ixgb_irq_enable(adapter); + mod_timer(&adapter->watchdog_timer, jiffies); + return 0; } void -ixgb_down(struct ixgb_adapter *adapter, boolean_t kill_watchdog) +ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog) { struct net_device *netdev = adapter->netdev; + /* prevent the interrupt handler from restarting watchdog */ + set_bit(__IXGB_DOWN, &adapter->flags); + #ifdef CONFIG_IXGB_NAPI napi_disable(&adapter->napi); - atomic_set(&adapter->irq_sem, 0); #endif - + /* waiting for NAPI to complete can re-enable interrupts */ ixgb_irq_disable(adapter); free_irq(adapter->pdev->irq, netdev); @@ -589,9 +590,9 @@ ixgb_sw_init(struct ixgb_adapter *adapter) /* enable flow control to be programmed */ hw->fc.send_xon = 1; - atomic_set(&adapter->irq_sem, 1); spin_lock_init(&adapter->tx_lock); + set_bit(__IXGB_DOWN, &adapter->flags); return 0; } @@ -656,7 +657,7 @@ ixgb_close(struct net_device *netdev) { struct ixgb_adapter *adapter = netdev_priv(netdev); - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); ixgb_free_tx_resources(adapter); ixgb_free_rx_resources(adapter); @@ -717,9 +718,9 @@ ixgb_setup_tx_resources(struct ixgb_adapter *adapter) static void ixgb_configure_tx(struct ixgb_adapter *adapter) { - uint64_t tdba = adapter->tx_ring.dma; - uint32_t tdlen = adapter->tx_ring.count * sizeof(struct ixgb_tx_desc); - uint32_t tctl; + u64 tdba = adapter->tx_ring.dma; + u32 tdlen = adapter->tx_ring.count * sizeof(struct ixgb_tx_desc); + u32 tctl; struct ixgb_hw *hw = &adapter->hw; /* Setup the Base and Length of the Tx Descriptor Ring @@ -805,7 +806,7 @@ ixgb_setup_rx_resources(struct ixgb_adapter *adapter) static void ixgb_setup_rctl(struct ixgb_adapter *adapter) { - uint32_t rctl; + u32 rctl; rctl = IXGB_READ_REG(&adapter->hw, RCTL); @@ -840,12 +841,12 @@ ixgb_setup_rctl(struct ixgb_adapter *adapter) static void ixgb_configure_rx(struct ixgb_adapter *adapter) { - uint64_t rdba = adapter->rx_ring.dma; - uint32_t rdlen = adapter->rx_ring.count * sizeof(struct ixgb_rx_desc); + u64 rdba = adapter->rx_ring.dma; + u32 rdlen = adapter->rx_ring.count * sizeof(struct ixgb_rx_desc); struct ixgb_hw *hw = &adapter->hw; - uint32_t rctl; - uint32_t rxcsum; - uint32_t rxdctl; + u32 rctl; + u32 rxcsum; + u32 rxdctl; /* make sure receives are disabled while setting up the descriptors */ @@ -881,7 +882,7 @@ ixgb_configure_rx(struct ixgb_adapter *adapter) IXGB_WRITE_REG(hw, RXDCTL, rxdctl); /* Enable Receive Checksum Offload for TCP and UDP */ - if(adapter->rx_csum == TRUE) { + if (adapter->rx_csum) { rxcsum = IXGB_READ_REG(hw, RXCSUM); rxcsum |= IXGB_RXCSUM_TUOFL; IXGB_WRITE_REG(hw, RXCSUM, rxcsum); @@ -1078,7 +1079,7 @@ ixgb_set_multi(struct net_device *netdev) struct ixgb_adapter *adapter = netdev_priv(netdev); struct ixgb_hw *hw = &adapter->hw; struct dev_mc_list *mc_ptr; - uint32_t rctl; + u32 rctl; int i; /* Check for Promiscuous and All Multicast modes */ @@ -1098,7 +1099,7 @@ ixgb_set_multi(struct net_device *netdev) rctl |= IXGB_RCTL_MPE; IXGB_WRITE_REG(hw, RCTL, rctl); } else { - uint8_t mta[IXGB_MAX_NUM_MULTICAST_ADDRESSES * + u8 mta[IXGB_MAX_NUM_MULTICAST_ADDRESSES * IXGB_ETH_LENGTH_OF_ADDRESS]; IXGB_WRITE_REG(hw, RCTL, rctl); @@ -1164,7 +1165,7 @@ ixgb_watchdog(unsigned long data) } /* Force detection of hung controller every watchdog period */ - adapter->detect_tx_hung = TRUE; + adapter->detect_tx_hung = true; /* generate an interrupt to force clean up of any stragglers */ IXGB_WRITE_REG(&adapter->hw, ICS, IXGB_INT_TXDW); @@ -1182,8 +1183,8 @@ ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb) { struct ixgb_context_desc *context_desc; unsigned int i; - uint8_t ipcss, ipcso, tucss, tucso, hdr_len; - uint16_t ipcse, tucse, mss; + u8 ipcss, ipcso, tucss, tucso, hdr_len; + u16 ipcse, tucse, mss; int err; if (likely(skb_is_gso(skb))) { @@ -1243,12 +1244,12 @@ ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb) return 0; } -static boolean_t +static bool ixgb_tx_csum(struct ixgb_adapter *adapter, struct sk_buff *skb) { struct ixgb_context_desc *context_desc; unsigned int i; - uint8_t css, cso; + u8 css, cso; if(likely(skb->ip_summed == CHECKSUM_PARTIAL)) { struct ixgb_buffer *buffer_info; @@ -1264,7 +1265,7 @@ ixgb_tx_csum(struct ixgb_adapter *adapter, struct sk_buff *skb) context_desc->tucso = cso; context_desc->tucse = 0; /* zero out any previously existing data in one instruction */ - *(uint32_t *)&(context_desc->ipcss) = 0; + *(u32 *)&(context_desc->ipcss) = 0; context_desc->status = 0; context_desc->hdr_len = 0; context_desc->mss = 0; @@ -1275,10 +1276,10 @@ ixgb_tx_csum(struct ixgb_adapter *adapter, struct sk_buff *skb) if(++i == adapter->tx_ring.count) i = 0; adapter->tx_ring.next_to_use = i; - return TRUE; + return true; } - return FALSE; + return false; } #define IXGB_MAX_TXD_PWR 14 @@ -1371,9 +1372,9 @@ ixgb_tx_queue(struct ixgb_adapter *adapter, int count, int vlan_id,int tx_flags) struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; struct ixgb_tx_desc *tx_desc = NULL; struct ixgb_buffer *buffer_info; - uint32_t cmd_type_len = adapter->tx_cmd_type; - uint8_t status = 0; - uint8_t popts = 0; + u32 cmd_type_len = adapter->tx_cmd_type; + u8 status = 0; + u8 popts = 0; unsigned int i; if(tx_flags & IXGB_TX_FLAGS_TSO) { @@ -1464,14 +1465,18 @@ ixgb_xmit_frame(struct sk_buff *skb, struct net_device *netdev) int vlan_id = 0; int tso; + if (test_bit(__IXGB_DOWN, &adapter->flags)) { + dev_kfree_skb(skb); + return NETDEV_TX_OK; + } + if(skb->len <= 0) { dev_kfree_skb_any(skb); return 0; } #ifdef NETIF_F_LLTX - local_irq_save(flags); - if (!spin_trylock(&adapter->tx_lock)) { + if (!spin_trylock_irqsave(&adapter->tx_lock, flags)) { /* Collision - tell upper layer to requeue */ local_irq_restore(flags); return NETDEV_TX_LOCKED; @@ -1548,7 +1553,7 @@ ixgb_tx_timeout_task(struct work_struct *work) container_of(work, struct ixgb_adapter, tx_timeout_task); adapter->tx_timeout_count++; - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); ixgb_up(adapter); } @@ -1595,7 +1600,7 @@ ixgb_change_mtu(struct net_device *netdev, int new_mtu) netdev->mtu = new_mtu; if ((old_max_frame != max_frame) && netif_running(netdev)) { - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); ixgb_up(adapter); } @@ -1745,7 +1750,7 @@ ixgb_intr(int irq, void *data) struct net_device *netdev = data; struct ixgb_adapter *adapter = netdev_priv(netdev); struct ixgb_hw *hw = &adapter->hw; - uint32_t icr = IXGB_READ_REG(hw, ICR); + u32 icr = IXGB_READ_REG(hw, ICR); #ifndef CONFIG_IXGB_NAPI unsigned int i; #endif @@ -1753,9 +1758,9 @@ ixgb_intr(int irq, void *data) if(unlikely(!icr)) return IRQ_NONE; /* Not our interrupt */ - if(unlikely(icr & (IXGB_INT_RXSEQ | IXGB_INT_LSC))) { - mod_timer(&adapter->watchdog_timer, jiffies); - } + if (unlikely(icr & (IXGB_INT_RXSEQ | IXGB_INT_LSC))) + if (!test_bit(__IXGB_DOWN, &adapter->flags)) + mod_timer(&adapter->watchdog_timer, jiffies); #ifdef CONFIG_IXGB_NAPI if (netif_rx_schedule_prep(netdev, &adapter->napi)) { @@ -1764,7 +1769,6 @@ ixgb_intr(int irq, void *data) of the posted write is intentionally left out. */ - atomic_inc(&adapter->irq_sem); IXGB_WRITE_REG(&adapter->hw, IMC, ~0); __netif_rx_schedule(netdev, &adapter->napi); } @@ -1812,7 +1816,7 @@ ixgb_clean(struct napi_struct *napi, int budget) * @adapter: board private structure **/ -static boolean_t +static bool ixgb_clean_tx_irq(struct ixgb_adapter *adapter) { struct ixgb_desc_ring *tx_ring = &adapter->tx_ring; @@ -1820,7 +1824,7 @@ ixgb_clean_tx_irq(struct ixgb_adapter *adapter) struct ixgb_tx_desc *tx_desc, *eop_desc; struct ixgb_buffer *buffer_info; unsigned int i, eop; - boolean_t cleaned = FALSE; + bool cleaned = false; i = tx_ring->next_to_clean; eop = tx_ring->buffer_info[i].next_to_watch; @@ -1828,7 +1832,7 @@ ixgb_clean_tx_irq(struct ixgb_adapter *adapter) while(eop_desc->status & IXGB_TX_DESC_STATUS_DD) { - for(cleaned = FALSE; !cleaned; ) { + for (cleaned = false; !cleaned; ) { tx_desc = IXGB_TX_DESC(*tx_ring, i); buffer_info = &tx_ring->buffer_info[i]; @@ -1839,7 +1843,7 @@ ixgb_clean_tx_irq(struct ixgb_adapter *adapter) ixgb_unmap_and_free_tx_resource(adapter, buffer_info); - *(uint32_t *)&(tx_desc->status) = 0; + *(u32 *)&(tx_desc->status) = 0; cleaned = (i == eop); if(++i == tx_ring->count) i = 0; @@ -1862,7 +1866,7 @@ ixgb_clean_tx_irq(struct ixgb_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 + HZ) && !(IXGB_READ_REG(&adapter->hw, STATUS) & @@ -1932,7 +1936,7 @@ ixgb_rx_checksum(struct ixgb_adapter *adapter, * @adapter: board private structure **/ -static boolean_t +static bool #ifdef CONFIG_IXGB_NAPI ixgb_clean_rx_irq(struct ixgb_adapter *adapter, int *work_done, int work_to_do) #else @@ -1944,9 +1948,9 @@ ixgb_clean_rx_irq(struct ixgb_adapter *adapter) struct pci_dev *pdev = adapter->pdev; struct ixgb_rx_desc *rx_desc, *next_rxd; struct ixgb_buffer *buffer_info, *next_buffer, *next2_buffer; - uint32_t length; + u32 length; unsigned int i, j; - boolean_t cleaned = FALSE; + bool cleaned = false; i = rx_ring->next_to_clean; rx_desc = IXGB_RX_DESC(*rx_ring, i); @@ -1980,7 +1984,7 @@ ixgb_clean_rx_irq(struct ixgb_adapter *adapter) next_skb = next_buffer->skb; prefetch(next_skb); - cleaned = TRUE; + cleaned = true; pci_unmap_single(pdev, buffer_info->dma, @@ -2162,7 +2166,7 @@ static void ixgb_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) { struct ixgb_adapter *adapter = netdev_priv(netdev); - uint32_t ctrl, rctl; + u32 ctrl, rctl; ixgb_irq_disable(adapter); adapter->vlgrp = grp; @@ -2193,14 +2197,16 @@ ixgb_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp) IXGB_WRITE_REG(&adapter->hw, RCTL, rctl); } - ixgb_irq_enable(adapter); + /* don't enable interrupts unless we are UP */ + if (adapter->netdev->flags & IFF_UP) + ixgb_irq_enable(adapter); } static void -ixgb_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid) +ixgb_vlan_rx_add_vid(struct net_device *netdev, u16 vid) { struct ixgb_adapter *adapter = netdev_priv(netdev); - uint32_t vfta, index; + u32 vfta, index; /* add VID to filter table */ @@ -2211,18 +2217,20 @@ ixgb_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid) } static void -ixgb_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid) +ixgb_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) { struct ixgb_adapter *adapter = netdev_priv(netdev); - uint32_t vfta, index; + u32 vfta, index; ixgb_irq_disable(adapter); vlan_group_set_device(adapter->vlgrp, vid, NULL); - ixgb_irq_enable(adapter); + /* don't enable interrupts unless we are UP */ + if (adapter->netdev->flags & IFF_UP) + ixgb_irq_enable(adapter); - /* remove VID from filter table*/ + /* remove VID from filter table */ index = (vid >> 5) & 0x7F; vfta = IXGB_READ_REG_ARRAY(&adapter->hw, VFTA, index); @@ -2236,7 +2244,7 @@ ixgb_restore_vlan(struct ixgb_adapter *adapter) ixgb_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; @@ -2277,7 +2285,7 @@ static pci_ers_result_t ixgb_io_error_detected (struct pci_dev *pdev, struct ixgb_adapter *adapter = netdev_priv(netdev); if(netif_running(netdev)) - ixgb_down(adapter, TRUE); + ixgb_down(adapter, true); pci_disable_device(pdev); diff --git a/drivers/net/ixgb/ixgb_osdep.h b/drivers/net/ixgb/ixgb_osdep.h index 9e04a6b3ae0..4be1b273e1b 100644 --- a/drivers/net/ixgb/ixgb_osdep.h +++ b/drivers/net/ixgb/ixgb_osdep.h @@ -39,13 +39,6 @@ #include <linux/interrupt.h> #include <linux/sched.h> -typedef enum { -#undef FALSE - FALSE = 0, -#undef TRUE - TRUE = 1 -} boolean_t; - #undef ASSERT #define ASSERT(x) if(!(x)) BUG() #define MSGOUT(S, A, B) printk(KERN_DEBUG S "\n", A, B) |