linux-ppp.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 00/31] ndo_ioctl rework
@ 2021-07-27 13:44 Arnd Bergmann
  2021-07-27 13:45 ` [PATCH net-next v3 23/31] ppp: use ndo_siocdevprivate Arnd Bergmann
  2021-07-27 19:59 ` [PATCH net-next v3 00/31] ndo_ioctl rework patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Arnd Bergmann @ 2021-07-27 13:44 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, Jakub Kicinski, David S. Miller, Arnd Bergmann,
	Jay Vosburgh, Veaceslav Falico, Andy Gospodarek, Raju Rangoju,
	Thomas Sailer, Joerg Reuter, Jean-Paul Roubelat, Jes Sorensen,
	Krzysztof Halasa, Kevin Curtis, Zhao Qiang, Martin Schiller,
	Kalle Valo, Jouni Malinen, Julian Wiedmann, Karsten Graul,
	Hideaki YOSHIFUJI, David Ahern, Roopa Prabhu,
	Nikolay Aleksandrov, Steffen Klassert, Herbert Xu,
	Remi Denis-Courmont, Andrew Lunn, Christoph Hellwig,
	linux-parisc, linux-hams, linux-hippi, linux-ppp, linux-usb,
	linux-x25, linux-wireless, linux-s390, bridge, linux-arm-kernel,
	linux-mediatek

From: Arnd Bergmann <arnd@arndb.de>

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/

