net/ncsi: Fix several packet definitions
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>
Mon, 28 Aug 2017 06:18:41 +0000 (16:18 +1000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Aug 2017 23:49:49 +0000 (16:49 -0700)
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ncsi/ncsi-cmd.c
net/ncsi/ncsi-pkt.h
net/ncsi/ncsi-rsp.c

index 5e03ed190e18bba62f1ca3f432d1b87751a2175d..7567ca63aae24b689e368219826df1be0982446b 100644 (file)
@@ -139,9 +139,9 @@ static int ncsi_cmd_handler_svf(struct sk_buff *skb,
        struct ncsi_cmd_svf_pkt *cmd;
 
        cmd = skb_put_zero(skb, sizeof(*cmd));
-       cmd->vlan = htons(nca->words[0]);
-       cmd->index = nca->bytes[2];
-       cmd->enable = nca->bytes[3];
+       cmd->vlan = htons(nca->words[1]);
+       cmd->index = nca->bytes[6];
+       cmd->enable = nca->bytes[7];
        ncsi_cmd_build_header(&cmd->cmd.common, nca);
 
        return 0;
@@ -153,7 +153,7 @@ static int ncsi_cmd_handler_ev(struct sk_buff *skb,
        struct ncsi_cmd_ev_pkt *cmd;
 
        cmd = skb_put_zero(skb, sizeof(*cmd));
-       cmd->mode = nca->bytes[0];
+       cmd->mode = nca->bytes[3];
        ncsi_cmd_build_header(&cmd->cmd.common, nca);
 
        return 0;
@@ -228,7 +228,7 @@ static struct ncsi_cmd_handler {
        { NCSI_PKT_CMD_AE,     8, ncsi_cmd_handler_ae      },
        { NCSI_PKT_CMD_SL,     8, ncsi_cmd_handler_sl      },
        { NCSI_PKT_CMD_GLS,    0, ncsi_cmd_handler_default },
-       { NCSI_PKT_CMD_SVF,    4, ncsi_cmd_handler_svf     },
+       { NCSI_PKT_CMD_SVF,    8, ncsi_cmd_handler_svf     },
        { NCSI_PKT_CMD_EV,     4, ncsi_cmd_handler_ev      },
        { NCSI_PKT_CMD_DV,     0, ncsi_cmd_handler_default },
        { NCSI_PKT_CMD_SMA,    8, ncsi_cmd_handler_sma     },
index 3ea49ed0a935be3c9cd09511991edc574aa4b250..91b4b66438df8468056ecdefd670a1e5ad846a38 100644 (file)
@@ -104,7 +104,7 @@ struct ncsi_cmd_svf_pkt {
        unsigned char           index;     /* VLAN table index  */
        unsigned char           enable;    /* Enable or disable */
        __be32                  checksum;  /* Checksum          */
-       unsigned char           pad[14];
+       unsigned char           pad[18];
 };
 
 /* Enable VLAN */
index 087db775b3dc798a3a3d255ddc5ece52fdd41c74..c1a191d790e238334589e66595fe295f41871f19 100644 (file)
@@ -354,7 +354,8 @@ static int ncsi_rsp_handler_svf(struct ncsi_request *nr)
 
        /* Add or remove the VLAN filter */
        if (!(cmd->enable & 0x1)) {
-               ret = ncsi_remove_filter(nc, NCSI_FILTER_VLAN, cmd->index);
+               /* HW indexes from 1 */
+               ret = ncsi_remove_filter(nc, NCSI_FILTER_VLAN, cmd->index - 1);
        } else {
                vlan = ntohs(cmd->vlan);
                ret = ncsi_add_filter(nc, NCSI_FILTER_VLAN, &vlan);