]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
net/core: Do not clear VF index for node/port GUIDs query
authorLeon Romanovsky <leonro@mellanox.com>
Thu, 30 Jan 2020 12:59:49 +0000 (14:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 Jan 2020 14:20:26 +0000 (15:20 +0100)
VF numbers were assigned to node_guid and port_guid, but cleared
right before such query calls were issued. It caused to return
node/port GUIDs of VF index 0 for all VFs.

Fixes: 30aad41721e0 ("net/core: Add support for getting VF GUIDs")
Reported-by: Adrian Chiris <adrianc@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c

index cdad6ed532c4908472f02c37caac878bef2e1bd7..09c44bf2e1d28842d77b4ed442ef2c051a25ad21 100644 (file)
@@ -1242,6 +1242,8 @@ static noinline_for_stack int rtnl_fill_vfinfo(struct sk_buff *skb,
                return 0;
 
        memset(&vf_vlan_info, 0, sizeof(vf_vlan_info));
+       memset(&node_guid, 0, sizeof(node_guid));
+       memset(&port_guid, 0, sizeof(port_guid));
 
        vf_mac.vf =
                vf_vlan.vf =
@@ -1290,8 +1292,6 @@ static noinline_for_stack int rtnl_fill_vfinfo(struct sk_buff *skb,
                    sizeof(vf_trust), &vf_trust))
                goto nla_put_vf_failure;
 
-       memset(&node_guid, 0, sizeof(node_guid));
-       memset(&port_guid, 0, sizeof(port_guid));
        if (dev->netdev_ops->ndo_get_vf_guid &&
            !dev->netdev_ops->ndo_get_vf_guid(dev, vfs_num, &node_guid,
                                              &port_guid)) {