diff options
author | Mark Rustad <mark.d.rustad@intel.com> | 2014-03-18 07:03:40 +0000 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-04-22 23:20:54 -0700 |
commit | f8e2472f4fe245aff1eec86f6248270abc940e1f (patch) | |
tree | 0b554ea2ccb67b40ec3b980c1233a4fdf3559f3b /drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | |
parent | ixgbe: convert low_water into an array (diff) | |
download | linux-dev-f8e2472f4fe245aff1eec86f6248270abc940e1f.tar.xz linux-dev-f8e2472f4fe245aff1eec86f6248270abc940e1f.zip |
ixgbe: Use out-of-line function for register reads
Register reads are slow, so don't inline them.
Size before:
text data bss dec hex filename
226337 8280 552 235169 396a1 ixgbe.ko
Size after:
text data bss dec hex filename
194578 8280 552 203410 31a92 ixgbe.ko
for about a 14% reduction in text size.
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_common.h')
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h index f12c40fb5537..d15ff2e5edb7 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.h @@ -141,8 +141,6 @@ static inline bool ixgbe_removed(void __iomem *addr) return unlikely(!addr); } -void ixgbe_check_remove(struct ixgbe_hw *hw, u32 reg); - static inline void ixgbe_write_reg(struct ixgbe_hw *hw, u32 reg, u32 value) { u8 __iomem *reg_addr = ACCESS_ONCE(hw->hw_addr); @@ -172,18 +170,7 @@ static inline void ixgbe_write_reg64(struct ixgbe_hw *hw, u32 reg, u64 value) } #define IXGBE_WRITE_REG64(a, reg, value) ixgbe_write_reg64((a), (reg), (value)) -static inline u32 ixgbe_read_reg(struct ixgbe_hw *hw, u32 reg) -{ - u8 __iomem *reg_addr = ACCESS_ONCE(hw->hw_addr); - u32 value; - - if (ixgbe_removed(reg_addr)) - return IXGBE_FAILED_READ_REG; - value = readl(reg_addr + reg); - if (unlikely(value == IXGBE_FAILED_READ_REG)) - ixgbe_check_remove(hw, reg); - return value; -} +u32 ixgbe_read_reg(struct ixgbe_hw *hw, u32 reg); #define IXGBE_READ_REG(a, reg) ixgbe_read_reg((a), (reg)) #define IXGBE_WRITE_REG_ARRAY(a, reg, offset, value) \ |