All of lore.kernel.org
 help / color / mirror / Atom feed
* 3.4-rc3 compile failed on IBM Power6
@ 2012-04-25  0:22 Ryan Wang
  2012-04-25  0:54 ` Nishanth Aravamudan
  0 siblings, 1 reply; 8+ messages in thread
From: Ryan Wang @ 2012-04-25  0:22 UTC (permalink / raw)
  To: Nishanth Aravamudan, linuxppc-dev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 19014 bytes --]

# gcc --version
gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

platform    : pSeries
model        : IBM,9117-MMA
machine        : CHRP IBM,9117-MMA



# make O=../build/3.4-rc4/
  GEN     /usr/src/kernels/build/3.4-rc4/Makefile
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
  Using /usr/src/kernels/linux as source for kernel
  GEN     /usr/src/kernels/build/3.4-rc4/Makefile
  WRAP    arch/powerpc/include/generated/asm/rwsem.h
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
  CC      kernel/bounds.s
  GEN     include/generated/bounds.h
  CC      arch/powerpc/kernel/asm-offsets.s
  GEN     include/generated/asm-offsets.h
  CALL    /usr/src/kernels/linux/scripts/checksyscalls.sh
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/data.o
  SHIPPED scripts/dtc/dtc-lexer.lex.c
  SHIPPED scripts/dtc/dtc-parser.tab.h
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  SHIPPED scripts/dtc/dtc-parser.tab.c
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/util.o
  HOSTLD  scripts/dtc/dtc
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.lex.c
  SHIPPED scripts/genksyms/keywords.hash.c
  SHIPPED scripts/genksyms/parse.tab.h
  HOSTCC  scripts/genksyms/lex.lex.o
  SHIPPED scripts/genksyms/parse.tab.c
  HOSTCC  scripts/genksyms/parse.tab.o
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/bin2c
  CC      init/main.o
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_rd.o
  CC      init/do_mounts_initrd.o
  CC      init/do_mounts_md.o
  LD      init/mounts.o
  CC      init/initramfs.o
  LD      init/built-in.o
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  AS      usr/initramfs_data.o
  LD      usr/built-in.o
  CC      arch/powerpc/kernel/cputable.o
  CC      arch/powerpc/kernel/ptrace.o
  CC      arch/powerpc/kernel/syscalls.o
  CC      arch/powerpc/kernel/irq.o
  CC      arch/powerpc/kernel/align.o
  CC      arch/powerpc/kernel/signal_32.o
  CC      arch/powerpc/kernel/pmc.o
  CC      arch/powerpc/kernel/vdso.o
  CC      arch/powerpc/kernel/init_task.o
  CC      arch/powerpc/kernel/process.o
  CPP     arch/powerpc/kernel/systbl_chk.i
  CALL    /usr/src/kernels/linux/arch/powerpc/kernel/systbl_chk.sh
  AS      arch/powerpc/kernel/systbl.o
  CC      arch/powerpc/kernel/idle.o
  CC      arch/powerpc/kernel/signal.o
  CC      arch/powerpc/kernel/sysfs.o
  CC      arch/powerpc/kernel/cacheinfo.o
  CC      arch/powerpc/kernel/time.o
  CC      arch/powerpc/kernel/prom.o
  CC      arch/powerpc/kernel/traps.o
  CC      arch/powerpc/kernel/setup-common.o
  CC      arch/powerpc/kernel/udbg.o
  AS      arch/powerpc/kernel/misc.o
  CC      arch/powerpc/kernel/io.o
  CC      arch/powerpc/kernel/dma.o
  AS      arch/powerpc/kernel/misc_64.o
  LDS     arch/powerpc/kernel/vdso32/vdso32.lds
  VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o
  VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o
  VDSO32A arch/powerpc/kernel/vdso32/datapage.o
  VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o
  VDSO32A arch/powerpc/kernel/vdso32/note.o
  VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg
  OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so
  AS      arch/powerpc/kernel/vdso32/vdso32_wrapper.o
  LD      arch/powerpc/kernel/vdso32/built-in.o
  LDS     arch/powerpc/kernel/vdso64/vdso64.lds
  VDSO64A arch/powerpc/kernel/vdso64/sigtramp.o
  VDSO64A arch/powerpc/kernel/vdso64/gettimeofday.o
  VDSO64A arch/powerpc/kernel/vdso64/datapage.o
  VDSO64A arch/powerpc/kernel/vdso64/cacheflush.o
  VDSO64A arch/powerpc/kernel/vdso64/note.o
  VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg
  OBJCOPY arch/powerpc/kernel/vdso64/vdso64.so
  AS      arch/powerpc/kernel/vdso64/vdso64_wrapper.o
  LD      arch/powerpc/kernel/vdso64/built-in.o
  CC      arch/powerpc/kernel/setup_64.o
  CC      arch/powerpc/kernel/sys_ppc32.o
  CC      arch/powerpc/kernel/signal_64.o
  CC      arch/powerpc/kernel/ptrace32.o
  CC      arch/powerpc/kernel/paca.o
  CC      arch/powerpc/kernel/nvram_64.o
  CC      arch/powerpc/kernel/firmware.o
  CC      arch/powerpc/kernel/hw_breakpoint.o
  AS      arch/powerpc/kernel/cpu_setup_ppc970.o
  AS      arch/powerpc/kernel/cpu_setup_pa6t.o
  AS      arch/powerpc/kernel/cpu_setup_power7.o
  CC      arch/powerpc/kernel/vecemu.o
  AS      arch/powerpc/kernel/idle_power7.o
  CC      arch/powerpc/kernel/of_platform.o
  CC      arch/powerpc/kernel/prom_parse.o
  CC      arch/powerpc/kernel/proc_powerpc.o
  CC      arch/powerpc/kernel/rtas.o
  CC      arch/powerpc/kernel/rtas-rtc.o
  CC      arch/powerpc/kernel/rtas_pci.o
  CC      arch/powerpc/kernel/rtasd.o
  CC      arch/powerpc/kernel/rtas_flash.o
  CC      arch/powerpc/kernel/rtas-proc.o
  CC      arch/powerpc/kernel/lparcfg.o
  CC      arch/powerpc/kernel/vio.o
  CC      arch/powerpc/kernel/ibmebus.o
  CC      arch/powerpc/kernel/crash_dump.o
  CC      arch/powerpc/kernel/module.o
  CC      arch/powerpc/kernel/module_64.o
  CC      arch/powerpc/kernel/dma-iommu.o
  CC      arch/powerpc/kernel/iommu.o
  CC      arch/powerpc/kernel/kgdb.o
  CC      arch/powerpc/kernel/prom_init.o
  CC      arch/powerpc/kernel/ppc_ksyms.o
  CC      arch/powerpc/kernel/btext.o
  CC      arch/powerpc/kernel/smp.o
  CC      arch/powerpc/kernel/kprobes.o
  CC      arch/powerpc/kernel/legacy_serial.o
  CC      arch/powerpc/kernel/udbg_16550.o
  CC      arch/powerpc/kernel/stacktrace.o
  CC      arch/powerpc/kernel/dma-swiotlb.o
  CC      arch/powerpc/kernel/pci_64.o
  CC      arch/powerpc/kernel/pci_dn.o
  CC      arch/powerpc/kernel/isa-bridge.o
  CC      arch/powerpc/kernel/pci-common.o
  CC      arch/powerpc/kernel/pci_of_scan.o
  CC      arch/powerpc/kernel/msi.o
  CC      arch/powerpc/kernel/machine_kexec.o
  CC      arch/powerpc/kernel/crash.o
  CC      arch/powerpc/kernel/machine_kexec_64.o
  CC      arch/powerpc/kernel/audit.o
  CC      arch/powerpc/kernel/io-workarounds.o
  AS      arch/powerpc/kernel/reloc_64.o
  CC      arch/powerpc/kernel/compat_audit.o
  AS      arch/powerpc/kernel/ppc_save_regs.o
  CALL    /usr/src/kernels/linux/arch/powerpc/kernel/prom_init_check.sh
  LD      arch/powerpc/kernel/built-in.o
WARNING: arch/powerpc/kernel/built-in.o(.text+0x2ab2c): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.call_prom()
The function .prom_query_opal() references
the function __init .call_prom().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .call_prom is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2ab54): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.call_prom()
The function .prom_query_opal() references
the function __init .call_prom().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .call_prom is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2ab64): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.prom_printf()
The function .prom_query_opal() references
the function __init .prom_printf().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .prom_printf is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2abbc): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.prom_printf()
The function .prom_query_opal() references
the function __init .prom_printf().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .prom_printf is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2ac2c): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.prom_printf()
The function .prom_query_opal() references
the function __init .prom_printf().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .prom_printf is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2ac4c): Section mismatch in
reference from the function .prom_query_opal() to the function
.init.text:.prom_printf()
The function .prom_query_opal() references
the function __init .prom_printf().
This is often because .prom_query_opal lacks a __init
annotation or the annotation of .prom_printf is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2af40): Section mismatch in
reference from the function .prom_opal_takeover() to the function
.init.text:.prom_printf()
The function .prom_opal_takeover() references
the function __init .prom_printf().
This is often because .prom_opal_takeover lacks a __init
annotation or the annotation of .prom_printf is wrong.

WARNING: arch/powerpc/kernel/built-in.o(.text+0x2af44): Section mismatch in
reference from the function .prom_opal_takeover() to the function
.init.text:.prom_close_stdin()
The function .prom_opal_takeover() references
the function __init .prom_close_stdin().
This is often because .prom_opal_takeover lacks a __init
annotation or the annotation of .prom_close_stdin is wrong.

  AS      arch/powerpc/kernel/head_64.o
  LDS     arch/powerpc/kernel/vmlinux.lds
  AS      arch/powerpc/kernel/fpu.o
  AS      arch/powerpc/kernel/vector.o
  AS      arch/powerpc/kernel/entry_64.o
  CC      arch/powerpc/mm/fault.o
  CC      arch/powerpc/mm/mem.o
  CC      arch/powerpc/mm/pgtable.o
  CC      arch/powerpc/mm/gup.o
  CC      arch/powerpc/mm/init_64.o
  CC      arch/powerpc/mm/pgtable_64.o
  CC      arch/powerpc/mm/mmap_64.o
  CC      arch/powerpc/mm/hash_utils_64.o
  AS      arch/powerpc/mm/slb_low.o
  CC      arch/powerpc/mm/slb.o
  CC      arch/powerpc/mm/stab.o
  CC      arch/powerpc/mm/hash_native_64.o
  AS      arch/powerpc/mm/hash_low_64.o
  CC      arch/powerpc/mm/tlb_hash64.o
  CC      arch/powerpc/mm/mmu_context_hash64.o
  CC      arch/powerpc/mm/numa.o
  CC      arch/powerpc/mm/slice.o
  CC      arch/powerpc/mm/hugetlbpage.o
  CC      arch/powerpc/mm/hugetlbpage-hash64.o
  CC      arch/powerpc/mm/subpage-prot.o
  LD      arch/powerpc/mm/built-in.o
  AS      arch/powerpc/lib/string.o
  CC      arch/powerpc/lib/alloc.o
  AS      arch/powerpc/lib/checksum_64.o
  AS      arch/powerpc/lib/crtsavres.o
  CC      arch/powerpc/lib/devres.o
  AS      arch/powerpc/lib/copypage_64.o
  AS      arch/powerpc/lib/copyuser_64.o
  AS      arch/powerpc/lib/memcpy_64.o
  CC      arch/powerpc/lib/usercopy_64.o
  AS      arch/powerpc/lib/mem_64.o
  CC      arch/powerpc/lib/checksum_wrappers_64.o
  AS      arch/powerpc/lib/hweight_64.o
  AS      arch/powerpc/lib/copyuser_power7.o
  CC      arch/powerpc/lib/sstep.o
  AS      arch/powerpc/lib/ldstfp.o
  CC      arch/powerpc/lib/locks.o
  CC      arch/powerpc/lib/copyuser_power7_vmx.o
  CC      arch/powerpc/lib/code-patching.o
  CC      arch/powerpc/lib/feature-fixups.o
  LD      arch/powerpc/lib/built-in.o
  CC      arch/powerpc/sysdev/mpic.o
  CC      arch/powerpc/sysdev/mpic_msi.o
  CC      arch/powerpc/sysdev/mpic_u3msi.o
  CC      arch/powerpc/sysdev/mpic_pasemi_msi.o
  CC      arch/powerpc/sysdev/msi_bitmap.o
  CC      arch/powerpc/sysdev/pmi.o
  CC      arch/powerpc/sysdev/mmio_nvram.o
  CC      arch/powerpc/sysdev/simple_gpio.o
  CC      arch/powerpc/sysdev/rtc_cmos_setup.o
  CC      arch/powerpc/sysdev/i8259.o
  CC      arch/powerpc/sysdev/dcr.o
  CC      arch/powerpc/sysdev/xics/xics-common.o
  CC      arch/powerpc/sysdev/xics/icp-native.o
  CC      arch/powerpc/sysdev/xics/icp-hv.o
  CC      arch/powerpc/sysdev/xics/ics-rtas.o
  CC      arch/powerpc/sysdev/xics/ics-opal.o
  LD      arch/powerpc/sysdev/xics/built-in.o
WARNING: arch/powerpc/sysdev/xics/built-in.o(.text+0x1624): Section
mismatch in reference from the function .ics_rtas_init() to the function
.init.text:.xics_register_ics()
The function .ics_rtas_init() references
the function __init .xics_register_ics().
This is often because .ics_rtas_init lacks a __init
annotation or the annotation of .xics_register_ics is wrong.

  LD      arch/powerpc/sysdev/built-in.o
WARNING: arch/powerpc/sysdev/built-in.o(.text+0x8de4): Section mismatch in
reference from the function .ics_rtas_init() to the function
.init.text:.xics_register_ics()
The function .ics_rtas_init() references
the function __init .xics_register_ics().
This is often because .ics_rtas_init lacks a __init
annotation or the annotation of .xics_register_ics is wrong.

  CC [M]  arch/powerpc/sysdev/axonram.o
  CC      arch/powerpc/platforms/cell/cbe_regs.o
  CC      arch/powerpc/platforms/cell/interrupt.o
  CC      arch/powerpc/platforms/cell/pervasive.o
  CC      arch/powerpc/platforms/cell/iommu.o
  CC      arch/powerpc/platforms/cell/setup.o
  CC      arch/powerpc/platforms/cell/spider-pic.o
  CC      arch/powerpc/platforms/cell/pmu.o
  CC      arch/powerpc/platforms/cell/spider-pci.o
  CC      arch/powerpc/platforms/cell/ras.o
  CC      arch/powerpc/platforms/cell/cbe_powerbutton.o
  CC      arch/powerpc/platforms/cell/smp.o
  CC      arch/powerpc/platforms/cell/spu_callbacks.o
  CC      arch/powerpc/platforms/cell/spu_base.o
  CC      arch/powerpc/platforms/cell/spu_notify.o
  CC      arch/powerpc/platforms/cell/spu_syscalls.o
  CC      arch/powerpc/platforms/cell/spu_fault.o
  CC      arch/powerpc/platforms/cell/spu_priv1_mmio.o
  CC      arch/powerpc/platforms/cell/spu_manage.o
  LD      arch/powerpc/platforms/cell/spufs/built-in.o
  CC [M]  arch/powerpc/platforms/cell/spufs/inode.o
  CC [M]  arch/powerpc/platforms/cell/spufs/file.o
  CC [M]  arch/powerpc/platforms/cell/spufs/context.o
  CC [M]  arch/powerpc/platforms/cell/spufs/syscalls.o
  CC [M]  arch/powerpc/platforms/cell/spufs/coredump.o
  CC [M]  arch/powerpc/platforms/cell/spufs/sched.o
  CC [M]  arch/powerpc/platforms/cell/spufs/backing_ops.o
  CC [M]  arch/powerpc/platforms/cell/spufs/hw_ops.o
  CC [M]  arch/powerpc/platforms/cell/spufs/run.o
  CC [M]  arch/powerpc/platforms/cell/spufs/gang.o
  SHIPPED arch/powerpc/platforms/cell/spufs/spu_save_dump.h
  SHIPPED arch/powerpc/platforms/cell/spufs/spu_restore_dump.h
  CC [M]  arch/powerpc/platforms/cell/spufs/switch.o
  CC [M]  arch/powerpc/platforms/cell/spufs/fault.o
  CC [M]  arch/powerpc/platforms/cell/spufs/lscsa_alloc.o
  LD [M]  arch/powerpc/platforms/cell/spufs/spufs.o
  CC      arch/powerpc/platforms/cell/axon_msi.o
  CC      arch/powerpc/platforms/cell/qpace_setup.o
  LD      arch/powerpc/platforms/cell/built-in.o
  CC [M]  arch/powerpc/platforms/cell/cbe_thermal.o
  CC [M]  arch/powerpc/platforms/cell/cbe_cpufreq_pervasive.o
  CC [M]  arch/powerpc/platforms/cell/cbe_cpufreq.o
  LD [M]  arch/powerpc/platforms/cell/cbe-cpufreq.o
  CC [M]  arch/powerpc/platforms/cell/cpufreq_spudemand.o
  CC      arch/powerpc/platforms/pasemi/setup.o
  CC      arch/powerpc/platforms/pasemi/pci.o
  CC      arch/powerpc/platforms/pasemi/time.o
  CC      arch/powerpc/platforms/pasemi/idle.o
  AS      arch/powerpc/platforms/pasemi/powersave.o
  CC      arch/powerpc/platforms/pasemi/iommu.o
  CC      arch/powerpc/platforms/pasemi/dma_lib.o
  CC      arch/powerpc/platforms/pasemi/misc.o
  CC      arch/powerpc/platforms/pasemi/cpufreq.o
  LD      arch/powerpc/platforms/pasemi/built-in.o
  CC [M]  arch/powerpc/platforms/pasemi/gpio_mdio.o
  CC      arch/powerpc/platforms/powernv/setup.o
  AS      arch/powerpc/platforms/powernv/opal-takeover.o
  AS      arch/powerpc/platforms/powernv/opal-wrappers.o
  CC      arch/powerpc/platforms/powernv/opal.o
  CC      arch/powerpc/platforms/powernv/opal-rtc.o
  CC      arch/powerpc/platforms/powernv/opal-nvram.o
  CC      arch/powerpc/platforms/powernv/smp.o
  CC      arch/powerpc/platforms/powernv/pci.o
  CC      arch/powerpc/platforms/powernv/pci-p5ioc2.o
  CC      arch/powerpc/platforms/powernv/pci-ioda.o
  LD      arch/powerpc/platforms/powernv/built-in.o
  CC      arch/powerpc/platforms/pseries/lpar.o
  AS      arch/powerpc/platforms/pseries/hvCall.o
  CC      arch/powerpc/platforms/pseries/nvram.o
  CC      arch/powerpc/platforms/pseries/reconfig.o
  CC      arch/powerpc/platforms/pseries/setup.o
  CC      arch/powerpc/platforms/pseries/iommu.o
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
‘query_ddw’:
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
implicit declaration of function ‘pci_dev_to_eeh_dev’
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
assignment makes pointer from integer without a cast
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
‘create_ddw’:
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
assignment makes pointer from integer without a cast
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
dereferencing pointer to incomplete type
/usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
dereferencing pointer to incomplete type
make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
make[2]: *** [arch/powerpc/platforms/pseries] Error 2
make[1]: *** [arch/powerpc/platforms] Error 2
make: *** [sub-make] Error 2

[-- Attachment #2: Type: text/html, Size: 19946 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
  2012-04-25  0:22 3.4-rc3 compile failed on IBM Power6 Ryan Wang
@ 2012-04-25  0:54 ` Nishanth Aravamudan
  2012-04-25  1:50     ` Gavin Shan
  0 siblings, 1 reply; 8+ messages in thread
From: Nishanth Aravamudan @ 2012-04-25  0:54 UTC (permalink / raw)
  To: Ryan Wang; +Cc: Nishanth Aravamudan, linuxppc-dev, linux-kernel, Gavin Shan

Hi Ryan,

Thanks for the report!

On 25.04.2012 [08:22:19 +0800], Ryan Wang wrote:
> # gcc --version
> gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> platform    : pSeries
> model        : IBM,9117-MMA
> machine        : CHRP IBM,9117-MMA

<snip>

>   CC      arch/powerpc/platforms/pseries/iommu.o
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
> ?query_ddw?:
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
> implicit declaration of function ?pci_dev_to_eeh_dev?
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
> assignment makes pointer from integer without a cast
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
> ?create_ddw?:
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
> assignment makes pointer from integer without a cast
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
> dereferencing pointer to incomplete type
> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
> dereferencing pointer to incomplete type
> make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
> make[2]: *** [arch/powerpc/platforms/pseries] Error 2
> make[1]: *** [arch/powerpc/platforms] Error 2
> make: *** [sub-make] Error 2

Do you have CONFIG_EEH set in your .config? I'm guessing not, and that
causes pci.h to not define pci_dev_to_eeh_dev().

Gavin, I think this is broken by your
39baadbf36cee3ede5fdb8a34006d9109e5e2570. Probably need a wrapper for
pci_dev_to_eeh_dev() when !CONFIG_EEH?

Actually, looking at it more, eeh_dev, which is protected by CONFIG_EEH
in arch/powerpc/include/asm/eeh.h won't be defined in such situations
and is the type of the return from pci_dev_to_eeh_dev(). So that's going
to be broken completely if !CONFIG_EEH as above.

So maybe the callers should be EEH-unaware (as they were before) and the
callee becomes of the EEH variety (at compile-time) if CONFIG_EEH is
set?

Thanks,
Nish

-- 
Nishanth Aravamudan <nacc@us.ibm.com>
IBM Linux Technology Center


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
  2012-04-25  0:54 ` Nishanth Aravamudan
