• Oliver Neukum's avatar
    HID: hiddev cleanup -- handle all error conditions properly · 07903407
    Oliver Neukum authored
    This is a cleanup of hiddev and fixes the following issues:
    
    - thread safety by locking in read & ioctl, introducing a per device mutex
    - race between ioctl and disconnect, introducing a flag and locking
      in form of a per low level device mutex
    - race between open and other methods, making sure only successfully
      opened devices are put on the list, changing order of events
    - range checking both upper and lower limits of the minor range
    - make sure further calls to open fail for unplugged devices even if
      the device still has opened files
    - error checking for low level open
    - possible loss of wakeup events, using standard waiting macros
    - race in initialisation by moving registration after full initialisation
    Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    07903407
hiddev.c 23.3 KB