Arnd Bergmann (31):
  net: split out SIOCDEVPRIVATE handling from dev_ioctl
  staging: rtlwifi: use siocdevprivate
  staging: wlan-ng: use siocdevprivate
  hostap: use ndo_siocdevprivate
  bridge: use ndo_siocdevprivate
  phonet: use siocdevprivate
  tulip: use ndo_siocdevprivate
  bonding: use siocdevprivate
  appletalk: use ndo_siocdevprivate
  hamachi: use ndo_siocdevprivate
  tehuti: use ndo_siocdevprivate
  eql: use ndo_siocdevprivate
  fddi: use ndo_siocdevprivate
  net: usb: use ndo_siocdevprivate
  slip/plip: use ndo_siocdevprivate
  qeth: use ndo_siocdevprivate
  cxgb3: use ndo_siocdevprivate
  hamradio: use ndo_siocdevprivate
  airo: use ndo_siocdevprivate
  ip_tunnel: use ndo_siocdevprivate
  hippi: use ndo_siocdevprivate
  sb1000: use ndo_siocdevprivate
  ppp: use ndo_siocdevprivate
  wan: use ndo_siocdevprivate
  wan: cosa: remove dead cosa_net_ioctl() function
  dev_ioctl: pass SIOCDEVPRIVATE data separately
  dev_ioctl: split out ndo_eth_ioctl
  net: split out ndo_siowandev ioctl
  net: socket: return changed ifreq from SIOCDEVPRIVATE
  net: bridge: move bridge ioctls out of .ndo_do_ioctl
  net: bonding: move ioctl handling to private ndo operation

 Documentation/networking/netdevices.rst       |  29 +++++
 Documentation/networking/timestamping.rst     |   6 +-
 drivers/char/pcmcia/synclink_cs.c             |  23 ++--
 drivers/infiniband/ulp/ipoib/ipoib_main.c     |   8 +-
 drivers/net/appletalk/ipddp.c                 |  16 ++-
 drivers/net/bonding/bond_main.c               |  74 ++++++++---
 drivers/net/eql.c                             |  24 ++--
 drivers/net/ethernet/3com/3c574_cs.c          |   2 +-
 drivers/net/ethernet/3com/3c59x.c             |   4 +-
 drivers/net/ethernet/8390/ax88796.c           |   2 +-
 drivers/net/ethernet/8390/axnet_cs.c          |   2 +-
 drivers/net/ethernet/8390/pcnet_cs.c          |   2 +-
 drivers/net/ethernet/actions/owl-emac.c       |   6 +-
 drivers/net/ethernet/adaptec/starfire.c       |   2 +-
 drivers/net/ethernet/agere/et131x.c           |   2 +-
 drivers/net/ethernet/allwinner/sun4i-emac.c   |   2 +-
 drivers/net/ethernet/amd/amd8111e.c           |   2 +-
 drivers/net/ethernet/amd/au1000_eth.c         |   2 +-
 drivers/net/ethernet/amd/pcnet32.c            |   2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c      |   2 +-
 .../net/ethernet/aquantia/atlantic/aq_main.c  |   2 +-
 drivers/net/ethernet/arc/emac_main.c          |   2 +-
 drivers/net/ethernet/atheros/ag71xx.c         |   2 +-
 drivers/net/ethernet/atheros/alx/main.c       |   2 +-
 .../net/ethernet/atheros/atl1c/atl1c_main.c   |   2 +-
 .../net/ethernet/atheros/atl1e/atl1e_main.c   |   2 +-
 drivers/net/ethernet/atheros/atlx/atl1.c      |   2 +-
 drivers/net/ethernet/atheros/atlx/atl2.c      |   2 +-
 drivers/net/ethernet/broadcom/b44.c           |   2 +-
 drivers/net/ethernet/broadcom/bcm63xx_enet.c  |   4 +-
 drivers/net/ethernet/broadcom/bgmac.c         |   2 +-
 drivers/net/ethernet/broadcom/bnx2.c          |   2 +-
 .../net/ethernet/broadcom/bnx2x/bnx2x_main.c  |   2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c     |   2 +-
 .../net/ethernet/broadcom/genet/bcmgenet.c    |   2 +-
 drivers/net/ethernet/broadcom/sb1250-mac.c    |   2 +-
 drivers/net/ethernet/broadcom/tg3.c           |   2 +-
 drivers/net/ethernet/cadence/macb_main.c      |   4 +-
 .../net/ethernet/cavium/liquidio/lio_main.c   |   2 +-
 .../ethernet/cavium/liquidio/lio_vf_main.c    |   2 +-
 .../net/ethernet/cavium/octeon/octeon_mgmt.c  |   2 +-
 .../net/ethernet/cavium/thunder/nicvf_main.c  |   2 +-
 drivers/net/ethernet/chelsio/cxgb/cxgb2.c     |   2 +-
 .../net/ethernet/chelsio/cxgb3/cxgb3_main.c   |  14 +-
 .../net/ethernet/chelsio/cxgb4/cxgb4_main.c   |   2 +-
 .../ethernet/chelsio/cxgb4vf/cxgb4vf_main.c   |   2 +-
 drivers/net/ethernet/cirrus/ep93xx_eth.c      |   2 +-
 drivers/net/ethernet/davicom/dm9000.c         |   2 +-
 drivers/net/ethernet/dec/tulip/de4x5.c        |  11 +-
 drivers/net/ethernet/dec/tulip/tulip_core.c   |   2 +-
 drivers/net/ethernet/dec/tulip/winbond-840.c  |   2 +-
 drivers/net/ethernet/dlink/dl2k.c             |   2 +-
 drivers/net/ethernet/dlink/sundance.c         |   2 +-
 drivers/net/ethernet/dnet.c                   |   2 +-
 drivers/net/ethernet/ethoc.c                  |   2 +-
 drivers/net/ethernet/faraday/ftgmac100.c      |   2 +-
 drivers/net/ethernet/faraday/ftmac100.c       |   2 +-
 drivers/net/ethernet/fealnx.c                 |   2 +-
 .../net/ethernet/freescale/dpaa/dpaa_eth.c    |   2 +-
 .../net/ethernet/freescale/dpaa2/dpaa2-eth.c  |   2 +-
 .../net/ethernet/freescale/enetc/enetc_pf.c   |   2 +-
 .../net/ethernet/freescale/enetc/enetc_vf.c   |   2 +-
 drivers/net/ethernet/freescale/fec_main.c     |   2 +-
 drivers/net/ethernet/freescale/fec_mpc52xx.c  |   2 +-
 .../ethernet/freescale/fs_enet/fs_enet-main.c |   2 +-
 drivers/net/ethernet/freescale/gianfar.c      |   2 +-
 drivers/net/ethernet/freescale/ucc_geth.c     |   2 +-
 drivers/net/ethernet/hisilicon/hisi_femac.c   |   2 +-
 drivers/net/ethernet/hisilicon/hns/hns_enet.c |   2 +-
 .../net/ethernet/hisilicon/hns3/hns3_enet.c   |   2 +-
 drivers/net/ethernet/ibm/emac/core.c          |   4 +-
 drivers/net/ethernet/ibm/ibmveth.c            |   2 +-
 drivers/net/ethernet/intel/e100.c             |   2 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c |   2 +-
 drivers/net/ethernet/intel/e1000e/netdev.c    |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c   |   2 +-
 drivers/net/ethernet/intel/ice/ice_main.c     |   6 +-
 drivers/net/ethernet/intel/igb/igb_main.c     |   2 +-
 drivers/net/ethernet/intel/igbvf/netdev.c     |   2 +-
 drivers/net/ethernet/intel/igc/igc_main.c     |   2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |   2 +-
 drivers/net/ethernet/jme.c                    |   2 +-
 drivers/net/ethernet/korina.c                 |   2 +-
 drivers/net/ethernet/lantiq_etop.c            |   2 +-
 drivers/net/ethernet/marvell/mv643xx_eth.c    |   2 +-
 drivers/net/ethernet/marvell/mvneta.c         |   2 +-
 .../net/ethernet/marvell/mvpp2/mvpp2_main.c   |   2 +-
 .../ethernet/marvell/octeontx2/nic/otx2_pf.c  |   2 +-
 drivers/net/ethernet/marvell/pxa168_eth.c     |   2 +-
 drivers/net/ethernet/marvell/skge.c           |   2 +-
 drivers/net/ethernet/marvell/sky2.c           |   4 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c   |   2 +-
 drivers/net/ethernet/mediatek/mtk_star_emac.c |   2 +-
 .../net/ethernet/mellanox/mlx4/en_netdev.c    |   2 +-
 .../net/ethernet/mellanox/mlx5/core/en_main.c |   2 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ipoib.c |   2 +-
 .../mellanox/mlx5/core/ipoib/ipoib_vlan.c     |   2 +-
 .../mellanox/mlxbf_gige/mlxbf_gige_main.c     |   4 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.c    |   2 +-
 drivers/net/ethernet/micrel/ks8851_common.c   |   2 +-
 drivers/net/ethernet/micrel/ksz884x.c         |   2 +-
 drivers/net/ethernet/microchip/lan743x_main.c |   2 +-
 drivers/net/ethernet/mscc/ocelot_net.c        |   2 +-
 drivers/net/ethernet/natsemi/natsemi.c        |   2 +-
 drivers/net/ethernet/neterion/s2io.c          |   2 +-
 .../net/ethernet/neterion/vxge/vxge-main.c    |   2 +-
 drivers/net/ethernet/nxp/lpc_eth.c            |   2 +-
 .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c  |   2 +-
 drivers/net/ethernet/packetengines/hamachi.c  |  63 +++++----
 .../net/ethernet/packetengines/yellowfin.c    |   2 +-
 .../net/ethernet/pensando/ionic/ionic_lif.c   |   4 +-
 drivers/net/ethernet/qlogic/qede/qede_main.c  |   2 +-
 drivers/net/ethernet/qualcomm/emac/emac.c     |   2 +-
 drivers/net/ethernet/rdc/r6040.c              |   2 +-
 drivers/net/ethernet/realtek/8139cp.c         |   2 +-
 drivers/net/ethernet/realtek/8139too.c        |   2 +-
 drivers/net/ethernet/realtek/r8169_main.c     |   2 +-
 drivers/net/ethernet/renesas/ravb_main.c      |   2 +-
 drivers/net/ethernet/renesas/sh_eth.c         |   4 +-
 .../net/ethernet/samsung/sxgbe/sxgbe_main.c   |   2 +-
 drivers/net/ethernet/sfc/efx.c                |   2 +-
 drivers/net/ethernet/sfc/falcon/efx.c         |   2 +-
 drivers/net/ethernet/sgi/ioc3-eth.c           |   2 +-
 drivers/net/ethernet/sgi/meth.c               |   2 +-
 drivers/net/ethernet/sis/sis190.c             |   2 +-
 drivers/net/ethernet/sis/sis900.c             |   2 +-
 drivers/net/ethernet/smsc/epic100.c           |   2 +-
 drivers/net/ethernet/smsc/smc91c92_cs.c       |   2 +-
 drivers/net/ethernet/smsc/smsc911x.c          |   2 +-
 drivers/net/ethernet/smsc/smsc9420.c          |   2 +-
 drivers/net/ethernet/socionext/netsec.c       |   2 +-
 drivers/net/ethernet/socionext/sni_ave.c      |   2 +-
 .../net/ethernet/stmicro/stmmac/stmmac_main.c |   2 +-
 drivers/net/ethernet/sun/cassini.c            |   2 +-
 drivers/net/ethernet/sun/niu.c                |   2 +-
 drivers/net/ethernet/sun/sungem.c             |   2 +-
 .../net/ethernet/synopsys/dwc-xlgmac-net.c    |   2 +-
 drivers/net/ethernet/tehuti/tehuti.c          |  18 +--
 drivers/net/ethernet/ti/am65-cpsw-nuss.c      |   2 +-
 drivers/net/ethernet/ti/cpmac.c               |   2 +-
 drivers/net/ethernet/ti/cpsw.c                |   2 +-
 drivers/net/ethernet/ti/cpsw_new.c            |   2 +-
 drivers/net/ethernet/ti/davinci_emac.c        |   2 +-
 drivers/net/ethernet/ti/netcp_core.c          |   2 +-
 drivers/net/ethernet/ti/tlan.c                |   2 +-
 drivers/net/ethernet/toshiba/spider_net.c     |   2 +-
 drivers/net/ethernet/toshiba/tc35815.c        |   2 +-
 drivers/net/ethernet/tundra/tsi108_eth.c      |   2 +-
 drivers/net/ethernet/via/via-rhine.c          |   2 +-
 drivers/net/ethernet/via/via-velocity.c       |   2 +-
 drivers/net/ethernet/xilinx/ll_temac_main.c   |   2 +-
 .../net/ethernet/xilinx/xilinx_axienet_main.c |   2 +-
 drivers/net/ethernet/xilinx/xilinx_emaclite.c |   2 +-
 drivers/net/ethernet/xircom/xirc2ps_cs.c      |   2 +-
 drivers/net/ethernet/xscale/ixp4xx_eth.c      |   2 +-
 drivers/net/fddi/skfp/skfddi.c                |  19 ++-
 drivers/net/hamradio/baycom_epp.c             |   9 +-
 drivers/net/hamradio/baycom_par.c             |  12 +-
 drivers/net/hamradio/baycom_ser_fdx.c         |  12 +-
 drivers/net/hamradio/baycom_ser_hdx.c         |  12 +-
 drivers/net/hamradio/bpqether.c               |   9 +-
 drivers/net/hamradio/dmascc.c                 |  18 ++-
 drivers/net/hamradio/hdlcdrv.c                |  20 +--
 drivers/net/hamradio/scc.c                    |  13 +-
 drivers/net/hamradio/yam.c                    |  19 ++-
 drivers/net/hippi/rrunner.c                   |  11 +-
 drivers/net/hippi/rrunner.h                   |   3 +-
 drivers/net/macvlan.c                         |   8 +-
 drivers/net/phy/phy.c                         |   4 +-
 drivers/net/plip/plip.c                       |  12 +-
 drivers/net/ppp/ppp_generic.c                 |   6 +-
 drivers/net/sb1000.c                          |  20 +--
 drivers/net/slip/slip.c                       |  13 +-
 drivers/net/usb/asix_devices.c                |   6 +-
 drivers/net/usb/ax88172a.c                    |   2 +-
 drivers/net/usb/ax88179_178a.c                |   2 +-
 drivers/net/usb/cdc-phonet.c                  |   5 +-
 drivers/net/usb/dm9601.c                      |   2 +-
 drivers/net/usb/lan78xx.c                     |   2 +-
 drivers/net/usb/mcs7830.c                     |   2 +-
 drivers/net/usb/pegasus.c                     |   5 +-
 drivers/net/usb/r8152.c                       |   2 +-
 drivers/net/usb/rtl8150.c                     |   5 +-
 drivers/net/usb/smsc75xx.c                    |   2 +-
 drivers/net/usb/smsc95xx.c                    |   2 +-
 drivers/net/usb/sr9700.c                      |   2 +-
 drivers/net/usb/sr9800.c                      |   2 +-
 drivers/net/wan/c101.c                        |  33 +++--
 drivers/net/wan/cosa.c                        |  15 +--
 drivers/net/wan/farsync.c                     | 123 ++++++++++--------
 drivers/net/wan/fsl_ucc_hdlc.c                |  19 ++-
 drivers/net/wan/hdlc.c                        |   9 +-
 drivers/net/wan/hdlc_cisco.c                  |  14 +-
 drivers/net/wan/hdlc_fr.c                     |  40 +++---
 drivers/net/wan/hdlc_ppp.c                    |   8 +-
 drivers/net/wan/hdlc_raw.c                    |  14 +-
 drivers/net/wan/hdlc_raw_eth.c                |  14 +-
 drivers/net/wan/hdlc_x25.c                    |  16 +--
 drivers/net/wan/hostess_sv11.c                |   7 +-
 drivers/net/wan/ixp4xx_hss.c                  |  19 ++-
 drivers/net/wan/lmc/lmc.h                     |   2 +-
 drivers/net/wan/lmc/lmc_main.c                |  33 +++--
 drivers/net/wan/lmc/lmc_proto.c               |   7 -
 drivers/net/wan/lmc/lmc_proto.h               |   1 -
 drivers/net/wan/n2.c                          |  32 +++--
 drivers/net/wan/pc300too.c                    |  44 ++++---
 drivers/net/wan/pci200syn.c                   |  32 +++--
 drivers/net/wan/sbni.c                        |  15 ++-
 drivers/net/wan/sealevel.c                    |  10 +-
 drivers/net/wan/wanxl.c                       |  21 ++-
 drivers/net/wireless/cisco/airo.c             |  15 ++-
 drivers/net/wireless/intersil/hostap/hostap.h |   3 +-
 .../wireless/intersil/hostap/hostap_ioctl.c   |  30 ++++-
 .../wireless/intersil/hostap/hostap_main.c    |   3 +
 drivers/s390/net/qeth_core.h                  |   5 +-
 drivers/s390/net/qeth_core_main.c             |  35 +++--
 drivers/s390/net/qeth_l2_main.c               |   3 +-
 drivers/s390/net/qeth_l3_main.c               |  12 +-
 drivers/staging/octeon/ethernet.c             |  12 +-
 .../staging/rtl8188eu/include/osdep_intf.h    |   2 +
 .../staging/rtl8188eu/include/rtw_android.h   |   3 +-
 .../staging/rtl8188eu/os_dep/ioctl_linux.c    |   3 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c   |   1 +
 .../staging/rtl8188eu/os_dep/rtw_android.c    |  14 +-
 .../staging/rtl8723bs/include/osdep_intf.h    |   2 +
 .../staging/rtl8723bs/os_dep/ioctl_linux.c    |  18 ++-
 drivers/staging/rtl8723bs/os_dep/os_intfs.c   |   1 +
 drivers/staging/wlan-ng/p80211netdev.c        |  76 ++---------
 drivers/tty/synclink_gt.c                     |  19 ++-
 include/linux/hdlc.h                          |   4 +-
 include/linux/hdlcdrv.h                       |   2 +-
 include/linux/if_bridge.h                     |   7 +-
 include/linux/netdevice.h                     |  28 +++-
 include/net/dsa.h                             |  14 +-
 include/net/ip_tunnels.h                      |   3 +-
 net/8021q/vlan_dev.c                          |   6 +-
 net/bridge/br.c                               |   2 +-
 net/bridge/br_device.c                        |   2 +-
 net/bridge/br_ioctl.c                         |  52 ++++----
 net/bridge/br_private.h                       |   7 +-
 net/core/dev_ioctl.c                          | 104 +++++++++++----
 net/dsa/master.c                              |   6 +-
 net/dsa/slave.c                               |   2 +-
 net/ethtool/ioctl.c                           |   3 +-
 net/ipv4/ip_gre.c                             |   2 +-
 net/ipv4/ip_tunnel.c                          |   9 +-
 net/ipv4/ip_vti.c                             |   2 +-
 net/ipv4/ipip.c                               |   2 +-
 net/ipv6/ip6_gre.c                            |  17 +--
 net/ipv6/ip6_tunnel.c                         |  21 +--
 net/ipv6/ip6_vti.c                            |  21 +--
 net/ipv6/sit.c                                |  35 ++---
 net/phonet/pn_dev.c                           |   6 +-
 net/socket.c                                  |  90 ++++++-------
 254 files changed, 1134 insertions(+), 957 deletions(-)

