mirror_ubuntu-kernels/drivers/net/ethernet/intel
Alan Brady 1c0e6a3613 i40e: refactor macro INTRL_USEC_TO_REG
This patch refactors the macro INTRL_USEC_TO_REG into a static inline
function and fixes a couple subtle bugs caused by the macro.

This patch fixes a bug which was caused by passing a bad register value
to the firmware.  If enabling interrupt rate limiting, a non-zero value
for the rate limit must be used.  Otherwise the firmware sets the
interrupt rate limit to the maximum value.  Due to the limited
resolution of the register, attempting to set a value of 1, 2, or 3
would be rounded down to 0 and limiting was left enabled, causing
unexpected behavior.

This patch also fixes a possible bug in which using the macro itself can
introduce unintended side-affects because the macro argument is used
more than once in the macro definition (e.g. a variable post-increment
argument would perform a double increment on the variable).

Without this patch, attempting to set interrupt rate limits of 1, 2, or
3 results in unexpected behavior and future use of this macro could
cause subtle bugs.

Change-Id: I83ac842de0ca9c86761923d6e3a4d7b1b95f2b3f
Signed-off-by: Alan Brady <alan.brady@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-02-02 22:42:40 -08:00
..
e1000 e1000: use disable_hardirq() for e1000_netpoll() 2016-12-10 23:31:19 -05:00
e1000e net: Remove usage of net_device last_rx member 2017-01-18 17:22:49 -05:00
fm10k net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
i40e i40e: refactor macro INTRL_USEC_TO_REG 2017-02-02 22:42:40 -08:00
i40evf i40e: Remove FPK HyperV VF device ID 2017-02-02 22:41:40 -08:00
igb net: Remove usage of net_device last_rx member 2017-01-18 17:22:49 -05:00
igbvf Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
ixgb drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
ixgbe net: Remove usage of net_device last_rx member 2017-01-18 17:22:49 -05:00
ixgbevf net: make ndo_get_stats64 a void function 2017-01-08 17:51:44 -05:00
e100.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
Kconfig ptp_clock: Allow for it to be optional 2016-11-16 09:26:34 +01:00
Makefile fm10k: Add skeletal frame for Intel(R) FM10000 Ethernet Switch Host Interface Driver 2014-09-23 03:59:13 -07:00