Re: [PATCH 12/14] scsi: NCR5380: Remove in_interrupt().

Finn Thain
2020-11-27T21:48:56Z

On Sat, 28 Nov 2020, Finn Thain wrote:

>
> diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
> index d654a6cc4162..739def70cffb 100644
> --- a/drivers/scsi/NCR5380.c
> +++ b/drivers/scsi/NCR5380.c
> @@ -223,7 +223,10 @@ static int NCR5380_poll_politely2(struct NCR5380_hostdata *hostdata,
> cpu_relax();
> } while (n--);
>
> - if (irqs_disabled() || in_interrupt())
> + /* We can't sleep when local irqs are disabled and callers ensure
> + * that local irqs are disabled whenever we can't sleep.
> + */
> + if (irqs_disabled())
> return -ETIMEDOUT;
>
> /* Repeatedly sleep for 1 ms until deadline */
>

Michael, Andreas, would you please confirm that this is workable on Atari?
The driver could sleep when IPL == 2 because arch_irqs_disabled_flags()
would return false (on Atari). I'm wondering whether that would deadlock.