Message ID | 20230607151742.6699-3-fr0st61te@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 790071347a0a1a89e618eedcd51c687ea783aeb3 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net/ncsi: refactoring for GMA command | expand |
On Wed, Jun 07, 2023 at 06:17:42PM +0300, Ivan Mikhaylov wrote: > Change ndo_set_mac_address to dev_set_mac_address because > dev_set_mac_address provides a way to notify network layer about MAC > change. In other case, services may not aware about MAC change and keep > using old one which set from network adapter driver. > > As example, DHCP client from systemd do not update MAC address without > notification from net subsystem which leads to the problem with acquiring > the right address from DHCP server. > > Fixes: cb10c7c0dfd9e ("net/ncsi: Add NCSI Broadcom OEM command") > Cc: stable@vger.kernel.org # v6.0+ 2f38e84 net/ncsi: make one oem_gma function for all mfr id > Signed-off-by: Paul Fertser <fercerpav@gmail.com> > Signed-off-by: Ivan Mikhaylov <fr0st61te@gmail.com> Reviewed-by: Simon Horman <simon.horman@corigine.com>
diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c index 91c42253a711..069c2659074b 100644 --- a/net/ncsi/ncsi-rsp.c +++ b/net/ncsi/ncsi-rsp.c @@ -616,7 +616,6 @@ static int ncsi_rsp_handler_oem_gma(struct ncsi_request *nr, int mfr_id) { struct ncsi_dev_priv *ndp = nr->ndp; struct net_device *ndev = ndp->ndev.dev; - const struct net_device_ops *ops = ndev->netdev_ops; struct ncsi_rsp_oem_pkt *rsp; struct sockaddr saddr; u32 mac_addr_off = 0; @@ -643,7 +642,9 @@ static int ncsi_rsp_handler_oem_gma(struct ncsi_request *nr, int mfr_id) /* Set the flag for GMA command which should only be called once */ ndp->gma_flag = 1; - ret = ops->ndo_set_mac_address(ndev, &saddr); + rtnl_lock(); + ret = dev_set_mac_address(ndev, &saddr, NULL); + rtnl_unlock(); if (ret < 0) netdev_warn(ndev, "NCSI: 'Writing mac address to device failed\n");