From: Pavan Kumar Linga Date: Thu, 13 Nov 2025 00:41:38 +0000 (-0800) Subject: idpf: reshuffle idpf_vport struct members to avoid holes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47ee0543a45042b54f85a935ae2f1422b30028a9;p=thirdparty%2Fkernel%2Flinux.git idpf: reshuffle idpf_vport struct members to avoid holes The previous refactor of moving queue and vector resources out of the idpf_vport structure, created few holes. Reshuffle the existing members to avoid holes as much as possible. Reviewed-by: Anton Nadezhdin Signed-off-by: Pavan Kumar Linga Reviewed-by: Aleksandr Loktionov Tested-by: Samuel Salin Signed-off-by: Tony Nguyen --- diff --git a/drivers/net/ethernet/intel/idpf/idpf.h b/drivers/net/ethernet/intel/idpf/idpf.h index 77268739731e..4d005986d784 100644 --- a/drivers/net/ethernet/intel/idpf/idpf.h +++ b/drivers/net/ethernet/intel/idpf/idpf.h @@ -349,29 +349,29 @@ struct idpf_q_vec_rsrc { /** * struct idpf_vport - Handle for netdevices and queue resources * @dflt_qv_rsrc: contains default queue and vector resources - * @num_txq: Number of allocated TX queues - * @compln_clean_budget: Work budget for completion clean * @txqs: Used only in hotpath to get to the right queue very fast - * @crc_enable: Enable CRC insertion offload - * @xdpsq_share: whether XDPSQ sharing is enabled + * @num_txq: Number of allocated TX queues * @num_xdp_txq: number of XDPSQs * @xdp_txq_offset: index of the first XDPSQ (== number of regular SQs) + * @xdpsq_share: whether XDPSQ sharing is enabled * @xdp_prog: installed XDP program - * @rx_ptype_lkup: Lookup table for ptypes on RX * @vdev_info: IDC vport device info pointer * @adapter: back pointer to associated adapter * @netdev: Associated net_device. Each vport should have one and only one * associated netdev. * @flags: See enum idpf_vport_flags - * @vport_type: Default SRIOV, SIOV, etc. + * @compln_clean_budget: Work budget for completion clean * @vport_id: Device given vport identifier + * @vport_type: Default SRIOV, SIOV, etc. * @idx: Software index in adapter vports struct - * @default_vport: Use this vport if one isn't specified * @max_mtu: device given max possible MTU * @default_mac_addr: device will give a default MAC to use * @rx_itr_profile: RX profiles for Dynamic Interrupt Moderation * @tx_itr_profile: TX profiles for Dynamic Interrupt Moderation + * @rx_ptype_lkup: Lookup table for ptypes on RX * @port_stats: per port csum, header split, and other offload stats + * @default_vport: Use this vport if one isn't specified + * @crc_enable: Enable CRC insertion offload * @link_up: True if link is up * @tx_tstamp_caps: Capabilities negotiated for Tx timestamping * @tstamp_config: The Tx tstamp config @@ -380,34 +380,32 @@ struct idpf_q_vec_rsrc { */ struct idpf_vport { struct idpf_q_vec_rsrc dflt_qv_rsrc; - u16 num_txq; - u32 compln_clean_budget; struct idpf_tx_queue **txqs; - bool crc_enable; - - bool xdpsq_share; + u16 num_txq; u16 num_xdp_txq; u16 xdp_txq_offset; + bool xdpsq_share; struct bpf_prog *xdp_prog; - struct libeth_rx_pt *rx_ptype_lkup; - struct iidc_rdma_vport_dev_info *vdev_info; struct idpf_adapter *adapter; struct net_device *netdev; DECLARE_BITMAP(flags, IDPF_VPORT_FLAGS_NBITS); - u16 vport_type; + u32 compln_clean_budget; u32 vport_id; + u16 vport_type; u16 idx; - bool default_vport; u16 max_mtu; u8 default_mac_addr[ETH_ALEN]; u16 rx_itr_profile[IDPF_DIM_PROFILE_SLOTS]; u16 tx_itr_profile[IDPF_DIM_PROFILE_SLOTS]; - struct idpf_port_stats port_stats; + struct libeth_rx_pt *rx_ptype_lkup; + struct idpf_port_stats port_stats; + bool default_vport; + bool crc_enable; bool link_up; struct idpf_ptp_vport_tx_tstamp_caps *tx_tstamp_caps;