Message ID | 20240820140154.137876-12-shaojijie@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add support of HIBMCGE Ethernet Driver | expand |
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
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. Thanks a lot. Jijie Shao
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
on 2024/8/21 20:15, Andrew Lunn wrote: > 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 okay, it looks perfect! Jijie Shao
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; if (!netif_device_present(dev)) return -ENODEV; err = dev_pre_changeaddr_notify(dev, sa->sa_data, extack);
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(+)