Thread (5 messages) 5 messages, 4 authors, 2018-03-08

Re: [PATCH] net: don't unnecessarily load kernel modules in dev_ioctl()

From: Paul Moore <hidden>
Date: 2018-03-07 13:46:23
Also in: linux-security-module, selinux

On Tue, Mar 6, 2018 at 6:59 PM, Stephen Hemminger
[off-list ref] wrote:
On Tue, 06 Mar 2018 17:27:44 -0500
Paul Moore [off-list ref] wrote:
quoted
From: Paul Moore <redacted>

Starting with v4.16-rc1 we've been seeing a higher than usual number
of requests for the kernel to load networking modules, even on events
which shouldn't trigger a module load (e.g. ioctl(TCGETS)).  Stephen
Smalley suggested the problem may lie in commit 44c02a2c3dc5
("dev_ioctl(): move copyin/copyout to callers") which moves changes
the network dev_ioctl() function to always call dev_load(),
regardless of the requested ioctl.

This patch moves the dev_load() calls back into the individual ioctls
while preserving the rest of the original patch.

Reported-by: Dominick Grift <redacted>
Suggested-by: Stephen Smalley <redacted>
Signed-off-by: Paul Moore <redacted>
---
 net/core/dev_ioctl.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 0ab1af04296c..a04e1e88bf3a 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -402,8 +402,6 @@ int dev_ioctl(struct net *net, unsigned int cmd, struct ifreq *ifr, bool *need_c
      if (colon)
              *colon = 0;

-     dev_load(net, ifr->ifr_name);
Actually dev_load by ethernet name is really a legacy thing that should just die,

It was kept around so that some very tunnel configuration using special names.

        # ifconfig sit0

which probably several web pages still tell users to do...
We have much better control now with ip commands so that this is just
baggage.
In an effort to get this regression fixed quickly, and not get tangled
up in a user education issue, can we at least restore the old ioctl()
behavior and worry about removing dev_load() later?

-- 
paul moore
www.paul-moore.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help