net/ncsi: Fix gma flag setting after response
authorVijay Khemka <vijaykhemka@fb.com>
Fri, 27 Dec 2019 22:43:49 +0000 (14:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Dec 2019 04:34:17 +0000 (20:34 -0800)
gma_flag was set at the time of GMA command request but it should
only be set after getting successful response. Movinng this flag
setting in GMA response handler.

This flag is used mainly for not repeating GMA command once
received MAC address.

Signed-off-by: Vijay Khemka <vijaykhemka@fb.com>
Reviewed-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ncsi/ncsi-manage.c
net/ncsi/ncsi-rsp.c

index 70fe02697544f496364b18268b4ccc0e7a15eaca..e20b815140291183c9f59ec80ad2733a82ca353c 100644 (file)
@@ -764,9 +764,6 @@ static int ncsi_gma_handler(struct ncsi_cmd_arg *nca, unsigned int mf_id)
                return -1;
        }
 
-       /* Set the flag for GMA command which should only be called once */
-       nca->ndp->gma_flag = 1;
-
        /* Get Mac address from NCSI device */
        return nch->handler(nca);
 }
index d5611f04926de1eb03fc410e6f1c5fd23069fbeb..a94bb59793f02d7c0228e8adb8f52e253c81c9f9 100644 (file)
@@ -627,6 +627,9 @@ static int ncsi_rsp_handler_oem_mlx_gma(struct ncsi_request *nr)
        saddr.sa_family = ndev->type;
        ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
        memcpy(saddr.sa_data, &rsp->data[MLX_MAC_ADDR_OFFSET], ETH_ALEN);
+       /* Set the flag for GMA command which should only be called once */
+       ndp->gma_flag = 1;
+
        ret = ops->ndo_set_mac_address(ndev, &saddr);
        if (ret < 0)
                netdev_warn(ndev, "NCSI: 'Writing mac address to device failed\n");
@@ -671,6 +674,9 @@ static int ncsi_rsp_handler_oem_bcm_gma(struct ncsi_request *nr)
        if (!is_valid_ether_addr((const u8 *)saddr.sa_data))
                return -ENXIO;
 
+       /* Set the flag for GMA command which should only be called once */
+       ndp->gma_flag = 1;
+
        ret = ops->ndo_set_mac_address(ndev, &saddr);
        if (ret < 0)
                netdev_warn(ndev, "NCSI: 'Writing mac address to device failed\n");