ixgbevf: support RSS config on x550
[dpdk.git] / drivers / net / i40e / base / i40e_adminq.h
index 410d07e..40c86d9 100644 (file)
@@ -76,6 +76,7 @@ struct i40e_asq_cmd_details {
        u16 flags_dis;
        bool async;
        bool postpone;
+       struct i40e_aq_desc *wb_desc;
 };
 
 #define I40E_ADMINQ_DETAILS(R, i)   \
@@ -115,9 +116,10 @@ struct i40e_adminq_info {
 
 /**
  * i40e_aq_rc_to_posix - convert errors to user-land codes
- * aq_rc: AdminQ error code to convert
+ * aq_ret: AdminQ handler error code can override aq_rc
+ * aq_rc: AdminQ firmware error code to convert
  **/
-STATIC inline int i40e_aq_rc_to_posix(int aq_ret, u16 aq_rc)
+STATIC INLINE int i40e_aq_rc_to_posix(int aq_ret, int aq_rc)
 {
        int aq_to_posix[] = {
                0,           /* I40E_AQ_RC_OK */
@@ -149,14 +151,18 @@ STATIC inline int i40e_aq_rc_to_posix(int aq_ret, u16 aq_rc)
        if (aq_ret == I40E_ERR_ADMIN_QUEUE_TIMEOUT)
                return -EAGAIN;
 
-       if (aq_rc >= (sizeof(aq_to_posix) / sizeof((aq_to_posix)[0])))
+       if (!((u32)aq_rc < (sizeof(aq_to_posix) / sizeof((aq_to_posix)[0]))))
                return -ERANGE;
+
        return aq_to_posix[aq_rc];
 }
 
 /* general information */
 #define I40E_AQ_LARGE_BUF              512
 #define I40E_ASQ_CMD_TIMEOUT           250  /* msecs */
+#ifdef I40E_ESS_SUPPORT
+#define I40E_ASQ_CMD_TIMEOUT_ESS       50000  /* msecs */
+#endif
 
 void i40e_fill_default_direct_cmd_desc(struct i40e_aq_desc *desc,
                                       u16 opcode);