Re: [PATCH] scsi/NCR5380: Remove in_interrupt() test

From: Geert Uytterhoeven
Date: Fri Dec 04 2020 - 03:39:58 EST


Hi Finn,

On Fri, Dec 4, 2020 at 12:11 AM Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> wrote:
> > --- a/drivers/scsi/g_NCR5380.c
> > +++ b/drivers/scsi/g_NCR5380.c
> > @@ -529,14 +529,14 @@ static inline int generic_NCR5380_precv(struct NCR5380_hostdata *hostdata,
> > if (start == len - 128) {
> > /* Ignore End of DMA interrupt for the final buffer */
> > if (NCR5380_poll_politely(hostdata, hostdata->c400_ctl_status,
> > - CSR_HOST_BUF_NOT_RDY, 0, HZ / 64) < 0)
> > + CSR_HOST_BUF_NOT_RDY, 0, 0) < 0)
>
> You've put your finger on a known problem with certain
> NCR5380_poll_politely() call sites. That is, the nominal timeout, HZ / 64,
> is meaningless because it is ignored in atomic context. So you may as well
> specify 0 jiffies at these call sites. (There will be a 1 jiffy timeout
> applied regardless.)

Notwithstanding HZ / 64 breaks if HZ < 64.

Possible values of HZ in the kernel:

24
32
48
64
100
128
200
250
256
300
500
1000
1024
1200

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds