Merge branch 'ndo_ioctl-rework'
Arnd Bergmann says: ==================== ndo_ioctl rework This series is a follow-up to the series for removing compat_alloc_user_space() and copy_in_user() that has now been merged. I wanted to be sure I address all the ways that 'struct ifreq' is used in device drivers through .ndo_do_ioctl, originally to prove that my approach of changing the struct definition was correct, but then I discarded that approach and went on anyway. Roughly, the contents here are: - split out all the users of SIOCDEVPRIVATE ioctls into a separate ndo_siocdevprivate callback, to better see what gets used where - fix compat handling for those drivers that pass data directly inside of 'ifreq' rather than using an indirect ifr_data pointer - remove unreachable code in ndo_ioctl handlers that relies on command codes we never pass into that, in particular for wireless drivers - split out the ethernet specific ioctls into yet another ndo_eth_ioctl callback, as these are by far the most common use of ndo_do_ioctl today. I considered splitting them further into MII and timestamp controls, but went with the simpler change for now. - split out bonding and wandev ioctls into separate helpers - rework the bridge handling with a separate callback At this point, only a few oddball things remain in ndo_do_ioctl: appletalk and ieee802154 pass down SIOCSIFADDR/SIOCGIFADDR and some wireless drivers have completely dead code. I have thoroughly compile tested this on randconfig builds, but not done any notable runtime testing, so please review. All of it is also available as part of a larger branch at https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git \ compat-alloc-user-space-12 Changes since v2: - rebase to net-next - fix qeth regression - Cc driver maintainers for each patch and in cover letter Changes since v1: - rebase to linux-5.14-rc2 - add conversion for ndo_siowandev, bridge and bonding drivers - leave broken wifi drivers untouched for now Link: https://lore.kernel.org/netdev/20201106221743.3271965-14-arnd@kernel.org/ ====================
Showing
- Documentation/networking/netdevices.rst 29 additions, 0 deletionsDocumentation/networking/netdevices.rst
- Documentation/networking/timestamping.rst 3 additions, 3 deletionsDocumentation/networking/timestamping.rst
- drivers/char/pcmcia/synclink_cs.c 9 additions, 14 deletionsdrivers/char/pcmcia/synclink_cs.c
- drivers/infiniband/ulp/ipoib/ipoib_main.c 4 additions, 4 deletionsdrivers/infiniband/ulp/ipoib/ipoib_main.c
- drivers/net/appletalk/ipddp.c 10 additions, 6 deletionsdrivers/net/appletalk/ipddp.c
- drivers/net/bonding/bond_main.c 54 additions, 20 deletionsdrivers/net/bonding/bond_main.c
- drivers/net/eql.c 15 additions, 9 deletionsdrivers/net/eql.c
- drivers/net/ethernet/3com/3c574_cs.c 1 addition, 1 deletiondrivers/net/ethernet/3com/3c574_cs.c
- drivers/net/ethernet/3com/3c59x.c 2 additions, 2 deletionsdrivers/net/ethernet/3com/3c59x.c
- drivers/net/ethernet/8390/ax88796.c 1 addition, 1 deletiondrivers/net/ethernet/8390/ax88796.c
- drivers/net/ethernet/8390/axnet_cs.c 1 addition, 1 deletiondrivers/net/ethernet/8390/axnet_cs.c
- drivers/net/ethernet/8390/pcnet_cs.c 1 addition, 1 deletiondrivers/net/ethernet/8390/pcnet_cs.c
- drivers/net/ethernet/actions/owl-emac.c 3 additions, 3 deletionsdrivers/net/ethernet/actions/owl-emac.c
- drivers/net/ethernet/adaptec/starfire.c 1 addition, 1 deletiondrivers/net/ethernet/adaptec/starfire.c
- drivers/net/ethernet/agere/et131x.c 1 addition, 1 deletiondrivers/net/ethernet/agere/et131x.c
- drivers/net/ethernet/allwinner/sun4i-emac.c 1 addition, 1 deletiondrivers/net/ethernet/allwinner/sun4i-emac.c
- drivers/net/ethernet/amd/amd8111e.c 1 addition, 1 deletiondrivers/net/ethernet/amd/amd8111e.c
- drivers/net/ethernet/amd/au1000_eth.c 1 addition, 1 deletiondrivers/net/ethernet/amd/au1000_eth.c
- drivers/net/ethernet/amd/pcnet32.c 1 addition, 1 deletiondrivers/net/ethernet/amd/pcnet32.c
- drivers/net/ethernet/amd/xgbe/xgbe-drv.c 1 addition, 1 deletiondrivers/net/ethernet/amd/xgbe/xgbe-drv.c
Please register or sign in to comment