• Arnd Bergmann's avatar
    [SCSI] atari_scsi: Fix sleep_on race · eff9cf8d
    Arnd Bergmann authored
    sleep_on is known broken and going away. The atari_scsi driver is one of
    two remaining users in the falcon_get_lock() function, which is a rather
    crazy piece of code. This does not attempt to fix the driver's locking
    scheme in general, but at least prevents falcon_get_lock from going to
    sleep when no other thread holds the same lock or tries to get it,
    and we no longer schedule with irqs disabled.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    [MSch: fixed completion conditions missed in Arnds' original RFC patch]
    Signed-off-by: default avatarMichael Schmitz <schmitz@debian.org>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: James E.J. Bottomley <JBottomley@parallels.com>
    Cc: linux-scsi@vger.kernel.org
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    eff9cf8d
atari_scsi.c 35 KB