net: rework SIOCGSTAMP ioctl handling
The SIOCGSTAMP/SIOCGSTAMPNS ioctl commands are implemented by many socket protocol handlers, and all of those end up calling the same sock_get_timestamp()/sock_get_timestampns() helper functions, which results in a lot of duplicate code. With the introduction of 64-bit time_t on 32-bit architectures, this gets worse, as we then need four different ioctl commands in each socket protocol implementation. To simplify that, let's add a new .gettstamp() operation in struct proto_ops, and move ioctl implementation into the common sock_ioctl()/compat_sock_ioctl_trans() functions that these all go through. We can reuse the sock_get_timestamp() implementation, but generalize it so it can deal with both native and compat mode, as well as timeval and timespec structures. Acked-by:Stefan Schmidt <stefan@datenfreihafen.org> Acked-by:
Neil Horman <nhorman@tuxdriver.com> Acked-by:
Marc Kleine-Budde <mkl@pengutronix.de> Link: https://lore.kernel.org/lkml/CAK8P3a038aDQQotzua_QtKGhq8O9n+rdiz2=WDCp82ys8eUT+A@mail.gmail.com/ Signed-off-by:
Arnd Bergmann <arnd@arndb.de> Acked-by:
Willem de Bruijn <willemb@google.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- include/linux/net.h 2 additions, 0 deletionsinclude/linux/net.h
- include/net/compat.h 0 additions, 3 deletionsinclude/net/compat.h
- include/net/sock.h 2 additions, 2 deletionsinclude/net/sock.h
- net/appletalk/ddp.c 1 addition, 6 deletionsnet/appletalk/ddp.c
- net/atm/ioctl.c 0 additions, 16 deletionsnet/atm/ioctl.c
- net/atm/pvc.c 1 addition, 0 deletionsnet/atm/pvc.c
- net/atm/svc.c 1 addition, 0 deletionsnet/atm/svc.c
- net/ax25/af_ax25.c 1 addition, 8 deletionsnet/ax25/af_ax25.c
- net/bluetooth/af_bluetooth.c 0 additions, 8 deletionsnet/bluetooth/af_bluetooth.c
- net/bluetooth/l2cap_sock.c 1 addition, 0 deletionsnet/bluetooth/l2cap_sock.c
- net/bluetooth/rfcomm/sock.c 1 addition, 0 deletionsnet/bluetooth/rfcomm/sock.c
- net/bluetooth/sco.c 1 addition, 0 deletionsnet/bluetooth/sco.c
- net/can/af_can.c 0 additions, 6 deletionsnet/can/af_can.c
- net/can/bcm.c 1 addition, 0 deletionsnet/can/bcm.c
- net/can/raw.c 1 addition, 0 deletionsnet/can/raw.c
- net/compat.c 0 additions, 57 deletionsnet/compat.c
- net/core/sock.c 28 additions, 23 deletionsnet/core/sock.c
- net/dccp/ipv4.c 1 addition, 0 deletionsnet/dccp/ipv4.c
- net/dccp/ipv6.c 1 addition, 0 deletionsnet/dccp/ipv6.c
- net/ieee802154/socket.c 2 additions, 4 deletionsnet/ieee802154/socket.c
Loading
Please register or sign in to comment