Subject: Re: compile error if CONFIG_BLOCK not enabled related to linux/ide.h include

From: Bartlomiej Zolnierkiewicz <[email-masked]>
Date: Wed, 18 Jul 2007 22:44:40 +0200

On Wednesday 18 July 2007, Kumar Gala wrote:
> 
> On Jul 18, 2007, at 5:47 AM, Bartlomiej Zolnierkiewicz wrote:
> 
> >
> > Hi,
> >
> > On Wednesday 18 July 2007, Kumar Gala wrote:
> >> M:      [email-masked]
> >> L:      [email-masked]
> >>
> >> We get the following compile error if CONFIG_BLOCK isn't enabled:
> >>
> >>   CC      arch/powerpc/kernel/setup_32.o
> >> In file included from arch/powerpc/kernel/setup_32.c:14:
> >> include/linux/ide.h:558: error: expected specifier-qualifier-list  
> >> before 'request_queue_t'
> >> include/linux/ide.h:696: warning: 'struct request' declared inside  
> >> parameter list
> >> include/linux/ide.h:696: warning: its scope is only this  
> >> definition or declaration, which is probably not what you want
> >> include/linux/ide.h:820: warning: 'struct request' declared inside  
> >> parameter list
> >> include/linux/ide.h:853: error: field 'wrq' has incomplete type
> >> include/linux/ide.h:1205: error: expected ')' before '*' token
> >> make[1]: *** [arch/powerpc/kernel/setup_32.o] Error 1
> >> make: *** [arch/powerpc/kernel] Error 2
> >
> > include/linux/ide.h is exclusively for IDE subsystem
> >
> >> What I'm trying to figure out is if include/linux/ide.h should be  
> >> wrapped
> >> in a #if defined(CONFIG_IDE) || defined(CONFIG_IDE_MODULE) or if  
> >> there is
> >> some other desired way to handle this.
> >
> > Plese remove <linux/ide.h> include, there doesn't seem to be any  
> > piece of
> > code in arch/powerpc/kernel/setup_32.c which needs it anyway.
> 
> Its needed for:
> 
> struct ide_machdep_calls ppc_ide_md;
> 
> which gets defined in asm/ide.h which needs linux/ide.h for the defn  
> of ide_init_hwif.

Ah, this is a PPC special case.

In this case I think the best solution for now is to just add #ifdefs
(the proper/clean solution would be adding IDE host drivers for PPC
platforms needing special handling).

Thanks,
Bart