• Arnd Bergmann's avatar
    net: split out SIOCDEVPRIVATE handling from dev_ioctl · b9067f5d
    Arnd Bergmann authored
    SIOCDEVPRIVATE ioctl commands are mainly used in really old
    drivers, and they have a number of problems:
    
    - They hide behind the normal .ndo_do_ioctl function that
      is also used for other things in modern drivers, so it's
      hard to spot a driver that actually uses one of these
    
    - Since drivers use a number different calling conventions,
      it is impossible to support compat mode for them in
      a generic way.
    
    - With all drivers using the same 16 commands codes, there
      is no way to introspect the data being passed through
      things like strace.
    
    Add a new net_device_ops callback pointer, to address the
    first two of these. Separating them from .ndo_do_ioctl
    makes it easy to grep for drivers with a .ndo_siocdevprivate
    callback, and the unwieldy name hopefully makes it easier
    to spot in code review.
    
    By passing the ifreq structure and the ifr_data pointer
    separately, it is no longer necessary to overload these,
    and the driver can use either one for a given command.
    
    Cc: Cong Wang <cong.wang@bytedance.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b9067f5d
dev_ioctl.c 13 KB