lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <IA3PR11MB898556480022FE0496393D9F8F5EA@IA3PR11MB8985.namprd11.prod.outlook.com>
Date: Thu, 24 Jul 2025 07:10:27 +0000
From: "Romanowski, Rafal" <rafal.romanowski@...el.com>
To: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>,
	"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "Lobakin, Aleksander"
	<aleksander.lobakin@...el.com>, "Kitszel, Przemyslaw"
	<przemyslaw.kitszel@...el.com>, "Kwapulinski, Piotr"
	<piotr.kwapulinski@...el.com>, "Loktionov, Aleksandr"
	<aleksandr.loktionov@...el.com>, "Jagielski, Jedrzej"
	<jedrzej.jagielski@...el.com>, "Zaremba, Larysa" <larysa.zaremba@...el.com>,
	"Nguyen, Anthony L" <anthony.l.nguyen@...el.com>
Subject: RE: [Intel-wired-lan] [iwl-next v3 4/8] iavf: use libie adminq
 descriptors

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of Michal
> Swiatkowski
> Sent: Friday, April 25, 2025 8:08 AM
> To: intel-wired-lan@...ts.osuosl.org
> Cc: netdev@...r.kernel.org; Lobakin, Aleksander
> <aleksander.lobakin@...el.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@...el.com>; Kwapulinski, Piotr
> <piotr.kwapulinski@...el.com>; Loktionov, Aleksandr
> <aleksandr.loktionov@...el.com>; Jagielski, Jedrzej <jedrzej.jagielski@...el.com>;
> Zaremba, Larysa <larysa.zaremba@...el.com>; Nguyen, Anthony L
> <anthony.l.nguyen@...el.com>
> Subject: [Intel-wired-lan] [iwl-next v3 4/8] iavf: use libie adminq descriptors
> 
> Use libie_aq_desc instead of iavf_aq_desc. Do needed changes to allow clean
> build
> 
> Use libie_aq_raw() wherever it can be used.
> 
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@...el.com>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>
> ---
>  drivers/net/ethernet/intel/iavf/iavf_adminq.h |  12 +-
> .../net/ethernet/intel/iavf/iavf_adminq_cmd.h |  83 +----------
>  .../net/ethernet/intel/iavf/iavf_prototype.h  |   4 +-
>  drivers/net/ethernet/intel/iavf/iavf_type.h   |   2 +-
>  drivers/net/ethernet/intel/iavf/iavf_adminq.c |  62 ++++----
> drivers/net/ethernet/intel/iavf/iavf_common.c | 134 +++++++++---------
>  6 files changed, 106 insertions(+), 191 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.h
> b/drivers/net/ethernet/intel/iavf/iavf_adminq.h
> index 406506f64bdd..bbf5c4b3a2ae 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.h
> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.h
> @@ -9,7 +9,7 @@
>  #include "iavf_adminq_cmd.h"
> 
>  #define IAVF_ADMINQ_DESC(R, i)   \
> -	(&(((struct iavf_aq_desc *)((R).desc_buf.va))[i]))
> +	(&(((struct libie_aq_desc *)((R).desc_buf.va))[i]))
> 
>  #define IAVF_ADMINQ_DESC_ALIGNMENT 4096
> 
> @@ -39,7 +39,7 @@ struct iavf_asq_cmd_details {
>  	u16 flags_dis;
>  	bool async;
>  	bool postpone;
> -	struct iavf_aq_desc *wb_desc;
> +	struct libie_aq_desc *wb_desc;
>  };
> 
>  #define IAVF_ADMINQ_DETAILS(R, i)   \
> @@ -47,7 +47,7 @@ struct iavf_asq_cmd_details {
> 
>  /* ARQ event information */
>  struct iavf_arq_event_info {
> -	struct iavf_aq_desc desc;
> +	struct libie_aq_desc desc;
>  	u16 msg_len;
>  	u16 buf_len;
>  	u8 *msg_buf;
> @@ -72,8 +72,8 @@ struct iavf_adminq_info {
>  	struct mutex arq_mutex; /* Receive queue lock */
> 
>  	/* last status values on send and receive queues */
> -	enum iavf_admin_queue_err asq_last_status;
> -	enum iavf_admin_queue_err arq_last_status;
> +	enum libie_aq_err asq_last_status;
> +	enum libie_aq_err arq_last_status;
>  };
> 
>  /**
> @@ -123,6 +123,6 @@ static inline int iavf_aq_rc_to_posix(int aq_ret, int aq_rc)
>  #define IAVF_AQ_LARGE_BUF	512
>  #define IAVF_ASQ_CMD_TIMEOUT	250000  /* usecs */
> 
> -void iavf_fill_default_direct_cmd_desc(struct iavf_aq_desc *desc, u16 opcode);
> +void iavf_fill_default_direct_cmd_desc(struct libie_aq_desc *desc, u16
> +opcode);
> 
>  #endif /* _IAVF_ADMINQ_H_ */
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq_cmd.h
> b/drivers/net/ethernet/intel/iavf/iavf_adminq_cmd.h
> index bc512308557b..0482c9ce9b9c 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq_cmd.h
> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq_cmd.h
> @@ -4,6 +4,8 @@
>  #ifndef _IAVF_ADMINQ_CMD_H_
>  #define _IAVF_ADMINQ_CMD_H_
> 
> +#include <linux/net/intel/libie/adminq.h>
> +
>  /* This header file defines the iavf Admin Queue commands and is shared
> between
>   * iavf Firmware and Software.
>   *
> @@ -21,87 +23,6 @@
>  /* API version 1.7 implements additional link and PHY-specific APIs  */  #define
> IAVF_MINOR_VER_GET_LINK_INFO_XL710 0x0007
> 
> -struct iavf_aq_desc {
> -	__le16 flags;
> -	__le16 opcode;
> -	__le16 datalen;
> -	__le16 retval;
> -	__le32 cookie_high;
> -	__le32 cookie_low;
> -	union {
> -		struct {
> -			__le32 param0;
> -			__le32 param1;
> -			__le32 param2;
> -			__le32 param3;
> -		} internal;
> -		struct {
> -			__le32 param0;
> -			__le32 param1;
> -			__le32 addr_high;
> -			__le32 addr_low;
> -		} external;
> -		u8 raw[16];
> -	} params;
> -};
> -
> -/* Flags sub-structure
> - * |0  |1  |2  |3  |4  |5  |6  |7  |8  |9  |10 |11 |12 |13 |14 |15 |
> - * |DD |CMP|ERR|VFE| * *  RESERVED * * |LB |RD |VFC|BUF|SI |EI |FE |
> - */
> -
> -/* command flags and offsets*/
> -#define IAVF_AQ_FLAG_DD_SHIFT	0
> -#define IAVF_AQ_FLAG_CMP_SHIFT	1
> -#define IAVF_AQ_FLAG_ERR_SHIFT	2
> -#define IAVF_AQ_FLAG_VFE_SHIFT	3
> -#define IAVF_AQ_FLAG_LB_SHIFT	9
> -#define IAVF_AQ_FLAG_RD_SHIFT	10
> -#define IAVF_AQ_FLAG_VFC_SHIFT	11
> -#define IAVF_AQ_FLAG_BUF_SHIFT	12
> -#define IAVF_AQ_FLAG_SI_SHIFT	13
> -#define IAVF_AQ_FLAG_EI_SHIFT	14
> -#define IAVF_AQ_FLAG_FE_SHIFT	15
> -
> -#define IAVF_AQ_FLAG_DD		BIT(IAVF_AQ_FLAG_DD_SHIFT)  /* 0x1
> */
> -#define IAVF_AQ_FLAG_CMP	BIT(IAVF_AQ_FLAG_CMP_SHIFT) /* 0x2    */
> -#define IAVF_AQ_FLAG_ERR	BIT(IAVF_AQ_FLAG_ERR_SHIFT) /* 0x4    */
> -#define IAVF_AQ_FLAG_VFE	BIT(IAVF_AQ_FLAG_VFE_SHIFT) /* 0x8    */
> -#define IAVF_AQ_FLAG_LB		BIT(IAVF_AQ_FLAG_LB_SHIFT)  /*
> 0x200  */
> -#define IAVF_AQ_FLAG_RD		BIT(IAVF_AQ_FLAG_RD_SHIFT)  /*
> 0x400  */
> -#define IAVF_AQ_FLAG_VFC	BIT(IAVF_AQ_FLAG_VFC_SHIFT) /* 0x800  */
> -#define IAVF_AQ_FLAG_BUF	BIT(IAVF_AQ_FLAG_BUF_SHIFT) /* 0x1000 */
> -#define IAVF_AQ_FLAG_SI		BIT(IAVF_AQ_FLAG_SI_SHIFT)  /*
> 0x2000 */
> -#define IAVF_AQ_FLAG_EI		BIT(IAVF_AQ_FLAG_EI_SHIFT)  /*
> 0x4000 */
> -#define IAVF_AQ_FLAG_FE		BIT(IAVF_AQ_FLAG_FE_SHIFT)  /*
> 0x8000 */
> -
> -/* error codes */
> -enum iavf_admin_queue_err {
> -	IAVF_AQ_RC_OK		= 0,  /* success */
> -	IAVF_AQ_RC_EPERM	= 1,  /* Operation not permitted */
> -	IAVF_AQ_RC_ENOENT	= 2,  /* No such element */
> -	IAVF_AQ_RC_ESRCH	= 3,  /* Bad opcode */
> -	IAVF_AQ_RC_EINTR	= 4,  /* operation interrupted */
> -	IAVF_AQ_RC_EIO		= 5,  /* I/O error */
> -	IAVF_AQ_RC_ENXIO	= 6,  /* No such resource */
> -	IAVF_AQ_RC_E2BIG	= 7,  /* Arg too long */
> -	IAVF_AQ_RC_EAGAIN	= 8,  /* Try again */
> -	IAVF_AQ_RC_ENOMEM	= 9,  /* Out of memory */
> -	IAVF_AQ_RC_EACCES	= 10, /* Permission denied */
> -	IAVF_AQ_RC_EFAULT	= 11, /* Bad address */
> -	IAVF_AQ_RC_EBUSY	= 12, /* Device or resource busy */
> -	IAVF_AQ_RC_EEXIST	= 13, /* object already exists */
> -	IAVF_AQ_RC_EINVAL	= 14, /* Invalid argument */
> -	IAVF_AQ_RC_ENOTTY	= 15, /* Not a typewriter */
> -	IAVF_AQ_RC_ENOSPC	= 16, /* No space left or alloc failure */
> -	IAVF_AQ_RC_ENOSYS	= 17, /* Function not implemented */
> -	IAVF_AQ_RC_ERANGE	= 18, /* Parameter out of range */
> -	IAVF_AQ_RC_EFLUSHED	= 19, /* Cmd flushed due to prev cmd error */
> -	IAVF_AQ_RC_BAD_ADDR	= 20, /* Descriptor contains a bad
> pointer */
> -	IAVF_AQ_RC_EMODE	= 21, /* Op not allowed in current dev mode */
> -	IAVF_AQ_RC_EFBIG	= 22, /* File too large */
> -};
> -
>  /* Admin Queue command opcodes */
>  enum iavf_admin_queue_opc {
>  	/* aq commands */
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_prototype.h
> b/drivers/net/ethernet/intel/iavf/iavf_prototype.h
> index cac9d1a35a52..34b5ed87a9aa 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_prototype.h
> +++ b/drivers/net/ethernet/intel/iavf/iavf_prototype.h
> @@ -22,7 +22,7 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw
> *hw,
>  					struct iavf_arq_event_info *e,
>  					u16 *events_pending);
>  enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
> -				       struct iavf_aq_desc *desc,
> +				       struct libie_aq_desc *desc,
>  				       void *buff, /* can be NULL */
>  				       u16 buff_size,
>  				       struct iavf_asq_cmd_details *cmd_details);
> @@ -34,7 +34,7 @@ void iavf_debug_aq(struct iavf_hw *hw, enum
> iavf_debug_mask mask,
> 
>  bool iavf_check_asq_alive(struct iavf_hw *hw);  enum iavf_status
> iavf_aq_queue_shutdown(struct iavf_hw *hw, bool unloading); -const char
> *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err);
> +const char *iavf_aq_str(struct iavf_hw *hw, enum libie_aq_err aq_err);
>  const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status stat_err);
> 
>  enum iavf_status iavf_aq_set_rss_lut(struct iavf_hw *hw, u16 seid, diff --git
> a/drivers/net/ethernet/intel/iavf/iavf_type.h
> b/drivers/net/ethernet/intel/iavf/iavf_type.h
> index f9e1319620f4..c9961a2d1217 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_type.h
> +++ b/drivers/net/ethernet/intel/iavf/iavf_type.h
> @@ -19,7 +19,7 @@
> 
>  /* forward declaration */
>  struct iavf_hw;
> -typedef void (*IAVF_ADMINQ_CALLBACK)(struct iavf_hw *, struct iavf_aq_desc
> *);
> +typedef void (*IAVF_ADMINQ_CALLBACK)(struct iavf_hw *, struct
> +libie_aq_desc *);
> 
>  /* Data type manipulation macros. */
> 
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> index 82fcd18ad660..6937b7dd44cb 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_adminq.c
> @@ -18,7 +18,7 @@ static enum iavf_status iavf_alloc_adminq_asq_ring(struct
> iavf_hw *hw)
>  	ret_code = iavf_allocate_dma_mem(hw, &hw->aq.asq.desc_buf,
>  					 iavf_mem_atq_ring,
>  					 (hw->aq.num_asq_entries *
> -					 sizeof(struct iavf_aq_desc)),
> +					 sizeof(struct libie_aq_desc)),
>  					 IAVF_ADMINQ_DESC_ALIGNMENT);
>  	if (ret_code)
>  		return ret_code;
> @@ -45,7 +45,7 @@ static enum iavf_status iavf_alloc_adminq_arq_ring(struct
> iavf_hw *hw)
>  	ret_code = iavf_allocate_dma_mem(hw, &hw->aq.arq.desc_buf,
>  					 iavf_mem_arq_ring,
>  					 (hw->aq.num_arq_entries *
> -					 sizeof(struct iavf_aq_desc)),
> +					 sizeof(struct libie_aq_desc)),
>  					 IAVF_ADMINQ_DESC_ALIGNMENT);
> 
>  	return ret_code;
> @@ -81,7 +81,7 @@ static void iavf_free_adminq_arq(struct iavf_hw *hw)
>   **/
>  static enum iavf_status iavf_alloc_arq_bufs(struct iavf_hw *hw)  {
> -	struct iavf_aq_desc *desc;
> +	struct libie_aq_desc *desc;
>  	struct iavf_dma_mem *bi;
>  	enum iavf_status ret_code;
>  	int i;
> @@ -111,9 +111,9 @@ static enum iavf_status iavf_alloc_arq_bufs(struct
> iavf_hw *hw)
>  		/* now configure the descriptors for use */
>  		desc = IAVF_ADMINQ_DESC(hw->aq.arq, i);
> 
> -		desc->flags = cpu_to_le16(IAVF_AQ_FLAG_BUF);
> +		desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_BUF);
>  		if (hw->aq.arq_buf_size > IAVF_AQ_LARGE_BUF)
> -			desc->flags |= cpu_to_le16(IAVF_AQ_FLAG_LB);
> +			desc->flags |= cpu_to_le16(LIBIE_AQ_FLAG_LB);
>  		desc->opcode = 0;
>  		/* This is in accordance with Admin queue design, there is no
>  		 * register for buffer size configuration @@ -122,12 +122,12 @@
> static enum iavf_status iavf_alloc_arq_bufs(struct iavf_hw *hw)
>  		desc->retval = 0;
>  		desc->cookie_high = 0;
>  		desc->cookie_low = 0;
> -		desc->params.external.addr_high =
> +		desc->params.generic.addr_high =
>  			cpu_to_le32(upper_32_bits(bi->pa));
> -		desc->params.external.addr_low =
> +		desc->params.generic.addr_low =
>  			cpu_to_le32(lower_32_bits(bi->pa));
> -		desc->params.external.param0 = 0;
> -		desc->params.external.param1 = 0;
> +		desc->params.generic.param0 = 0;
> +		desc->params.generic.param1 = 0;
>  	}
> 
>  alloc_arq_bufs:
> @@ -558,8 +558,8 @@ static u16 iavf_clean_asq(struct iavf_hw *hw)
>  	struct iavf_adminq_ring *asq = &hw->aq.asq;
>  	struct iavf_asq_cmd_details *details;
>  	u16 ntc = asq->next_to_clean;
> -	struct iavf_aq_desc desc_cb;
> -	struct iavf_aq_desc *desc;
> +	struct libie_aq_desc desc_cb;
> +	struct libie_aq_desc *desc;
> 
>  	desc = IAVF_ADMINQ_DESC(*asq, ntc);
>  	details = IAVF_ADMINQ_DETAILS(*asq, ntc); @@ -573,7 +573,7 @@
> static u16 iavf_clean_asq(struct iavf_hw *hw)
>  			desc_cb = *desc;
>  			cb_func(hw, &desc_cb);
>  		}
> -		memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
> +		memset((void *)desc, 0, sizeof(struct libie_aq_desc));
>  		memset((void *)details, 0,
>  		       sizeof(struct iavf_asq_cmd_details));
>  		ntc++;
> @@ -615,14 +615,14 @@ bool iavf_asq_done(struct iavf_hw *hw)
>   *  queue.  It runs the queue, cleans the queue, etc
>   **/
>  enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
> -				       struct iavf_aq_desc *desc,
> +				       struct libie_aq_desc *desc,
>  				       void *buff, /* can be NULL */
>  				       u16  buff_size,
>  				       struct iavf_asq_cmd_details *cmd_details)
> {
>  	struct iavf_dma_mem *dma_buff = NULL;
>  	struct iavf_asq_cmd_details *details;
> -	struct iavf_aq_desc *desc_on_ring;
> +	struct libie_aq_desc *desc_on_ring;
>  	bool cmd_completed = false;
>  	enum iavf_status status = 0;
>  	u16  retval = 0;
> @@ -637,7 +637,7 @@ enum iavf_status iavf_asq_send_command(struct
> iavf_hw *hw,
>  		goto asq_send_command_error;
>  	}
> 
> -	hw->aq.asq_last_status = IAVF_AQ_RC_OK;
> +	hw->aq.asq_last_status = LIBIE_AQ_RC_OK;
> 
>  	val = rd32(hw, IAVF_VF_ATQH1);
>  	if (val >= hw->aq.num_asq_entries) {
> @@ -717,9 +717,9 @@ enum iavf_status iavf_asq_send_command(struct
> iavf_hw *hw,
>  		/* Update the address values in the desc with the pa value
>  		 * for respective buffer
>  		 */
> -		desc_on_ring->params.external.addr_high =
> +		desc_on_ring->params.generic.addr_high =
>  				cpu_to_le32(upper_32_bits(dma_buff->pa));
> -		desc_on_ring->params.external.addr_low =
> +		desc_on_ring->params.generic.addr_low =
>  				cpu_to_le32(lower_32_bits(dma_buff->pa));
>  	}
> 
> @@ -766,13 +766,13 @@ enum iavf_status iavf_asq_send_command(struct
> iavf_hw *hw,
>  			retval &= 0xff;
>  		}
>  		cmd_completed = true;
> -		if ((enum iavf_admin_queue_err)retval == IAVF_AQ_RC_OK)
> +		if ((enum libie_aq_err)retval == LIBIE_AQ_RC_OK)
>  			status = 0;
> -		else if ((enum iavf_admin_queue_err)retval ==
> IAVF_AQ_RC_EBUSY)
> +		else if ((enum libie_aq_err)retval == LIBIE_AQ_RC_EBUSY)
>  			status = IAVF_ERR_NOT_READY;
>  		else
>  			status = IAVF_ERR_ADMIN_QUEUE_ERROR;
> -		hw->aq.asq_last_status = (enum iavf_admin_queue_err)retval;
> +		hw->aq.asq_last_status = (enum libie_aq_err)retval;
>  	}
> 
>  	iavf_debug(hw, IAVF_DEBUG_AQ_MESSAGE,
> @@ -809,12 +809,12 @@ enum iavf_status iavf_asq_send_command(struct
> iavf_hw *hw,
>   *
>   *  Fill the desc with default values
>   **/
> -void iavf_fill_default_direct_cmd_desc(struct iavf_aq_desc *desc, u16 opcode)
> +void iavf_fill_default_direct_cmd_desc(struct libie_aq_desc *desc, u16
> +opcode)
>  {
>  	/* zero out the desc */
> -	memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
> +	memset((void *)desc, 0, sizeof(struct libie_aq_desc));
>  	desc->opcode = cpu_to_le16(opcode);
> -	desc->flags = cpu_to_le16(IAVF_AQ_FLAG_SI);
> +	desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_SI);
>  }
> 
>  /**
> @@ -832,7 +832,7 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw
> *hw,
>  					u16 *pending)
>  {
>  	u16 ntc = hw->aq.arq.next_to_clean;
> -	struct iavf_aq_desc *desc;
> +	struct libie_aq_desc *desc;
>  	enum iavf_status ret_code = 0;
>  	struct iavf_dma_mem *bi;
>  	u16 desc_idx;
> @@ -866,9 +866,9 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw
> *hw,
>  	desc_idx = ntc;
> 
>  	hw->aq.arq_last_status =
> -		(enum iavf_admin_queue_err)le16_to_cpu(desc->retval);
> +		(enum libie_aq_err)le16_to_cpu(desc->retval);
>  	flags = le16_to_cpu(desc->flags);
> -	if (flags & IAVF_AQ_FLAG_ERR) {
> +	if (flags & LIBIE_AQ_FLAG_ERR) {
>  		ret_code = IAVF_ERR_ADMIN_QUEUE_ERROR;
>  		iavf_debug(hw,
>  			   IAVF_DEBUG_AQ_MESSAGE,
> @@ -892,14 +892,14 @@ enum iavf_status iavf_clean_arq_element(struct
> iavf_hw *hw,
>  	 * size
>  	 */
>  	bi = &hw->aq.arq.r.arq_bi[ntc];
> -	memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
> +	memset((void *)desc, 0, sizeof(struct libie_aq_desc));
> 
> -	desc->flags = cpu_to_le16(IAVF_AQ_FLAG_BUF);
> +	desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_BUF);
>  	if (hw->aq.arq_buf_size > IAVF_AQ_LARGE_BUF)
> -		desc->flags |= cpu_to_le16(IAVF_AQ_FLAG_LB);
> +		desc->flags |= cpu_to_le16(LIBIE_AQ_FLAG_LB);
>  	desc->datalen = cpu_to_le16((u16)bi->size);
> -	desc->params.external.addr_high = cpu_to_le32(upper_32_bits(bi->pa));
> -	desc->params.external.addr_low = cpu_to_le32(lower_32_bits(bi->pa));
> +	desc->params.generic.addr_high = cpu_to_le32(upper_32_bits(bi->pa));
> +	desc->params.generic.addr_low = cpu_to_le32(lower_32_bits(bi->pa));
> 
>  	/* set tail = the last cleaned desc index. */
>  	wr32(hw, IAVF_VF_ARQT1, ntc);
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_common.c
> b/drivers/net/ethernet/intel/iavf/iavf_common.c
> index aa751ce3425b..cc71e48b5689 100644
> --- a/drivers/net/ethernet/intel/iavf/iavf_common.c
> +++ b/drivers/net/ethernet/intel/iavf/iavf_common.c
> @@ -12,55 +12,47 @@
>   * @hw: pointer to the HW structure
>   * @aq_err: the AQ error code to convert
>   **/
> -const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err)
> +const char *iavf_aq_str(struct iavf_hw *hw, enum libie_aq_err aq_err)
>  {
>  	switch (aq_err) {
> -	case IAVF_AQ_RC_OK:
> +	case LIBIE_AQ_RC_OK:
>  		return "OK";
> -	case IAVF_AQ_RC_EPERM:
> -		return "IAVF_AQ_RC_EPERM";
> -	case IAVF_AQ_RC_ENOENT:
> -		return "IAVF_AQ_RC_ENOENT";
> -	case IAVF_AQ_RC_ESRCH:
> -		return "IAVF_AQ_RC_ESRCH";
> -	case IAVF_AQ_RC_EINTR:
> -		return "IAVF_AQ_RC_EINTR";
> -	case IAVF_AQ_RC_EIO:
> -		return "IAVF_AQ_RC_EIO";
> -	case IAVF_AQ_RC_ENXIO:
> -		return "IAVF_AQ_RC_ENXIO";
> -	case IAVF_AQ_RC_E2BIG:
> -		return "IAVF_AQ_RC_E2BIG";
> -	case IAVF_AQ_RC_EAGAIN:
> -		return "IAVF_AQ_RC_EAGAIN";
> -	case IAVF_AQ_RC_ENOMEM:
> -		return "IAVF_AQ_RC_ENOMEM";
> -	case IAVF_AQ_RC_EACCES:
> -		return "IAVF_AQ_RC_EACCES";
> -	case IAVF_AQ_RC_EFAULT:
> -		return "IAVF_AQ_RC_EFAULT";
> -	case IAVF_AQ_RC_EBUSY:
> -		return "IAVF_AQ_RC_EBUSY";
> -	case IAVF_AQ_RC_EEXIST:
> -		return "IAVF_AQ_RC_EEXIST";
> -	case IAVF_AQ_RC_EINVAL:
> -		return "IAVF_AQ_RC_EINVAL";
> -	case IAVF_AQ_RC_ENOTTY:
> -		return "IAVF_AQ_RC_ENOTTY";
> -	case IAVF_AQ_RC_ENOSPC:
> -		return "IAVF_AQ_RC_ENOSPC";
> -	case IAVF_AQ_RC_ENOSYS:
> -		return "IAVF_AQ_RC_ENOSYS";
> -	case IAVF_AQ_RC_ERANGE:
> -		return "IAVF_AQ_RC_ERANGE";
> -	case IAVF_AQ_RC_EFLUSHED:
> -		return "IAVF_AQ_RC_EFLUSHED";
> -	case IAVF_AQ_RC_BAD_ADDR:
> -		return "IAVF_AQ_RC_BAD_ADDR";
> -	case IAVF_AQ_RC_EMODE:
> -		return "IAVF_AQ_RC_EMODE";
> -	case IAVF_AQ_RC_EFBIG:
> -		return "IAVF_AQ_RC_EFBIG";
> +	case LIBIE_AQ_RC_EPERM:
> +		return "LIBIE_AQ_RC_EPERM";
> +	case LIBIE_AQ_RC_ENOENT:
> +		return "LIBIE_AQ_RC_ENOENT";
> +	case LIBIE_AQ_RC_ESRCH:
> +		return "LIBIE_AQ_RC_ESRCH";
> +	case LIBIE_AQ_RC_EIO:
> +		return "LIBIE_AQ_RC_EIO";
> +	case LIBIE_AQ_RC_EAGAIN:
> +		return "LIBIE_AQ_RC_EAGAIN";
> +	case LIBIE_AQ_RC_ENOMEM:
> +		return "LIBIE_AQ_RC_ENOMEM";
> +	case LIBIE_AQ_RC_EACCES:
> +		return "LIBIE_AQ_RC_EACCES";
> +	case LIBIE_AQ_RC_EBUSY:
> +		return "LIBIE_AQ_RC_EBUSY";
> +	case LIBIE_AQ_RC_EEXIST:
> +		return "LIBIE_AQ_RC_EEXIST";
> +	case LIBIE_AQ_RC_EINVAL:
> +		return "LIBIE_AQ_RC_EINVAL";
> +	case LIBIE_AQ_RC_ENOSPC:
> +		return "LIBIE_AQ_RC_ENOSPC";
> +	case LIBIE_AQ_RC_ENOSYS:
> +		return "LIBIE_AQ_RC_ENOSYS";
> +	case LIBIE_AQ_RC_EMODE:
> +		return "LIBIE_AQ_RC_EMODE";
> +	case LIBIE_AQ_RC_ENOSEC:
> +		return "LIBIE_AQ_RC_ENOSEC";
> +	case LIBIE_AQ_RC_EBADSIG:
> +		return "LIBIE_AQ_RC_EBADSIG";
> +	case LIBIE_AQ_RC_ESVN:
> +		return "LIBIE_AQ_RC_ESVN";
> +	case LIBIE_AQ_RC_EBADMAN:
> +		return "LIBIE_AQ_RC_EBADMAN";
> +	case LIBIE_AQ_RC_EBADBUF:
> +		return "LIBIE_AQ_RC_EBADBUF";
>  	}
> 
>  	snprintf(hw->err_str, sizeof(hw->err_str), "%d", aq_err); @@ -228,7
> +220,7 @@ const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status
> stat_err)  void iavf_debug_aq(struct iavf_hw *hw, enum iavf_debug_mask mask,
> void *desc,
>  		   void *buffer, u16 buf_len)
>  {
> -	struct iavf_aq_desc *aq_desc = (struct iavf_aq_desc *)desc;
> +	struct libie_aq_desc *aq_desc = (struct libie_aq_desc *)desc;
>  	u8 *buf = (u8 *)buffer;
> 
>  	if ((!(mask & hw->debug_mask)) || !desc) @@ -244,11 +236,11 @@ void
> iavf_debug_aq(struct iavf_hw *hw, enum iavf_debug_mask mask, void *desc,
>  		   le32_to_cpu(aq_desc->cookie_high),
>  		   le32_to_cpu(aq_desc->cookie_low));
>  	iavf_debug(hw, mask, "\tparam (0,1)  0x%08X 0x%08X\n",
> -		   le32_to_cpu(aq_desc->params.internal.param0),
> -		   le32_to_cpu(aq_desc->params.internal.param1));
> +		   le32_to_cpu(aq_desc->params.generic.param0),
> +		   le32_to_cpu(aq_desc->params.generic.param1));
>  	iavf_debug(hw, mask, "\taddr (h,l)   0x%08X 0x%08X\n",
> -		   le32_to_cpu(aq_desc->params.external.addr_high),
> -		   le32_to_cpu(aq_desc->params.external.addr_low));
> +		   le32_to_cpu(aq_desc->params.generic.addr_high),
> +		   le32_to_cpu(aq_desc->params.generic.addr_low));
> 
>  	if (buffer && aq_desc->datalen) {
>  		u16 len = le16_to_cpu(aq_desc->datalen); @@ -297,11 +289,11
> @@ bool iavf_check_asq_alive(struct iavf_hw *hw)
>   **/
>  enum iavf_status iavf_aq_queue_shutdown(struct iavf_hw *hw, bool unloading)  {
> -	struct iavf_aq_desc desc;
> -	struct iavf_aqc_queue_shutdown *cmd =
> -		(struct iavf_aqc_queue_shutdown *)&desc.params.raw;
> +	struct iavf_aqc_queue_shutdown *cmd;
> +	struct libie_aq_desc desc;
>  	enum iavf_status status;
> 
> +	cmd = libie_aq_raw(&desc);
>  	iavf_fill_default_direct_cmd_desc(&desc,
> iavf_aqc_opc_queue_shutdown);
> 
>  	if (unloading)
> @@ -327,12 +319,13 @@ static enum iavf_status iavf_aq_get_set_rss_lut(struct
> iavf_hw *hw,
>  						u8 *lut, u16 lut_size,
>  						bool set)
>  {
> +	struct iavf_aqc_get_set_rss_lut *cmd_resp;
> +	struct libie_aq_desc desc;
>  	enum iavf_status status;
> -	struct iavf_aq_desc desc;
> -	struct iavf_aqc_get_set_rss_lut *cmd_resp =
> -		   (struct iavf_aqc_get_set_rss_lut *)&desc.params.raw;
>  	u16 flags;
> 
> +	cmd_resp = libie_aq_raw(&desc);
> +
>  	if (set)
>  		iavf_fill_default_direct_cmd_desc(&desc,
>  						  iavf_aqc_opc_set_rss_lut);
> @@ -341,8 +334,8 @@ static enum iavf_status iavf_aq_get_set_rss_lut(struct
> iavf_hw *hw,
>  						  iavf_aqc_opc_get_rss_lut);
> 
>  	/* Indirect command */
> -	desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_BUF);
> -	desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_RD);
> +	desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_BUF);
> +	desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_RD);
> 
>  	vsi_id = FIELD_PREP(IAVF_AQC_SET_RSS_LUT_VSI_ID_MASK, vsi_id) |
>  		 FIELD_PREP(IAVF_AQC_SET_RSS_LUT_VSI_VALID, 1); @@ -
> 392,11 +385,12 @@ iavf_status iavf_aq_get_set_rss_key(struct iavf_hw *hw, u16
> vsi_id,
>  				    struct iavf_aqc_get_set_rss_key_data *key,
>  				    bool set)
>  {
> -	enum iavf_status status;
> -	struct iavf_aq_desc desc;
> -	struct iavf_aqc_get_set_rss_key *cmd_resp =
> -			(struct iavf_aqc_get_set_rss_key *)&desc.params.raw;
>  	u16 key_size = sizeof(struct iavf_aqc_get_set_rss_key_data);
> +	struct iavf_aqc_get_set_rss_key *cmd_resp;
> +	struct libie_aq_desc desc;
> +	enum iavf_status status;
> +
> +	cmd_resp = libie_aq_raw(&desc);
> 
>  	if (set)
>  		iavf_fill_default_direct_cmd_desc(&desc,
> @@ -406,8 +400,8 @@ iavf_status iavf_aq_get_set_rss_key(struct iavf_hw *hw,
> u16 vsi_id,
>  						  iavf_aqc_opc_get_rss_key);
> 
>  	/* Indirect command */
> -	desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_BUF);
> -	desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_RD);
> +	desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_BUF);
> +	desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_RD);
> 
>  	vsi_id = FIELD_PREP(IAVF_AQC_SET_RSS_KEY_VSI_ID_MASK, vsi_id) |
>  		 FIELD_PREP(IAVF_AQC_SET_RSS_KEY_VSI_VALID, 1); @@ -
> 452,18 +446,18 @@ enum iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw
> *hw,
>  					struct iavf_asq_cmd_details
> *cmd_details)  {
>  	struct iavf_asq_cmd_details details;
> -	struct iavf_aq_desc desc;
> +	struct libie_aq_desc desc;
>  	enum iavf_status status;
> 
>  	iavf_fill_default_direct_cmd_desc(&desc,
> iavf_aqc_opc_send_msg_to_pf);
> -	desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_SI);
> +	desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_SI);
>  	desc.cookie_high = cpu_to_le32(v_opcode);
>  	desc.cookie_low = cpu_to_le32(v_retval);
>  	if (msglen) {
> -		desc.flags |= cpu_to_le16((u16)(IAVF_AQ_FLAG_BUF
> -						| IAVF_AQ_FLAG_RD));
> +		desc.flags |= cpu_to_le16((u16)(LIBIE_AQ_FLAG_BUF
> +						| LIBIE_AQ_FLAG_RD));
>  		if (msglen > IAVF_AQ_LARGE_BUF)
> -			desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_LB);
> +			desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_LB);
>  		desc.datalen = cpu_to_le16(msglen);
>  	}
>  	if (!cmd_details) {
> --
> 2.42.0


Tested-by: Rafal Romanowski <rafal.romanowski@...el.com>



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