Re: [PATCH v4 22/23] mac_scsi: Fix pseudo DMA implementation
From: Geert Uytterhoeven
Date: Thu May 19 2016 - 08:55:30 EST
Hi Finn,
On Thu, May 19, 2016 at 2:02 PM, Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 19 May 2016, Geert Uytterhoeven wrote:
>> In file included from drivers/scsi/mac_scsi.c:335:
>> drivers/scsi/NCR5380.h:295: warning: `NCR5380_poll_politely' declared inline after being called
>> drivers/scsi/NCR5380.h:295: warning: previous declaration of `NCR5380_poll_politely' was here
>
> Thanks for letting me know. My compiler (v4.4.6) doesn't warn about this.
> What GCC version are you using? Does this (untested) patch help?
The venerable gcc version 4.1.2 20061115 (prerelease) (Ubuntu 4.1.1-21).
Which seems to disobey __attribute__((unused)):
drivers/scsi/NCR5380.c:385: warning: âNCR5380_probe_irqâ defined
but not used
> Index: linux/drivers/scsi/NCR5380.c
> ===================================================================
> --- linux.orig/drivers/scsi/NCR5380.c 2016-05-19 21:31:05.000000000 +1000
> +++ linux/drivers/scsi/NCR5380.c 2016-05-19 21:39:08.000000000 +1000
> @@ -230,13 +230,6 @@ static int NCR5380_poll_politely2(struct
> return -ETIMEDOUT;
> }
>
> -static inline int NCR5380_poll_politely(struct Scsi_Host *instance,
> - int reg, int bit, int val, int wait)
> -{
> - return NCR5380_poll_politely2(instance, reg, bit, val,
> - reg, bit, val, wait);
> -}
> -
> #if NDEBUG
> static struct {
> unsigned char mask;
> Index: linux/drivers/scsi/NCR5380.h
> ===================================================================
> --- linux.orig/drivers/scsi/NCR5380.h 2016-05-19 19:47:06.000000000 +1000
> +++ linux/drivers/scsi/NCR5380.h 2016-05-19 21:40:15.000000000 +1000
> @@ -292,8 +292,10 @@ static void NCR5380_reselect(struct Scsi
> static struct scsi_cmnd *NCR5380_select(struct Scsi_Host *, struct scsi_cmnd *);
> static int NCR5380_transfer_dma(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data);
> static int NCR5380_transfer_pio(struct Scsi_Host *instance, unsigned char *phase, int *count, unsigned char **data);
> -static int NCR5380_poll_politely(struct Scsi_Host *, int, int, int, int);
> static int NCR5380_poll_politely2(struct Scsi_Host *, int, int, int, int, int, int, int);
>
> +#define NCR5380_poll_politely(instance, reg, bit, val, wait) \
> + NCR5380_poll_politely2(instance, reg, bit, val, reg, bit, val, wait)
Thanks, that silences the warning.
BTW, what about using the static inline variant here? That works, too.
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