• Arnd Bergmann's avatar
    net/tun: handle compat_ioctl directly · 50857e2a
    Arnd Bergmann authored
    The tun driver is the only code in the kernel that operates
    on a character device with struct ifreq. Change the driver
    to handle the conversion itself so we can contain the
    remaining ifreq handling in the socket layer.
    
    This also fixes a bug in the handling of invalid ioctl
    numbers on an unbound tun device. The driver treats this
    as a TUNSETIFF in native mode, but there is no way for
    the generic compat_ioctl() function to emulate this
    behaviour. Possibly the driver was only doing this
    accidentally anyway, but if any code relies on this
    misfeature, it now also works in compat mode.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    50857e2a
compat_ioctl.c 81.1 KB