• Emil Medve's avatar
    [POWERPC] Fix build errors when BLOCK=n · 576e393e
    Emil Medve authored
    These are the symptom error messages:
    
      CC      arch/powerpc/kernel/setup_32.o
    In file included from include/linux/blkdev.h:17,
                     from include/linux/ide.h:13,
                     from arch/powerpc/kernel/setup_32.c:13:
    include/linux/bsg.h:67: warning: 'struct request_queue' declared inside parameter list
    include/linux/bsg.h:67: warning: its scope is only this definition or declaration, which is probably not what you want
    include/linux/bsg.h:71: warning: 'struct request_queue' declared inside parameter list
    In file included from arch/powerpc/kernel/setup_32.c:13:
    include/linux/ide.h:857: error: field 'wrq' has incomplete type
    
      CC      arch/powerpc/kernel/ppc_ksyms.o
    In file included from include/linux/blkdev.h:17,
                     from include/linux/ide.h:13,
                     from arch/powerpc/kernel/ppc_ksyms.c:15:
    include/linux/bsg.h:67: warning: 'struct request_queue' declared inside parameter list
    include/linux/bsg.h:67: warning: its scope is only this definition or declaration, which is probably not what you want
    include/linux/bsg.h:71: warning: 'struct request_queue' declared inside parameter list
    In file included from arch/powerpc/kernel/ppc_ksyms.c:15:
    include/linux/ide.h:857: error: field 'wrq' has incomplete type
    
    The fix tries to use the smallest scope CONFIG_* symbols that will fix
    the build problem.  In this case <linux/ide.h> needs to be included
    only if IDE=y or IDE=m were selected.  Also, ppc_ide_md is needed only
    if BLK_DEV_IDE=y or BLK_DEV_IDE=m
    
    Moved the EXPORT_SYMBOL(ppc_ide_md) from ppc_ksysms.c next to its
    declaration in setup_32.c which made <linux/ide.h> not needed. With
    <linux/ide.h> gone from ppc_ksyms.c, <asm/cacheflush.h> is needed to
    address the following warnings and errors:
    
      CC      arch/powerpc/kernel/ppc_ksyms.o
    arch/powerpc/kernel/ppc_ksyms.c:122: error: '__flush_icache_range' undeclared here (not in a function)
    arch/powerpc/kernel/ppc_ksyms.c:122: warning: type defaults to 'int' in declaration of '__flush_icache_range'
    arch/powerpc/kernel/ppc_ksyms.c:123: error: 'flush_dcache_range' undeclared here (not in a function)
    arch/powerpc/kernel/ppc_ksyms.c:123: warning: type defaults to 'int' in declaration of 'flush_dcache_range'
    Signed-off-by: default avatarEmil Medve <Emilian.Medve@Freescale.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    576e393e
ppc_ksyms.c 4.77 KB