-- 
2.29.2

Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Jay Vosburgh <j.vosburgh@gmail.com>
Cc: Veaceslav Falico <vfalico@gmail.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: Raju Rangoju <rajur@chelsio.com>
Cc: Thomas Sailer <t.sailer@alumni.ethz.ch>
Cc: Joerg Reuter <jreuter@yaina.de>
Cc: Jean-Paul Roubelat <jpr@f6fbb.org>
Cc: Jes Sorensen <jes@trained-monkey.org>
Cc: Krzysztof Halasa <khc@pm.waw.pl>
Cc: "Jan \"Yenya\" Kasprzak" <kas@fi.muni.cz>
Cc: Kevin Curtis <kevin.curtis@farsite.co.uk>
Cc: Zhao Qiang <qiang.zhao@nxp.com>
Cc: Martin Schiller <ms@dev.tdt.de>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: Jouni Malinen <j@w1.fi>
Cc: Julian Wiedmann <jwi@linux.ibm.com>
Cc: Karsten Graul <kgraul@linux.ibm.com>
Cc: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
Cc: David Ahern <dsahern@kernel.org>
Cc: Roopa Prabhu <roopa@nvidia.com>
Cc: Nikolay Aleksandrov <nikolay@nvidia.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Remi Denis-Courmont <courmisch@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Christoph Hellwig <hch@lst.de>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-hams@vger.kernel.org
Cc: linux-hippi@sunsite.dk
Cc: linux-ppp@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-x25@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: bridge@lists.linux-foundation.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mediatek@lists.infradead.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH net-next v3 23/31] ppp: use ndo_siocdevprivate
  2021-07-27 13:44 [PATCH net-next v3 00/31] ndo_ioctl rework Arnd Bergmann
