* [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 related [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).