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

Michael Schmitz
2020-11-29T06:55:19Z

Hi Finn,

Am 28.11.20 um 10:48 schrieb Finn Thain:
> 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.

Pretty sure this would deadlock when in interrupt context here.
Otherwise, IPL 2 is perfectly OK (which is why
arch_irqs_disabled_flags() returns false in that case).

If you want to be 100% certain, I can give this one a spin.

Cheers,

Michael