@ 2021-07-27 13:45 ` Arnd Bergmann
  2021-07-27 19:59 ` [PATCH net-next v3 00/31] ndo_ioctl rework patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Arnd Bergmann @ 2021-07-27 13:45 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, Jakub Kicinski, David S. Miller, Arnd Bergmann,
	Paul Mackerras, linux-ppp

From: Arnd Bergmann <arnd@arndb.de>

ppp has a custom statistics interface using SIOCDEVPRIVATE
ioctl commands that works correctly in compat mode.

Convert it to use ndo_siocdevprivate as a cleanup.

Cc: Paul Mackerras <paulus@samba.org>
Cc: linux-ppp@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/ppp/ppp_generic.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index 930e49ef15f6..216a9f4e9750 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -1452,11 +1452,11 @@ ppp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 }
 
 static int
-ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+ppp_net_siocdevprivate(struct net_device *dev, struct ifreq *ifr,
+		       void __user *addr, int cmd)
 {
 	struct ppp *ppp = netdev_priv(dev);
 	int err = -EFAULT;
-	void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
 	struct ppp_stats stats;
 	struct ppp_comp_stats cstats;
 	char *vers;
@@ -1585,7 +1585,7 @@ static const struct net_device_ops ppp_netdev_ops = {
 	.ndo_init	 = ppp_dev_init,
 	.ndo_uninit      = ppp_dev_uninit,
 	.ndo_start_xmit  = ppp_start_xmit,
-	.ndo_do_ioctl    = ppp_net_ioctl,
+	.ndo_siocdevprivate = ppp_net_siocdevprivate,
 	.ndo_get_stats64 = ppp_get_stats64,
 	.ndo_fill_forward_path = ppp_fill_forward_path,
 };
-- 
2.29.2

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next v3 00/31] ndo_ioctl rework
  2021-07-27 13:44 [PATCH net-next v3 00/31] ndo_ioctl rework Arnd Bergmann
  2021-07-27 13:45 ` [PATCH net-next v3 23/31] ppp: use ndo_siocdevprivate Arnd Bergmann
@ 2021-07-27 19:59 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-07-27 19:59 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: netdev, linux-kernel, kuba, davem, arnd, j.vosburgh, vfalico,
	andy, rajur, t.sailer, jreuter, jpr, jes, khc, kevin.curtis,
	qiang.zhao, ms, kvalo, j, jwi, kgraul, yoshfuji, dsahern, roopa,
	nikolay, steffen.klassert, herbert, courmisch, andrew, hch,
	linux-parisc, linux-hams, linux-hippi, linux-ppp, linux-usb,
	linux-x25, linux-wireless, linux-s390, bridge, linux-arm-kernel,
	linux-mediatek

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Tue, 27 Jul 2021 15:44:46 +0200 you wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,v3,01/31] net: split out SIOCDEVPRIVATE handling from dev_ioctl
    https://git.kernel.org/netdev/net-next/c/b9067f5dc4a0
  - [net-next,v3,02/31] staging: rtlwifi: use siocdevprivate
    https://git.kernel.org/netdev/net-next/c/89939e890605
  - [net-next,v3,03/31] staging: wlan-ng: use siocdevprivate
    https://git.kernel.org/netdev/net-next/c/3343c49a959d
  - [net-next,v3,04/31] hostap: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/3f3fa5340745
  - [net-next,v3,05/31] bridge: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/561d8352818f
  - [net-next,v3,06/31] phonet: use siocdevprivate
    https://git.kernel.org/netdev/net-next/c/4747c1a8bc50
  - [net-next,v3,07/31] tulip: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/029a4fef6b22
  - [net-next,v3,08/31] bonding: use siocdevprivate
    https://git.kernel.org/netdev/net-next/c/232ec98ec35d
  - [net-next,v3,09/31] appletalk: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/dbecb011eb78
  - [net-next,v3,10/31] hamachi: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/99b78a37a371
  - [net-next,v3,11/31] tehuti: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/32d05468c462
  - [net-next,v3,12/31] eql: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/d92f7b59d32b
  - [net-next,v3,13/31] fddi: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/043393d8b478
  - [net-next,v3,14/31] net: usb: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/ef1b5b0c30bc
  - [net-next,v3,15/31] slip/plip: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/76b5878cffab
  - [net-next,v3,16/31] qeth: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/18787eeebd71
  - [net-next,v3,17/31] cxgb3: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/ebb4a911e09a
  - [net-next,v3,18/31] hamradio: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/25ec92fbdd23
  - [net-next,v3,19/31] airo: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/ae6af0120dda
  - [net-next,v3,20/31] ip_tunnel: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/3e7a1c7c561e
  - [net-next,v3,21/31] hippi: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/81a68110a22a
  - [net-next,v3,22/31] sb1000: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/cc0aa831a0d9
  - [net-next,v3,23/31] ppp: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/34f7cac07c4e
  - [net-next,v3,24/31] wan: use ndo_siocdevprivate
    https://git.kernel.org/netdev/net-next/c/73d74f61a559
  - [net-next,v3,25/31] wan: cosa: remove dead cosa_net_ioctl() function
    https://git.kernel.org/netdev/net-next/c/8fb75b79cd98
  - [net-next,v3,26/31] dev_ioctl: pass SIOCDEVPRIVATE data separately
    https://git.kernel.org/netdev/net-next/c/a554bf96b49d
  - [net-next,v3,27/31] dev_ioctl: split out ndo_eth_ioctl
    https://git.kernel.org/netdev/net-next/c/a76053707dbf
  - [net-next,v3,28/31] net: split out ndo_siowandev ioctl
    https://git.kernel.org/netdev/net-next/c/ad7eab2ab014
  - [net-next,v3,29/31] net: socket: return changed ifreq from SIOCDEVPRIVATE
    https://git.kernel.org/netdev/net-next/c/88fc023f7de2
  - [net-next,v3,30/31] net: bridge: move bridge ioctls out of .ndo_do_ioctl
    https://git.kernel.org/netdev/net-next/c/ad2f99aedf8f
  - [net-next,v3,31/31] net: bonding: move ioctl handling to private ndo operation
    https://git.kernel.org/netdev/net-next/c/3d9d00bd1885

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-27 19:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-27 13:44 [PATCH net-next v3 00/31] ndo_ioctl rework Arnd Bergmann
2021-07-27 13:45 ` [PATCH net-next v3 23/31] ppp: use ndo_siocdevprivate Arnd Bergmann
2021-07-27 19:59 ` [PATCH net-next v3 00/31] ndo_ioctl rework patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).