Skip to content
  • Shuah Khan's avatar
    usbip: usbip_host: fix stub_dev lock context imbalance regression · 3ea3091f
    Shuah Khan authored
    Fix the following sparse context imbalance regression introduced in
    a patch that fixed sleeping function called from invalid context bug.
    
    kbuild test robot reported on:
    
    tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
    
      usb-linus
    
    Regressions in current branch:
    
    drivers/usb/usbip/stub_dev.c:399:9: sparse: sparse: context imbalance in 'stub_probe' - different lock contexts for basic block
    drivers/usb/usbip/stub_dev.c:418:13: sparse: sparse: context imbalance in 'stub_disconnect' - different lock contexts for basic block
    drivers/usb/usbip/stub_dev.c:464:1-10: second lock on line 476
    
    Error ids grouped by kconfigs:
    
    recent_errors
    ├── i386-allmodconfig
    │   └── drivers-usb-usbip-stub_dev.c:second-lock-on-line
    ├── x86_64-allmodconfig
    │   ├── drivers-usb-usbip-stub_dev.c:sparse:sparse:context-imbalance-in-stub_disconnect-different-lock-contexts-for-basic-block
    │   └── drivers-usb-usbip-stub_dev.c:sparse:sparse:context-imbalance-in-stub_probe-different-lock-contexts-for-basic-block
    └── x86_64-allyesconfig
        └── drivers-usb-usbip-stub_dev.c:second-lock-on-line
    
    This is a real problem in an error leg where spin_lock() is called on an
    already held lock.
    
    Fix the imbalance in stub_probe() and stub_disconnect().
    
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    Fixes: 0c9e8b3c
    
     ("usbip: usbip_host: fix BUG: sleeping function called from invalid context")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3ea3091f