[PATCH net-next] net: reject a netdev that implements only one hwtstamp NDO

From: Nicolai Buchwitz

Date: Tue Sep 29 2026 - 17:34:20 EST


ndo_hwtstamp_get and ndo_hwtstamp_set only make sense as a pair. A
driver providing just one gets no complaint today, and the mismatch
turns up in user space, where a set can succeed while the matching get
fails.

Catch it at registration instead.

Suggested-by: Jakub Kicinski <kuba@xxxxxxxxxx>
Signed-off-by: Nicolai Buchwitz <nb@xxxxxxxxxxx>
---
net/core/dev.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/net/core/dev.c b/net/core/dev.c
index f660fccfc0db..574fd0ba9080 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -11447,6 +11447,13 @@ int register_netdevice(struct net_device *dev)
goto err_uninit;
}

+ if (!dev->netdev_ops->ndo_hwtstamp_get !=
+ !dev->netdev_ops->ndo_hwtstamp_set) {
+ netdev_WARN(dev, "driver implements only one hwtstamp NDO\n");
+ ret = -EINVAL;
+ goto err_uninit;
+ }
+
if (netdev_need_ops_lock(dev) &&
dev->netdev_ops->ndo_set_rx_mode &&
!dev->netdev_ops->ndo_set_rx_mode_async)

base-commit: 014d795c73837ea2339a4ea8e8f82c6e959b845d
--
2.53.0