Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@kernel.org>
To: netdev@vger.kernel.org
Cc: Christoph Hellwig <hch@lst.de>, Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH net-next v2 29/31] net: socket: return changed ifreq from SIOCDEVPRIVATE
Date: Tue, 20 Jul 2021 16:46:36 +0200	[thread overview]
Message-ID: <20210720144638.2859828-30-arnd@kernel.org> (raw)
In-Reply-To: <20210720144638.2859828-1-arnd@kernel.org>

From: Arnd Bergmann <arnd@arndb.de>

Some drivers that use SIOCDEVPRIVATE ioctl commands modify
the ifreq structure and expect it to be passed back to user
space, which has never really happened for compat mode
because the calling these drivers through ndo_do_ioctl
requires overwriting the ifr_data pointer.

Now that all drivers are converted to ndo_siocdevprivate,
change it to handle this correctly in both compat and
native mode.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 net/core/dev_ioctl.c | 4 +---
 net/socket.c         | 2 +-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 4da176507006..2f58afbaf87a 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -285,9 +285,7 @@ static int dev_siocdevprivate(struct net_device *dev, struct ifreq *ifr,
 			return -ENODEV;
 	}
 
-	/* fall back to do_ioctl for drivers not yet converted */
-	ifr->ifr_data = data;
-	return dev_do_ioctl(dev, ifr, cmd);
+	return -EOPNOTSUPP;
 }
 
 static int dev_siocwandev(struct net_device *dev, struct if_settings *ifs)
diff --git a/net/socket.c b/net/socket.c
index ddce6327633e..48471a219c1d 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -3234,7 +3234,7 @@ static int compat_sock_ioctl_trans(struct file *file, struct socket *sock,
 	struct net *net = sock_net(sk);
 
 	if (cmd >= SIOCDEVPRIVATE && cmd <= (SIOCDEVPRIVATE + 15))
-		return compat_ifr_data_ioctl(net, cmd, argp);
+		return sock_ioctl(file, cmd, (unsigned long)argp);
 
 	switch (cmd) {
 	case SIOCSIFBR:
-- 
2.29.2


  parent reply	other threads:[~2021-07-20 15:27 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-20 14:46 [PATCH net-next v2 00/31] ndo_ioctl rework Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 01/31] net: split out SIOCDEVPRIVATE handling from dev_ioctl Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 02/31] staging: rtlwifi: use siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 03/31] staging: wlan-ng: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 04/31] hostap: use ndo_siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 05/31] bridge: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 06/31] phonet: use siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 07/31] tulip: use ndo_siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 08/31] bonding: use siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 09/31] appletalk: use ndo_siocdevprivate Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 10/31] hamachi: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 11/31] tehuti: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 12/31] eql: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 13/31] fddi: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 14/31] net: usb: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 15/31] slip/plip: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 16/31] qeth: " Arnd Bergmann
2021-07-21  6:05   ` Julian Wiedmann
2021-07-21  8:49     ` Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 17/31] cxgb3: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 18/31] hamradio: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 19/31] airo: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 20/31] ip_tunnel: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 21/31] hippi: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 22/31] sb1000: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 23/31] ppp: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 24/31] wan: " Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 25/31] wan: cosa: remove dead cosa_net_ioctl() function Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 26/31] dev_ioctl: pass SIOCDEVPRIVATE data separately Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 27/31] dev_ioctl: split out ndo_eth_ioctl Arnd Bergmann
2021-07-21 16:21   ` Shannon Nelson
2021-07-20 14:46 ` [PATCH net-next v2 28/31] net: split out ndo_siowandev ioctl Arnd Bergmann
2021-07-20 14:46 ` Arnd Bergmann [this message]
2021-07-20 14:46 ` [PATCH net-next v2 30/31] net: bridge: move bridge ioctls out of .ndo_do_ioctl Arnd Bergmann
2021-07-20 14:46 ` [PATCH net-next v2 31/31] net: bonding: move ioctl handling to private ndo operation Arnd Bergmann
2021-07-20 19:08 ` [PATCH net-next v2 00/31] ndo_ioctl rework David Miller
2021-07-22 15:02   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210720144638.2859828-30-arnd@kernel.org \
    --to=arnd@kernel.org \
    --cc=arnd@arndb.de \
    --cc=hch@lst.de \
    --cc=netdev@vger.kernel.org \
    --subject='Re: [PATCH net-next v2 29/31] net: socket: return changed ifreq from SIOCDEVPRIVATE' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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).