Re: [PATCH V2 net-next 11/11] net: add is_valid_ether_addr check in dev_set_mac_address

Andrew Lunn
2024-08-21T12:15:33Z

On Wed, Aug 21, 2024 at 02:04:01PM +0800, Jijie Shao wrote:
>
> on 2024/8/21 9:55, Jakub Kicinski wrote:
> > On Tue, 20 Aug 2024 22:01:54 +0800 Jijie Shao wrote:
> > > core need test the mac_addr not every driver need to do.
> > >
> > > Signed-off-by: Jijie Shao <shaojijie@huawei.com>
> > > ---
> > > net/core/dev.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/net/core/dev.c b/net/core/dev.c
> > > index e7260889d4cb..2e19712184bc 100644
> > > --- a/net/core/dev.c
> > > +++ b/net/core/dev.c
> > > @@ -9087,6 +9087,8 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa,
> > > return -EOPNOTSUPP;
> > > if (sa->sa_family != dev->type)
> > > return -EINVAL;
> > > + if (!is_valid_ether_addr(sa->sa_data))
> > > + return -EADDRNOTAVAIL;
> > not every netdev is for an Ethernet device
>
> ok， this patch will be removed in v3.
> and the check will move to hibmcge driver.

No, you just need to use the correct function to perform the check.

__dev_open() does:

if (ops->ndo_validate_addr)
ret = ops->ndo_validate_addr(dev);

Andrew