• Peter Oberparleiter's avatar
    s390/vmur: remove unnecessary BUG statement · f3e59ff3
    Peter Oberparleiter authored
    An existing BUG statement in vmur's interrupt handler triggers if:
    
      1. An online vmur device is removed (e.g. due to driver unload, manual
         unbind or channel-report words indicating hypervisor-side device
         removal)
      2. Device deactivation fails due to firmware/hypervisor error, leaving
         subchannel enabled for interrupts + drvdata=NULL
      3. Interrupt occurs
    
    This situation is highly unlikely and not a clear indication of a
    general system error that would warrant stopping the full Linux system.
    Also it can be prevented completely by clearing the interrupt handler
    when unsetting a vmur device's drvdata.
    
    Replace the BUG statement in vmur's interrupt handler by clearing the
    interrupt handler callback during device removal. Also move the initial
    setting of the interrupt handler callback under lock for consistency
    reasons.
    Reviewed-by: default avatarSven Schnelle <svens@linux.ibm.com>
    Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    Signed-off-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    f3e59ff3
vmur.c 23.2 KB