be2net: fix be_mcc_compl_process to identify eth_get_stat command
authorAjit Khaparde <ajit.khaparde@emulex.com>
Tue, 19 Apr 2011 12:11:02 +0000 (12:11 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Apr 2011 03:13:10 +0000 (20:13 -0700)
eth_get_statistics and vlan_config command have same opcode.
Use opcode subsystem id to differentiate one from other.

Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/benet/be_cmds.c

index 11b774a5eaff7d662e9881943da1802df14c74be..a94e98060c93d8aa8b9a18ff4569c6e841c6d42b 100644 (file)
@@ -78,7 +78,8 @@ static int be_mcc_compl_process(struct be_adapter *adapter,
        }
 
        if (compl_status == MCC_STATUS_SUCCESS) {
-               if (compl->tag0 == OPCODE_ETH_GET_STATISTICS) {
+               if ((compl->tag0 == OPCODE_ETH_GET_STATISTICS) &&
+                       (compl->tag1 == CMD_SUBSYSTEM_ETH)) {
                        struct be_cmd_resp_get_stats *resp =
                                                adapter->stats_cmd.va;
                        be_dws_le_to_cpu(&resp->hw_stats,
@@ -1096,6 +1097,7 @@ int be_cmd_get_stats(struct be_adapter *adapter, struct be_dma_mem *nonemb_cmd)
 
        be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_ETH,
                OPCODE_ETH_GET_STATISTICS, sizeof(*req));
+       wrb->tag1 = CMD_SUBSYSTEM_ETH;
        sge->pa_hi = cpu_to_le32(upper_32_bits(nonemb_cmd->dma));
        sge->pa_lo = cpu_to_le32(nonemb_cmd->dma & 0xFFFFFFFF);
        sge->len = cpu_to_le32(nonemb_cmd->size);