@ 2012-04-25  1:50     ` Gavin Shan
  0 siblings, 0 replies; 8+ messages in thread
From: Gavin Shan @ 2012-04-25  1:50 UTC (permalink / raw)
  To: Nishanth Aravamudan, Ryan Wang; +Cc: benh, linuxppc-dev, linux-kernel

Hi Nish,

>> # gcc --version
>> gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
>> Copyright (C) 2010 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>> 
>> platform    : pSeries
>> model        : IBM,9117-MMA
>> machine        : CHRP IBM,9117-MMA
>
><snip>
>
>>   CC      arch/powerpc/platforms/pseries/iommu.o
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
>> ?query_ddw?:
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
>> implicit declaration of function ?pci_dev_to_eeh_dev?
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
>> assignment makes pointer from integer without a cast
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
>> ?create_ddw?:
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
>> assignment makes pointer from integer without a cast
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
>> dereferencing pointer to incomplete type
>> make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
>> make[2]: *** [arch/powerpc/platforms/pseries] Error 2
>> make[1]: *** [arch/powerpc/platforms] Error 2
>> make: *** [sub-make] Error 2
>
>Do you have CONFIG_EEH set in your .config? I'm guessing not, and that
>causes pci.h to not define pci_dev_to_eeh_dev().
>
>Gavin, I think this is broken by your
>39baadbf36cee3ede5fdb8a34006d9109e5e2570. Probably need a wrapper for
>pci_dev_to_eeh_dev() when !CONFIG_EEH?
>
>Actually, looking at it more, eeh_dev, which is protected by CONFIG_EEH
>in arch/powerpc/include/asm/eeh.h won't be defined in such situations
>and is the type of the return from pci_dev_to_eeh_dev(). So that's going
>to be broken completely if !CONFIG_EEH as above.
>

I think it's because iommu.c depends on CONFIG_EEH heavily anyway with
or without the fix 39baadbf36cee3ede5fdb8a34006d9109e5e2570. That means
without CONFIG_EEH, iommu.c won't work properly even it can be compiled
successfully :-)

The story behind is that the PCI device is expected to be PE sensitive.
While setting up its DMA (through IOMMU), the number of the PE to which
the PCI device belongs to is passed to the related RTAS call. So the
PE number of the PCI device is expected if possible. As I knew, the PE
number of the PCI device is -ONLY- figured out by EEH.
 
>So maybe the callers should be EEH-unaware (as they were before) and the
>callee becomes of the EEH variety (at compile-time) if CONFIG_EEH is
>set?
>

In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
the PE number of the PCI device during PCI probe time. Here're some
rough thoughts about the rework.

	- Introduce additional field "int pe_num" to "struct dev_archdata".
	  That would be traced like: (struct pci_dev)->(struct device dev)
	  ->(struct dev_archdata archdata).
	- During the PCI probe time (maybe pci_fixup_early), we can figure
	  out the PE number.

Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
on the idea? 

Thanks,
Gavin
 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
@ 2012-04-25  1:50     ` Gavin Shan
  0 siblings, 0 replies; 8+ messages in thread
