2002-06-04 20:40:01

by Nathaniel

[permalink] [raw]
Subject: 2.5.20-dj2 : "Duplicate initializer" in drivers/scsi/aic7xxx/aic7xxx_linux.c

gcc -D__KERNEL__ -I/home/wes/src/kernel/linux-2.5.20/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686
-malign-functions=4 -DKBUILD_BASENAME=aic7xxx_linux -c -o
aic7xxx_linux.o aic7xxx_linux.c
aic7xxx_linux.c:2829: unknown field `abort' specified in initializer
aic7xxx_linux.c:2829: unknown field `reset' specified in initializer
aic7xxx_linux.c:2829: duplicate initializer
aic7xxx_linux.c:2829: (near initialization for
`driver_template.slave_attach')
aic7xxx_linux.c:2829: duplicate initializer
aic7xxx_linux.c:2829: (near initialization for `driver_template.bios_param')
make[3]: *** [aic7xxx_linux.o] Error 1

Erhm, what's that mean? ^_^ And more importantly, how does one fix that?

--Nathan



2002-06-04 20:52:02

by Dave Jones

[permalink] [raw]
Subject: Re: 2.5.20-dj2 : "Duplicate initializer" in drivers/scsi/aic7xxx/aic7xxx_linux.c

On Tue, Jun 04, 2002 at 04:40:23PM -0400, Nathan wrote:
> gcc -D__KERNEL__ -I/home/wes/src/kernel/linux-2.5.20/include -Wall
> -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
> -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686
> -malign-functions=4 -DKBUILD_BASENAME=aic7xxx_linux -c -o
> aic7xxx_linux.o aic7xxx_linux.c
> aic7xxx_linux.c:2829: unknown field `abort' specified in initializer
> aic7xxx_linux.c:2829: unknown field `reset' specified in initializer
>
> Erhm, what's that mean? ^_^ And more importantly, how does one fix that?

It means the scsi driver has no error handling. Either a, add
appropriate error handling routines, or b, enable the option in
the scsi menu labelled "Use SCSI drivers with broken error handling [DANGEROUS]"

This is the fallout of a patch from Christoph Hellwig to make it more
obvious which drivers are still in need of attention. This patch is
missing from Linus' tree, so things compile fine there. As there's been
little to no progress at fixing these, I'll push the same patch to Linus
in the next round, so things will break there too.

Dave.

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2002-06-05 00:30:45

by Patrick Mansfield

[permalink] [raw]
Subject: Re: 2.5.20-dj2 : "Duplicate initializer" in drivers/scsi/aic7xxx/aic7xxx_linux.c

On Tue, Jun 04, 2002 at 10:52:01PM +0200, Dave Jones wrote:
> On Tue, Jun 04, 2002 at 04:40:23PM -0400, Nathan wrote:
> > gcc -D__KERNEL__ -I/home/wes/src/kernel/linux-2.5.20/include -Wall
> > -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
> > -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686
> > -malign-functions=4 -DKBUILD_BASENAME=aic7xxx_linux -c -o
> > aic7xxx_linux.o aic7xxx_linux.c
> > aic7xxx_linux.c:2829: unknown field `abort' specified in initializer
> > aic7xxx_linux.c:2829: unknown field `reset' specified in initializer
> >
> > Erhm, what's that mean? ^_^ And more importantly, how does one fix that?
>
> It means the scsi driver has no error handling. Either a, add
> appropriate error handling routines, or b, enable the option in
> the scsi menu labelled "Use SCSI drivers with broken error handling [DANGEROUS]"
>
> This is the fallout of a patch from Christoph Hellwig to make it more
> obvious which drivers are still in need of attention. This patch is
> missing from Linus' tree, so things compile fine there. As there's been
> little to no progress at fixing these, I'll push the same patch to Linus
> in the next round, so things will break there too.
>
> Dave.

The aic driver already uses the new error handler, it just references the
removed fields when initializing them to NULL.

-- Patrick Mansfield