aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
diff options
context:
space:
mode:
authorJames Morris <james.l.morris@oracle.com>2015-11-23 22:46:28 +1100
committerJames Morris <james.l.morris@oracle.com>2015-11-23 22:46:28 +1100
commitebd68df3f24b318d391d15c458d6f43f340ba36a (patch)
treef0277bc4b853abe5db1d30fa4e10b05bba7f2ac5 /drivers/net/ethernet/intel/i40evf/i40e_adminq.h
parentsecurity/capability.h: cap_issubset/isclear can be boolean (diff)
parentLinux 4.4-rc2 (diff)
downloadlinux-dev-ebd68df3f24b318d391d15c458d6f43f340ba36a.tar.xz
linux-dev-ebd68df3f24b318d391d15c458d6f43f340ba36a.zip
Sync to Linus v4.4-rc2 for LSM developers.
Diffstat (limited to 'drivers/net/ethernet/intel/i40evf/i40e_adminq.h')
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_adminq.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_adminq.h b/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
index ef43d68f67b3..a3eae5d9a2bd 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
+++ b/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
@@ -69,6 +69,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) \
@@ -108,9 +109,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(u32 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 */
@@ -142,8 +144,9 @@ static inline int i40e_aq_rc_to_posix(u32 aq_ret, u16 aq_rc)
if (aq_ret == I40E_ERR_ADMIN_QUEUE_TIMEOUT)
return -EAGAIN;
- if (aq_rc >= ARRAY_SIZE(aq_to_posix))
+ if (!((u32)aq_rc < (sizeof(aq_to_posix) / sizeof((aq_to_posix)[0]))))
return -ERANGE;
+
return aq_to_posix[aq_rc];
}