diff options
author | Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com> | 2012-04-25 05:47:03 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-26 13:03:31 +0400 |
commit | 652bf64622f32c938dd4a8738ba12d51dc9fbdd4 (patch) | |
tree | 20de774b4a367e09e487d81759e07d8787849a79 /drivers/net/ethernet/emulex/benet/be_cmds.h | |
parent | d51ebd331166e102591e5c25805d8015df0e1e21 (diff) | |
download | linux-652bf64622f32c938dd4a8738ba12d51dc9fbdd4.tar.xz |
be2net: Fix wrong status getting returned for MCC commands
MCC Response CQEs are processed as part of NAPI poll routine and
also synchronously. If MCC completions are consumed by NAPI poll
routine, wrong status is returned to synchronously waiting routine.
Fix this by getting status of MCC command from command response
instead of response CQEs.
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be_cmds.h')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index 3c543610906a..944f031bd31e 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h @@ -225,8 +225,12 @@ struct be_cmd_req_hdr { #define RESP_HDR_INFO_OPCODE_SHIFT 0 /* bits 0 - 7 */ #define RESP_HDR_INFO_SUBSYS_SHIFT 8 /* bits 8 - 15 */ struct be_cmd_resp_hdr { - u32 info; /* dword 0 */ - u32 status; /* dword 1 */ + u8 opcode; /* dword 0 */ + u8 subsystem; /* dword 0 */ + u8 rsvd[2]; /* dword 0 */ + u8 status; /* dword 1 */ + u8 add_status; /* dword 1 */ + u8 rsvd1[2]; /* dword 1 */ u32 response_length; /* dword 2 */ u32 actual_resp_len; /* dword 3 */ }; |