From: Gavin Shan @ 2012-04-25  1:50 UTC (permalink / raw)
  To: Nishanth Aravamudan, Ryan Wang; +Cc: linuxppc-dev, linux-kernel

Hi Nish,

>> # gcc --version
>> gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3)
>> Copyright (C) 2010 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>> 
>> platform    : pSeries
>> model        : IBM,9117-MMA
>> machine        : CHRP IBM,9117-MMA
>
><snip>
>
>>   CC      arch/powerpc/platforms/pseries/iommu.o
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
>> ?query_ddw?:
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: error:
>> implicit declaration of function ?pci_dev_to_eeh_dev?
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:823: warning:
>> assignment makes pointer from integer without a cast
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:824: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:825: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:826: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:827: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c: In function
>> ?create_ddw?:
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:852: warning:
>> assignment makes pointer from integer without a cast
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:853: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:854: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:855: error:
>> dereferencing pointer to incomplete type
>> /usr/src/kernels/linux/arch/powerpc/platforms/pseries/iommu.c:856: error:
>> dereferencing pointer to incomplete type
>> make[3]: *** [arch/powerpc/platforms/pseries/iommu.o] Error 1
>> make[2]: *** [arch/powerpc/platforms/pseries] Error 2
>> make[1]: *** [arch/powerpc/platforms] Error 2
>> make: *** [sub-make] Error 2
>
>Do you have CONFIG_EEH set in your .config? I'm guessing not, and that
>causes pci.h to not define pci_dev_to_eeh_dev().
>
>Gavin, I think this is broken by your
>39baadbf36cee3ede5fdb8a34006d9109e5e2570. Probably need a wrapper for
>pci_dev_to_eeh_dev() when !CONFIG_EEH?
>
>Actually, looking at it more, eeh_dev, which is protected by CONFIG_EEH
>in arch/powerpc/include/asm/eeh.h won't be defined in such situations
>and is the type of the return from pci_dev_to_eeh_dev(). So that's going
>to be broken completely if !CONFIG_EEH as above.
>

