Merge branch 'intel-wired-lan-driver-updates-2024-06-03'
Jacob Keller says: ==================== Intel Wired LAN Driver Updates 2024-06-03 This series includes miscellaneous improvements for the ice as well as a cleanup to the Makefiles for all Intel net drivers. Andy fixes all of the Intel net driver Makefiles to use the documented '*-y' syntax for specifying object files to link into kernel driver modules, rather than the '*-objs' syntax which works but is documented as reserved for user-space host programs. Jacob has a cleanup to refactor rounding logic in the ice driver into a common roundup_u64 helper function. Michal Schmidt replaces irq_set_affinity_hint() to use irq_update_affinity_hint() which behaves better with user-applied affinity settings. v2: https://lore.kernel.org/r/20240605-next-2024-06-03-intel-next-batch-v2-0-39c23963fa78@intel.com v1: https://lore.kernel.org/r/20240603-next-2024-06-03-intel-next-batch-v1-0-e0523b28f325@intel.com ==================== Link: https://lore.kernel.org/r/20240607-next-2024-06-03-intel-next-batch-v3-0-d1470cee3347@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
bb678f0180
@ -7,4 +7,4 @@
|
||||
|
||||
obj-$(CONFIG_E1000) += e1000.o
|
||||
|
||||
e1000-objs := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o
|
||||
e1000-y := e1000_main.o e1000_hw.o e1000_ethtool.o e1000_param.o
|
||||
|
@ -10,7 +10,6 @@ subdir-ccflags-y += -I$(src)
|
||||
|
||||
obj-$(CONFIG_E1000E) += e1000e.o
|
||||
|
||||
e1000e-objs := 82571.o ich8lan.o 80003es2lan.o \
|
||||
e1000e-y := 82571.o ich8lan.o 80003es2lan.o \
|
||||
mac.o manage.o nvm.o phy.o \
|
||||
param.o ethtool.o netdev.o ptp.o
|
||||
|
||||
|
@ -10,7 +10,7 @@ subdir-ccflags-y += -I$(src)
|
||||
|
||||
obj-$(CONFIG_I40E) += i40e.o
|
||||
|
||||
i40e-objs := i40e_main.o \
|
||||
i40e-y := i40e_main.o \
|
||||
i40e_ethtool.o \
|
||||
i40e_adminq.o \
|
||||
i40e_common.o \
|
||||
|
@ -11,6 +11,5 @@ subdir-ccflags-y += -I$(src)
|
||||
|
||||
obj-$(CONFIG_IAVF) += iavf.o
|
||||
|
||||
iavf-objs := iavf_main.o iavf_ethtool.o iavf_virtchnl.o iavf_fdir.o \
|
||||
iavf_adv_rss.o \
|
||||
iavf_txrx.o iavf_common.o iavf_adminq.o
|
||||
iavf-y := iavf_main.o iavf_ethtool.o iavf_virtchnl.o iavf_fdir.o \
|
||||
iavf_adv_rss.o iavf_txrx.o iavf_common.o iavf_adminq.o
|
||||
|
@ -2580,8 +2580,8 @@ void ice_vsi_free_irq(struct ice_vsi *vsi)
|
||||
if (!IS_ENABLED(CONFIG_RFS_ACCEL))
|
||||
irq_set_affinity_notifier(irq_num, NULL);
|
||||
|
||||
/* clear the affinity_mask in the IRQ descriptor */
|
||||
irq_set_affinity_hint(irq_num, NULL);
|
||||
/* clear the affinity_hint in the IRQ descriptor */
|
||||
irq_update_affinity_hint(irq_num, NULL);
|
||||
synchronize_irq(irq_num);
|
||||
devm_free_irq(ice_pf_to_dev(pf), irq_num, vsi->q_vectors[i]);
|
||||
}
|
||||
|
@ -2607,7 +2607,7 @@ static int ice_vsi_req_irq_msix(struct ice_vsi *vsi, char *basename)
|
||||
}
|
||||
|
||||
/* assign the mask for this irq */
|
||||
irq_set_affinity_hint(irq_num, &q_vector->affinity_mask);
|
||||
irq_update_affinity_hint(irq_num, &q_vector->affinity_mask);
|
||||
}
|
||||
|
||||
err = ice_set_cpu_rx_rmap(vsi);
|
||||
@ -2625,7 +2625,7 @@ free_q_irqs:
|
||||
irq_num = vsi->q_vectors[vector]->irq.virq;
|
||||
if (!IS_ENABLED(CONFIG_RFS_ACCEL))
|
||||
irq_set_affinity_notifier(irq_num, NULL);
|
||||
irq_set_affinity_hint(irq_num, NULL);
|
||||
irq_update_affinity_hint(irq_num, NULL);
|
||||
devm_free_irq(dev, irq_num, &vsi->q_vectors[vector]);
|
||||
}
|
||||
return err;
|
||||
|
@ -1773,8 +1773,7 @@ static int ice_ptp_cfg_clkout(struct ice_pf *pf, unsigned int chan,
|
||||
* maintaining phase
|
||||
*/
|
||||
if (start_time < current_time)
|
||||
start_time = div64_u64(current_time + NSEC_PER_SEC - 1,
|
||||
NSEC_PER_SEC) * NSEC_PER_SEC + phase;
|
||||
start_time = roundup_u64(current_time, NSEC_PER_SEC) + phase;
|
||||
|
||||
if (ice_is_e810(hw))
|
||||
start_time -= E810_OUT_PROP_DELAY_NS;
|
||||
|
@ -6,6 +6,6 @@
|
||||
|
||||
obj-$(CONFIG_IGB) += igb.o
|
||||
|
||||
igb-objs := igb_main.o igb_ethtool.o e1000_82575.o \
|
||||
igb-y := igb_main.o igb_ethtool.o e1000_82575.o \
|
||||
e1000_mac.o e1000_nvm.o e1000_phy.o e1000_mbx.o \
|
||||
e1000_i210.o igb_ptp.o igb_hwmon.o
|
||||
|
@ -6,8 +6,4 @@
|
||||
|
||||
obj-$(CONFIG_IGBVF) += igbvf.o
|
||||
|
||||
igbvf-objs := vf.o \
|
||||
mbx.o \
|
||||
ethtool.o \
|
||||
netdev.o
|
||||
|
||||
igbvf-y := vf.o mbx.o ethtool.o netdev.o
|
||||
|
@ -6,7 +6,7 @@
|
||||
#
|
||||
|
||||
obj-$(CONFIG_IGC) += igc.o
|
||||
igc-$(CONFIG_IGC_LEDS) += igc_leds.o
|
||||
|
||||
igc-objs := igc_main.o igc_mac.o igc_i225.o igc_base.o igc_nvm.o igc_phy.o \
|
||||
igc-y := igc_main.o igc_mac.o igc_i225.o igc_base.o igc_nvm.o igc_phy.o \
|
||||
igc_diag.o igc_ethtool.o igc_ptp.o igc_dump.o igc_tsn.o igc_xdp.o
|
||||
igc-$(CONFIG_IGC_LEDS) += igc_leds.o
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
obj-$(CONFIG_IXGBE) += ixgbe.o
|
||||
|
||||
ixgbe-objs := ixgbe_main.o ixgbe_common.o ixgbe_ethtool.o \
|
||||
ixgbe-y := ixgbe_main.o ixgbe_common.o ixgbe_ethtool.o \
|
||||
ixgbe_82599.o ixgbe_82598.o ixgbe_phy.o ixgbe_sriov.o \
|
||||
ixgbe_mbx.o ixgbe_x540.o ixgbe_x550.o ixgbe_lib.o ixgbe_ptp.o \
|
||||
ixgbe_xsk.o
|
||||
|
@ -6,9 +6,5 @@
|
||||
|
||||
obj-$(CONFIG_IXGBEVF) += ixgbevf.o
|
||||
|
||||
ixgbevf-objs := vf.o \
|
||||
mbx.o \
|
||||
ethtool.o \
|
||||
ixgbevf_main.o
|
||||
ixgbevf-y := vf.o mbx.o ethtool.o ixgbevf_main.o
|
||||
ixgbevf-$(CONFIG_IXGBEVF_IPSEC) += ipsec.o
|
||||
|
||||
|
@ -3,4 +3,4 @@
|
||||
|
||||
obj-$(CONFIG_LIBETH) += libeth.o
|
||||
|
||||
libeth-objs += rx.o
|
||||
libeth-y := rx.o
|
||||
|
@ -3,4 +3,4 @@
|
||||
|
||||
obj-$(CONFIG_LIBIE) += libie.o
|
||||
|
||||
libie-objs += rx.o
|
||||
libie-y := rx.o
|
||||
|
@ -297,6 +297,19 @@ u64 mul_u64_u64_div_u64(u64 a, u64 mul, u64 div);
|
||||
#define DIV64_U64_ROUND_UP(ll, d) \
|
||||
({ u64 _tmp = (d); div64_u64((ll) + _tmp - 1, _tmp); })
|
||||
|
||||
/**
|
||||
* DIV_U64_ROUND_UP - unsigned 64bit divide with 32bit divisor rounded up
|
||||
* @ll: unsigned 64bit dividend
|
||||
* @d: unsigned 32bit divisor
|
||||
*
|
||||
* Divide unsigned 64bit dividend by unsigned 32bit divisor
|
||||
* and round up.
|
||||
*
|
||||
* Return: dividend / divisor rounded up
|
||||
*/
|
||||
#define DIV_U64_ROUND_UP(ll, d) \
|
||||
({ u32 _tmp = (d); div_u64((ll) + _tmp - 1, _tmp); })
|
||||
|
||||
/**
|
||||
* DIV64_U64_ROUND_CLOSEST - unsigned 64bit divide with 64bit divisor rounded to nearest integer
|
||||
* @dividend: unsigned 64bit dividend
|
||||
@ -342,4 +355,19 @@ u64 mul_u64_u64_div_u64(u64 a, u64 mul, u64 div);
|
||||
div_s64((__x - (__d / 2)), __d); \
|
||||
} \
|
||||
)
|
||||
|
||||
/**
|
||||
* roundup_u64 - Round up a 64bit value to the next specified 32bit multiple
|
||||
* @x: the value to up
|
||||
* @y: 32bit multiple to round up to
|
||||
*
|
||||
* Rounds @x to the next multiple of @y. For 32bit @x values, see roundup and
|
||||
* the faster round_up() for powers of 2.
|
||||
*
|
||||
* Return: rounded up value.
|
||||
*/
|
||||
static inline u64 roundup_u64(u64 x, u32 y)
|
||||
{
|
||||
return DIV_U64_ROUND_UP(x, y) * y;
|
||||
}
|
||||
#endif /* _LINUX_MATH64_H */
|
||||
|
Loading…
Reference in New Issue
Block a user