Commit 47ee0543 authored by Pavan Kumar Linga's avatar Pavan Kumar Linga Committed by Tony Nguyen
Browse files

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: default avatarAnton Nadezhdin <anton.nadezhdin@intel.com>
Signed-off-by: default avatarPavan Kumar Linga <pavan.kumar.linga@intel.com>
Reviewed-by: default avatarAleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: default avatarSamuel Salin <Samuel.salin@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent f6892116
Loading
Loading
Loading
Loading
+15 −17
Original line number Diff line number Diff line
@@ -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;