I think it's because iommu.c depends on CONFIG_EEH heavily anyway with
or without the fix 39baadbf36cee3ede5fdb8a34006d9109e5e2570. That means
without CONFIG_EEH, iommu.c won't work properly even it can be compiled
successfully :-)

The story behind is that the PCI device is expected to be PE sensitive.
While setting up its DMA (through IOMMU), the number of the PE to which
the PCI device belongs to is passed to the related RTAS call. So the
PE number of the PCI device is expected if possible. As I knew, the PE
number of the PCI device is -ONLY- figured out by EEH.
 
>So maybe the callers should be EEH-unaware (as they were before) and the
>callee becomes of the EEH variety (at compile-time) if CONFIG_EEH is
>set?
>

In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
the PE number of the PCI device during PCI probe time. Here're some
rough thoughts about the rework.

	- Introduce additional field "int pe_num" to "struct dev_archdata".
	  That would be traced like: (struct pci_dev)->(struct device dev)
	  ->(struct dev_archdata archdata).
	- During the PCI probe time (maybe pci_fixup_early), we can figure
	  out the PE number.

Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
on the idea? 

Thanks,
Gavin
 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
  2012-04-25  1:50     ` Gavin Shan
@ 2012-04-25  4:10       ` Benjamin Herrenschmidt
  -1 siblings, 0 replies; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2012-04-25  4:10 UTC (permalink / raw)
  To: Gavin Shan; +Cc: Nishanth Aravamudan, Ryan Wang, linuxppc-dev, linux-kernel

