net/compat: fix dev_ifsioc emulation corner cases
authorArnd Bergmann <arnd@arndb.de>
Wed, 11 Nov 2009 03:39:40 +0000 (03:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Nov 2009 03:22:22 +0000 (19:22 -0800)
commita2116ed223c88b6c424f42398e54d1607dc785ba
tree6a01a5d91706b4079a0db3a6d80b9ea606a954ae
parentc029f4440fd3f0dcc6923f917536fd62d6ef5d1d
net/compat: fix dev_ifsioc emulation corner cases

Handling for SIOCSHWTSTAMP is broken on architectures
with a split user/kernel address space like s390,
because it passes a real user pointer while using
set_fs(KERNEL_DS).
A similar problem might arise the next time somebody
adds code to dev_ifsioc.

Split up dev_ifsioc into three separate functions for
SIOCSHWTSTAMP, SIOC*IFMAP and all other numbers so
we can get rid of set_fs in all potentially affected
cases.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Patrick Ohly <patrick.ohly@intel.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/socket.c