be2net: Use GET_FUNCTION_CONFIG V1 cmd
authorKalesh AP <kalesh.purayil@emulex.com>
Sun, 28 Apr 2013 22:21:13 +0000 (22:21 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Apr 2013 19:14:02 +0000 (15:14 -0400)
Skyhawk-R requires V1 version of GET_FUNCTION_CONFIG cmd to be used for
querrying resources available per function.

Signed-off-by: Kalesh AP <kalesh.purayil@emulex.com>
Signed-off-by: Somnath Kotur <somnath.kotur@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_cmds.c
drivers/net/ethernet/emulex/benet/be_cmds.h

index d837e4c7ae8bb8985462919d749c6f8ca8ac888d..9080c2775e9fd77fec2be7e9a6d1c174a8b19896 100644 (file)
@@ -2936,7 +2936,7 @@ static struct be_nic_resource_desc *be_get_nic_desc(u8 *buf, u32 desc_count,
        int i;
 
        for (i = 0; i < desc_count; i++) {
-               desc->desc_len = RESOURCE_DESC_SIZE;
+               desc->desc_len = desc->desc_len ? : RESOURCE_DESC_SIZE;
                if (((void *)desc + desc->desc_len) >
                    (void *)(buf + max_buf_size)) {
                        desc = NULL;
@@ -2987,6 +2987,9 @@ int be_cmd_get_func_config(struct be_adapter *adapter)
                               OPCODE_COMMON_GET_FUNC_CONFIG,
                               cmd.size, wrb, &cmd);
 
+       if (skyhawk_chip(adapter))
+               req->hdr.version = 1;
+
        status = be_mbox_notify_wait(adapter);
        if (!status) {
                struct be_cmd_resp_get_func_config *resp = cmd.va;
index 0fc9b4775699298097781d7169d95529f46f1577..1b01e9b32794edb5d3f3df76cdab40818daf6160 100644 (file)
@@ -1741,7 +1741,7 @@ struct be_cmd_req_get_func_config {
 };
 
 struct be_cmd_resp_get_func_config {
-       struct be_cmd_req_hdr hdr;
+       struct be_cmd_resp_hdr hdr;
        u32 desc_count;
        u8 func_param[MAX_RESOURCE_DESC * RESOURCE_DESC_SIZE];
 };