On Wed, 2012-04-25 at 09:50 +0800, Gavin Shan wrote:
> In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
> the PE number of the PCI device during PCI probe time. Here're some
> rough thoughts about the rework.
> 
>         - Introduce additional field "int pe_num" to "struct dev_archdata".
>           That would be traced like: (struct pci_dev)->(struct device dev)
>           ->(struct dev_archdata archdata).
>         - During the PCI probe time (maybe pci_fixup_early), we can figure
>           out the PE number.
> 
> Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
> care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
> on the idea? 

Just select EEH from pseries Kconfig, no point in keeping that a user visible option.

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
@ 2012-04-25  4:10       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 8+ messages in thread
From: Benjamin Herrenschmidt @ 2012-04-25  4:10 UTC (permalink / raw)
  To: Gavin Shan; +Cc: Nishanth Aravamudan, linuxppc-dev, Ryan Wang, linux-kernel

On Wed, 2012-04-25 at 09:50 +0800, Gavin Shan wrote:
> In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
> the PE number of the PCI device during PCI probe time. Here're some
> rough thoughts about the rework.
> 
>         - Introduce additional field "int pe_num" to "struct dev_archdata".
>           That would be traced like: (struct pci_dev)->(struct device dev)
>           ->(struct dev_archdata archdata).
>         - During the PCI probe time (maybe pci_fixup_early), we can figure
>           out the PE number.
> 
> Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
> care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
> on the idea? 

