diff options
| author | David S. Miller <davem@davemloft.net> | 2023-04-03 12:04:27 +0300 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2023-04-03 12:04:27 +0300 | 
| commit | 858e5b06409f65d09dc60e32432e4b8e12e4dba0 (patch) | |
| tree | e59030b8a2b0657651f7b0528d270f0d2d585a72 /net/core/dev.c | |
| parent | 51aaa68222d6c34f0373cf95223ce2f230329e8f (diff) | |
| parent | 88c0a6b503b7f4fffb68a8d49c3987870c5b1d6b (diff) | |
| download | linux-858e5b06409f65d09dc60e32432e4b8e12e4dba0.tar.xz | |
Merge branch 'dsa_master_ioctl-notifier'
Vladimir Oltean says:
====================
net: Convert dsa_master_ioctl() to netdev notifier
This is preparatory work in order for Maxim Georgiev to be able to start
the API conversion process of hardware timestamping from ndo_eth_ioctl()
to ndo_hwtstamp_set():
https://lore.kernel.org/netdev/20230331045619.40256-1-glipus@gmail.com/
In turn, Maxim Georgiev's work is a preparation so that Köry Maincent is
able to make the active hardware timestamping layer selectable by user
space.
https://lore.kernel.org/netdev/20230308135936.761794-1-kory.maincent@bootlin.com/
So, quite some dependency chain.
Before this patch set, DSA prevented the conversion of any networking
driver from the ndo_eth_ioctl() API to the ndo_hwtstamp_set() API,
because it wanted to validate the hwtstamping settings on the DSA
master, and it was only coded up to do this using the old API.
After this patch set, a new netdev notifier exists, which does not
depend on anything that would constitute the "soon-to-be-legacy" API,
but rather, it uses a newly introduced struct kernel_hwtstamp_config,
and it doesn't issue any ioctl at all, being thus compatible both with
ndo_eth_ioctl(), and with the not-yet-introduced, but now possible,
ndo_hwtstamp_set().
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/net/core/dev.c b/net/core/dev.c index 0c4b21291348..7ce5985be84b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -160,8 +160,6 @@ struct list_head ptype_base[PTYPE_HASH_SIZE] __read_mostly;  struct list_head ptype_all __read_mostly;	/* Taps */  static int netif_rx_internal(struct sk_buff *skb); -static int call_netdevice_notifiers_info(unsigned long val, -					 struct netdev_notifier_info *info);  static int call_netdevice_notifiers_extack(unsigned long val,  					   struct net_device *dev,  					   struct netlink_ext_ack *extack); @@ -1614,7 +1612,7 @@ const char *netdev_cmd_to_name(enum netdev_cmd cmd)  	N(SVLAN_FILTER_PUSH_INFO) N(SVLAN_FILTER_DROP_INFO)  	N(PRE_CHANGEADDR) N(OFFLOAD_XSTATS_ENABLE) N(OFFLOAD_XSTATS_DISABLE)  	N(OFFLOAD_XSTATS_REPORT_USED) N(OFFLOAD_XSTATS_REPORT_DELTA) -	N(XDP_FEAT_CHANGE) +	N(XDP_FEAT_CHANGE) N(PRE_CHANGE_HWTSTAMP)  	}  #undef N  	return "UNKNOWN_NETDEV_EVENT"; @@ -1919,8 +1917,8 @@ static void move_netdevice_notifiers_dev_net(struct net_device *dev,   *	are as for raw_notifier_call_chain().   */ -static int call_netdevice_notifiers_info(unsigned long val, -					 struct netdev_notifier_info *info) +int call_netdevice_notifiers_info(unsigned long val, +				  struct netdev_notifier_info *info)  {  	struct net *net = dev_net(info->dev);  	int ret; | 
