From: Hangbin Liu <hidden> Date: 2021-12-29 08:09:57
This patchset defined the new hwtstamp flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
to make userspace program build pass with old kernel header by settting ifdef.
Let's also return the flag when do SIOC[G/S]HWTSTAMP to let userspace know
that it's necessary for a given netdev.
Hangbin Liu (2):
net_tstamp: define new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
Bonding: return HWTSTAMP_FLAG_BONDED_PHC_INDEX to notify user space
drivers/net/bonding/bond_main.c | 42 ++++++++++++++++++++-------------
include/uapi/linux/net_tstamp.h | 1 +
2 files changed, 27 insertions(+), 16 deletions(-)
--
2.31.1
From: Hangbin Liu <hidden> Date: 2021-12-29 08:10:00
As we defined the new hwtstamp_config flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
as enum, it's not easy for userspace program to check if the flag is
supported when build.
Let's define the new flag so user space could build it on old kernel with
ifdef check.
Fixes: 9c9211a3fc7a ("net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX")
Signed-off-by: Hangbin Liu <redacted>
---
include/uapi/linux/net_tstamp.h | 1 +
1 file changed, 1 insertion(+)
From: Hangbin Liu <hidden> Date: 2021-12-29 08:10:21
If the userspace program is distributed in binary form (distro package),
there is no way to know on which kernel versions it will run.
Let's only check if the flag was set when do SIOCSHWTSTAMP. And return
hwtstamp_config with flag HWTSTAMP_FLAG_BONDED_PHC_INDEX to notify
userspace whether the new feature is supported or not.
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Fixes: 085d61000845 ("Bonding: force user to add HWTSTAMP_FLAG_BONDED_PHC_INDEX when get/set HWTSTAMP")
Signed-off-by: Hangbin Liu <redacted>
---
drivers/net/bonding/bond_main.c | 42 ++++++++++++++++++++-------------
1 file changed, 26 insertions(+), 16 deletions(-)
@@ -4124,28 +4124,38 @@ static int bond_eth_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmbreak;caseSIOCSHWTSTAMP:-caseSIOCGHWTSTAMP:if(copy_from_user(&cfg,ifr->ifr_data,sizeof(cfg)))return-EFAULT;-if(cfg.flags&HWTSTAMP_FLAG_BONDED_PHC_INDEX){-rcu_read_lock();-real_dev=bond_option_active_slave_get_rcu(bond);-rcu_read_unlock();-if(real_dev){-strscpy_pad(ifrr.ifr_name,real_dev->name,IFNAMSIZ);-ifrr.ifr_ifru=ifr->ifr_ifru;+if(!(cfg.flags&HWTSTAMP_FLAG_BONDED_PHC_INDEX))+return-EOPNOTSUPP;-ops=real_dev->netdev_ops;-if(netif_device_present(real_dev)&&ops->ndo_eth_ioctl){-res=ops->ndo_eth_ioctl(real_dev,&ifrr,cmd);+fallthrough;+caseSIOCGHWTSTAMP:+rcu_read_lock();+real_dev=bond_option_active_slave_get_rcu(bond);+rcu_read_unlock();+if(!real_dev)+return-EOPNOTSUPP;-if(!res)-ifr->ifr_ifru=ifrr.ifr_ifru;+strscpy_pad(ifrr.ifr_name,real_dev->name,IFNAMSIZ);+ifrr.ifr_ifru=ifr->ifr_ifru;-returnres;-}-}+ops=real_dev->netdev_ops;+if(netif_device_present(real_dev)&&ops->ndo_eth_ioctl){+res=ops->ndo_eth_ioctl(real_dev,&ifrr,cmd);+if(res)+returnres;++ifr->ifr_ifru=ifrr.ifr_ifru;+if(copy_from_user(&cfg,ifr->ifr_data,sizeof(cfg)))+return-EFAULT;++/* Set the BOND_PHC_INDEX flag to notify user space */+cfg.flags|=HWTSTAMP_FLAG_BONDED_PHC_INDEX;++returncopy_to_user(ifr->ifr_data,&cfg,sizeof(cfg))?+-EFAULT:0;}fallthrough;default:
From: Richard Cochran <richardcochran@gmail.com> Date: 2021-12-29 14:23:25
On Wed, Dec 29, 2021 at 04:09:37PM +0800, Hangbin Liu wrote:
As we defined the new hwtstamp_config flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
as enum, it's not easy for userspace program to check if the flag is
supported when build.
Let's define the new flag so user space could build it on old kernel with
ifdef check.
Fixes: 9c9211a3fc7a ("net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX")
Signed-off-by: Hangbin Liu <redacted>
Acked-by: Richard Cochran <richardcochran@gmail.com>
From: Richard Cochran <richardcochran@gmail.com> Date: 2021-12-29 14:23:44
On Wed, Dec 29, 2021 at 04:09:38PM +0800, Hangbin Liu wrote:
If the userspace program is distributed in binary form (distro package),
there is no way to know on which kernel versions it will run.
Let's only check if the flag was set when do SIOCSHWTSTAMP. And return
hwtstamp_config with flag HWTSTAMP_FLAG_BONDED_PHC_INDEX to notify
userspace whether the new feature is supported or not.
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Fixes: 085d61000845 ("Bonding: force user to add HWTSTAMP_FLAG_BONDED_PHC_INDEX when get/set HWTSTAMP")
Signed-off-by: Hangbin Liu <redacted>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Hello:
This series was applied to netdev/net-next.git (master)
by Jakub Kicinski [off-list ref]:
On Wed, 29 Dec 2021 16:09:36 +0800 you wrote:
This patchset defined the new hwtstamp flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
to make userspace program build pass with old kernel header by settting ifdef.
Let's also return the flag when do SIOC[G/S]HWTSTAMP to let userspace know
that it's necessary for a given netdev.
Hangbin Liu (2):
net_tstamp: define new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX
Bonding: return HWTSTAMP_FLAG_BONDED_PHC_INDEX to notify user space
[...]