Just select EEH from pseries Kconfig, no point in keeping that a user visible option.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
  2012-04-25  4:10       ` Benjamin Herrenschmidt
@ 2012-04-25  5:50         ` Gavin Shan
  -1 siblings, 0 replies; 8+ messages in thread
From: Gavin Shan @ 2012-04-25  5:50 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Nishanth Aravamudan, Ryan Wang, linuxppc-dev, linux-kernel

>> In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
>> the PE number of the PCI device during PCI probe time. Here're some
>> rough thoughts about the rework.
>> 
>>         - Introduce additional field "int pe_num" to "struct dev_archdata".
>>           That would be traced like: (struct pci_dev)->(struct device dev)
>>           ->(struct dev_archdata archdata).
>>         - During the PCI probe time (maybe pci_fixup_early), we can figure
>>           out the PE number.
>> 
>> Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
>> care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
>> on the idea? 
>
>Just select EEH from pseries Kconfig, no point in keeping that a user visible option.
>

Thanks for the suggestion, Ben :-)

I've sent one trivial patch against it.

>Cheers,
>Ben.
>
>

Thanks,
Gavin


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: 3.4-rc3 compile failed on IBM Power6
@ 2012-04-25  5:50         ` Gavin Shan
  0 siblings, 0 replies; 8+ messages in thread
From: Gavin Shan @ 2012-04-25  5:50 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Nishanth Aravamudan, linuxppc-dev, Ryan Wang, linux-kernel

>> In order to make iommu.c irrelative to CONFIG_EEH, we might figure out
>> the PE number of the PCI device during PCI probe time. Here're some
>> rough thoughts about the rework.
>> 
>>         - Introduce additional field "int pe_num" to "struct dev_archdata".
>>           That would be traced like: (struct pci_dev)->(struct device dev)
>>           ->(struct dev_archdata archdata).
>>         - During the PCI probe time (maybe pci_fixup_early), we can figure
>>           out the PE number.
>> 
>> Then we can retrieve the PE number of PCI device from "int pe_num" and needn't
>> care CONFIG_EEH has been turned on or off. I'm not sure Ben has any comments
>> on the idea? 
>
>Just select EEH from pseries Kconfig, no point in keeping that a user visible option.
>

Thanks for the suggestion, Ben :-)

I've sent one trivial patch against it.

>Cheers,
>Ben.
>
>

Thanks,
Gavin

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-04-25  5:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-25  0:22 3.4-rc3 compile failed on IBM Power6 Ryan Wang
2012-04-25  0:54 ` Nishanth Aravamudan
2012-04-25  1:50   ` Gavin Shan
2012-04-25  1:50     ` Gavin Shan
2012-04-25  4:10     ` Benjamin Herrenschmidt
2012-04-25  4:10       ` Benjamin Herrenschmidt
2012-04-25  5:50       ` Gavin Shan
2012-04-25  5:50         ` Gavin Shan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.