* [PATCH v2] powerpc: slightly improve cache helpers
@ 2019-05-10 9:24 Christophe Leroy
2019-07-08 1:19 ` Michael Ellerman
0 siblings, 1 reply; 22+ messages in thread
From: Christophe Leroy @ 2019-05-10 9:24 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
Segher Boessenkool
Cc: linux-kernel, linuxppc-dev
Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
that are summed to obtain the target address. Using 'Z' constraint
and '%y0' argument gives GCC the opportunity to use both registers
instead of only one with the second being forced to 0.
Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
arch/powerpc/include/asm/cache.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
index 40ea5b3781c6..df8e4c407366 100644
--- a/arch/powerpc/include/asm/cache.h
+++ b/arch/powerpc/include/asm/cache.h
@@ -85,22 +85,22 @@ extern void _set_L3CR(unsigned long);
static inline void dcbz(void *addr)
{
- __asm__ __volatile__ ("dcbz 0, %0" : : "r"(addr) : "memory");
+ __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
}
static inline void dcbi(void *addr)
{
- __asm__ __volatile__ ("dcbi 0, %0" : : "r"(addr) : "memory");
+ __asm__ __volatile__ ("dcbi %y0" : : "Z"(*(u8 *)addr) : "memory");
}
static inline void dcbf(void *addr)
{
- __asm__ __volatile__ ("dcbf 0, %0" : : "r"(addr) : "memory");
+ __asm__ __volatile__ ("dcbf %y0" : : "Z"(*(u8 *)addr) : "memory");
}
static inline void dcbst(void *addr)
{
- __asm__ __volatile__ ("dcbst 0, %0" : : "r"(addr) : "memory");
+ __asm__ __volatile__ ("dcbst %y0" : : "Z"(*(u8 *)addr) : "memory");
}
#endif /* !__ASSEMBLY__ */
#endif /* __KERNEL__ */
--
2.13.3
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-05-10 9:24 [PATCH v2] powerpc: slightly improve cache helpers Christophe Leroy
@ 2019-07-08 1:19 ` Michael Ellerman
2019-07-08 19:14 ` Nathan Chancellor
0 siblings, 1 reply; 22+ messages in thread
From: Michael Ellerman @ 2019-07-08 1:19 UTC (permalink / raw)
To: Christophe Leroy, Benjamin Herrenschmidt, Paul Mackerras,
Segher Boessenkool
Cc: linuxppc-dev, linux-kernel
On Fri, 2019-05-10 at 09:24:48 UTC, Christophe Leroy wrote:
> Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
> that are summed to obtain the target address. Using 'Z' constraint
> and '%y0' argument gives GCC the opportunity to use both registers
> instead of only one with the second being forced to 0.
>
> Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/6c5875843b87c3adea2beade9d1b8b3d4523900a
cheers
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-08 1:19 ` Michael Ellerman
@ 2019-07-08 19:14 ` Nathan Chancellor
2019-07-09 5:04 ` Christophe Leroy
0 siblings, 1 reply; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-08 19:14 UTC (permalink / raw)
To: Michael Ellerman
Cc: Christophe Leroy, Benjamin Herrenschmidt, Paul Mackerras,
Segher Boessenkool, linuxppc-dev, linux-kernel,
clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 841 bytes --]
On Mon, Jul 08, 2019 at 11:19:30AM +1000, Michael Ellerman wrote:
> On Fri, 2019-05-10 at 09:24:48 UTC, Christophe Leroy wrote:
> > Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
> > that are summed to obtain the target address. Using 'Z' constraint
> > and '%y0' argument gives GCC the opportunity to use both registers
> > instead of only one with the second being forced to 0.
> >
> > Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
> > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>
> Applied to powerpc next, thanks.
>
> https://git.kernel.org/powerpc/c/6c5875843b87c3adea2beade9d1b8b3d4523900a
>
> cheers
This patch causes a regression with clang:
https://travis-ci.com/ClangBuiltLinux/continuous-integration/jobs/213944668
I've attached my local bisect/build log.
Cheers,
Nathan
[-- Attachment #2: bisect.log --]
[-- Type: text/plain, Size: 2679 bytes --]
git bisect start
# good: [46713c3d2f8da5e3d8ddd2249bcb1d9974fb5d28] Merge tag 'for-linus-20190706' of git://git.kernel.dk/linux-block
git bisect good 46713c3d2f8da5e3d8ddd2249bcb1d9974fb5d28
# bad: [d58b5ab90ee7528126fd5833df7fc5bda8331ce8] Add linux-next specific files for 20190708
git bisect bad d58b5ab90ee7528126fd5833df7fc5bda8331ce8
# bad: [ba30fb6d5d6464bd7d3759408ea7f178d8c9fe87] Merge remote-tracking branch 'crypto/master'
git bisect bad ba30fb6d5d6464bd7d3759408ea7f178d8c9fe87
# bad: [eaa0d0d3b269695df5d682d3dfcfb5c6e8f19fa8] Merge remote-tracking branch 'i3c/i3c/next'
git bisect bad eaa0d0d3b269695df5d682d3dfcfb5c6e8f19fa8
# good: [e41aad4a290783ec7d3730542cbed0e99b2dcb4a] Merge remote-tracking branch 'tegra/for-next'
git bisect good e41aad4a290783ec7d3730542cbed0e99b2dcb4a
# bad: [c5a28b5f954e769decf4b69c06ecfd27ebeaeb5b] Merge remote-tracking branch 'cifs/for-next'
git bisect bad c5a28b5f954e769decf4b69c06ecfd27ebeaeb5b
# bad: [8e8fefda572360f00854547f3458a9c2cf932ff5] Merge remote-tracking branch 'powerpc/next'
git bisect bad 8e8fefda572360f00854547f3458a9c2cf932ff5
# good: [01fd0e565283d69adf0ff1da95cab5bb4cb58acb] Merge remote-tracking branch 'm68k/for-next'
git bisect good 01fd0e565283d69adf0ff1da95cab5bb4cb58acb
# good: [7505a13f85bdcb8713551a067dfc92ac3c7ba902] powerpc/configs: Disable latencytop
git bisect good 7505a13f85bdcb8713551a067dfc92ac3c7ba902
# good: [958ace9b9edae56953190fdbdddc55d6506ec6f7] Merge remote-tracking branch 'nios2/for-next'
git bisect good 958ace9b9edae56953190fdbdddc55d6506ec6f7
# bad: [1cfb725fb1899dc6fdc88f8b5354a65e8ad260c6] powerpc/64: flush_inval_dcache_range() becomes flush_dcache_range()
git bisect bad 1cfb725fb1899dc6fdc88f8b5354a65e8ad260c6
# good: [89a3496e0664577043666791ec07fb731d57c950] powerpc/mm/radix: Use the right page size for vmemmap mapping
git bisect good 89a3496e0664577043666791ec07fb731d57c950
# good: [259a948c4ba1829ae4a3c31bb6e40ad458a21254] powerpc/pseries/scm: Use a specific endian format for storing uuid from the device tree
git bisect good 259a948c4ba1829ae4a3c31bb6e40ad458a21254
# good: [2230ebf6e6dd0b7751e2921b40f6cfe34f09bb16] powerpc/mm: Handle page table allocation failures
git bisect good 2230ebf6e6dd0b7751e2921b40f6cfe34f09bb16
# good: [ac25ba68fa4001c85395f0488b1c7a2421c5aada] powerpc/mm/hugetlb: Don't enable HugeTLB if we don't have a page table cache
git bisect good ac25ba68fa4001c85395f0488b1c7a2421c5aada
# bad: [6c5875843b87c3adea2beade9d1b8b3d4523900a] powerpc: slightly improve cache helpers
git bisect bad 6c5875843b87c3adea2beade9d1b8b3d4523900a
# first bad commit: [6c5875843b87c3adea2beade9d1b8b3d4523900a] powerpc: slightly improve cache helpers
[-- Attachment #3: build.log --]
[-- Type: text/plain, Size: 91556 bytes --]
make[1]: Entering directory '/mnt/build/kernel'
CLEAN .
CLEAN arch/powerpc/kernel/vdso32
CLEAN arch/powerpc/kernel
CLEAN lib
CLEAN drivers/scsi
CLEAN usr
CLEAN scripts/basic
CLEAN scripts/dtc
rm -f .tmp_symbols.txt
CLEAN scripts/mod
CLEAN scripts/kconfig
CLEAN scripts
CLEAN arch/powerpc/boot
CLEAN .tmp_versions
CLEAN modules.builtin.modinfo
CLEAN include/config include/generated arch/powerpc/include/generated
CLEAN .config .config.old .version Module.symvers
HOSTCC scripts/basic/fixdep
GEN Makefile
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
LEX scripts/kconfig/lexer.lex.c
YACC scripts/kconfig/parser.tab.h
YACC scripts/kconfig/parser.tab.c
HOSTCC scripts/kconfig/expr.o
HOSTCC scripts/kconfig/symbol.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
SYSTBL arch/powerpc/include/generated/asm/syscall_table_64.h
SYSTBL arch/powerpc/include/generated/asm/syscall_table_c32.h
SYSTBL arch/powerpc/include/generated/asm/syscall_table_32.h
SYSTBL arch/powerpc/include/generated/asm/syscall_table_spu.h
SYSHDR arch/powerpc/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/powerpc/include/generated/uapi/asm/unistd_32.h
GEN Makefile
WRAP arch/powerpc/include/generated/uapi/asm/poll.h
WRAP arch/powerpc/include/generated/uapi/asm/resource.h
WRAP arch/powerpc/include/generated/uapi/asm/sockios.h
WRAP arch/powerpc/include/generated/uapi/asm/siginfo.h
WRAP arch/powerpc/include/generated/uapi/asm/param.h
WRAP arch/powerpc/include/generated/uapi/asm/statfs.h
UPD include/generated/uapi/linux/version.h
WRAP arch/powerpc/include/generated/asm/irq_regs.h
WRAP arch/powerpc/include/generated/asm/div64.h
WRAP arch/powerpc/include/generated/asm/export.h
WRAP arch/powerpc/include/generated/asm/local64.h
WRAP arch/powerpc/include/generated/asm/vtime.h
WRAP arch/powerpc/include/generated/asm/preempt.h
WRAP arch/powerpc/include/generated/asm/msi.h
WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h
WRAP arch/powerpc/include/generated/asm/simd.h
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/fstree.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/data.o
HOSTCC scripts/dtc/srcpos.o
HOSTCC scripts/dtc/util.o
HOSTCC scripts/dtc/checks.o
LEX scripts/dtc/dtc-lexer.lex.c
YACC scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/yamltree.o
YACC scripts/dtc/dtc-parser.tab.h
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTCC scripts/dtc/dtc-lexer.lex.o
UPD include/config/kernel.release
Using /home/nathan/cbl/linux-next as source for kernel
UPD include/generated/utsrelease.h
HOSTLD scripts/dtc/dtc
HOSTCC scripts/kallsyms
HOSTCC scripts/sortextable
HOSTCC scripts/mod/mk_elfconfig
CC scripts/mod/devicetable-offsets.s
CC scripts/mod/empty.o
UPD scripts/mod/devicetable-offsets.h
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CALL /home/nathan/cbl/linux-next/scripts/atomic/check-atomics.sh
UPD include/generated/timeconst.h
UPD include/generated/bounds.h
CC arch/powerpc/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /home/nathan/cbl/linux-next/scripts/checksyscalls.sh
make[1]: Leaving directory '/mnt/build/kernel'
real 6.758
user 12.037
sys 4.859
make[1]: Entering directory '/mnt/build/kernel'
GEN Makefile
scripts/kconfig/conf --syncconfig Kconfig
GEN Makefile
Using /home/nathan/cbl/linux-next as source for kernel
DTC arch/powerpc/boot/dts/virtex440-ml507.dtb
DTC arch/powerpc/boot/dts/virtex440-ml510.dtb
/home/nathan/cbl/linux-next/arch/powerpc/boot/dts/virtex440-ml510.dts:335.37-439.6: Warning (pci_bridge): /plb@0/plbv46-pci@85e00000: node name is not "pci" or "pcie"
arch/powerpc/boot/dts/virtex440-ml510.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge'
CC scripts/mod/devicetable-offsets.s
CC scripts/mod/empty.o
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTCC scripts/mod/file2alias.o
HOSTLD scripts/mod/modpost
CC kernel/bounds.s
CALL /home/nathan/cbl/linux-next/scripts/atomic/check-atomics.sh
UPD include/generated/bounds.h
CC arch/powerpc/kernel/asm-offsets.s
UPD include/generated/asm-offsets.h
CALL /home/nathan/cbl/linux-next/scripts/checksyscalls.sh
CHK include/generated/compile.h
CC init/main.o
CC init/do_mounts.o
CC init/do_mounts_rd.o
CC init/do_mounts_initrd.o
HOSTCC usr/gen_init_cpio
CC init/initramfs.o
CC init/init_task.o
UPD include/generated/compile.h
AR arch/powerpc/crypto/built-in.a
AR arch/powerpc/net/built-in.a
AS arch/powerpc/sysdev/dcr-low.o
LDS arch/powerpc/kernel/vdso32/vdso32.lds
CC init/version.o
AS arch/powerpc/platforms/44x/misc_44x.o
CC arch/powerpc/kernel/ptrace.o
CC arch/powerpc/kernel/syscalls.o
CC arch/powerpc/mm/fault.o
CC arch/powerpc/kernel/cputable.o
CC arch/powerpc/mm/mem.o
CC arch/powerpc/mm/pgtable.o
CC arch/powerpc/kernel/irq.o
CC arch/powerpc/kernel/trace/trace_clock.o
CC arch/powerpc/platforms/4xx/uic.o
AR certs/built-in.a
CC arch/powerpc/mm/mmap.o
CC arch/powerpc/lib/alloc.o
VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o
VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o
CC kernel/bpf/core.o
CC arch/powerpc/platforms/44x/machine_check.o
CC arch/powerpc/mm/init_32.o
VDSO32A arch/powerpc/kernel/vdso32/datapage.o
GEN usr/initramfs_data.cpio
VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o
AS usr/initramfs_data.o
AR arch/powerpc/kernel/trace/built-in.a
VDSO32A arch/powerpc/kernel/vdso32/note.o
AR usr/built-in.a
CC arch/powerpc/mm/nohash/mmu_context.o
CC arch/powerpc/mm/nohash/tlb.o
CC arch/powerpc/kernel/align.o
CC arch/powerpc/sysdev/msi_bitmap.o
CC arch/powerpc/sysdev/indirect_pci.o
CC arch/powerpc/sysdev/xilinx_intc.o
CC arch/powerpc/sysdev/of_rtc.o
AS arch/powerpc/mm/nohash/tlb_low.o
VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg
ld.lld: warning: cannot find entry symbol _start; defaulting to 0x3E0
OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so
AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o
CC arch/powerpc/math-emu/math.o
CC arch/powerpc/math-emu/fre.o
CC arch/powerpc/math-emu/fsqrt.o
CC arch/powerpc/math-emu/fsqrts.o
CC arch/powerpc/math-emu/frsqrtes.o
CC arch/powerpc/math-emu/mtfsf.o
AR arch/powerpc/kernel/vdso32/built-in.a
CC arch/powerpc/sysdev/dcr.o
CC arch/powerpc/platforms/44x/ppc44x_simple.o
CC arch/powerpc/platforms/4xx/machine_check.o
CC mm/filemap.o
CC arch/powerpc/mm/nohash/44x.o
CC arch/powerpc/mm/pgtable_32.o
CC fs/cramfs/inode.o
CC fs/cramfs/uncompress.o
CC arch/powerpc/mm/pgtable-frag.o
CC mm/mempool.o
CC arch/powerpc/kernel/signal_32.o
CC arch/powerpc/lib/code-patching.o
CC arch/powerpc/kernel/pmc.o
CC arch/powerpc/platforms/44x/ebony.o
CC arch/powerpc/platforms/4xx/soc.o
CC arch/powerpc/platforms/44x/sam440ep.o
CC arch/powerpc/mm/init-common.o
CC arch/powerpc/kernel/vdso.o
CC arch/powerpc/mm/mmu_context.o
CC arch/powerpc/platforms/4xx/pci.o
CC arch/powerpc/platforms/44x/warp.o
CC arch/powerpc/kernel/process.o
CC ipc/util.o
CC fs/debugfs/inode.o
CC fs/debugfs/file.o
CC ipc/msgutil.o
AS arch/powerpc/kernel/systbl.o
CC arch/powerpc/math-emu/mtfsfi.o
CC arch/powerpc/kernel/idle.o
CC arch/powerpc/math-emu/fabs.o
CC arch/powerpc/platforms/4xx/msi.o
CC arch/powerpc/platforms/4xx/cpm.o
CC arch/powerpc/lib/feature-fixups.o
CC arch/powerpc/mm/drmem.o
AR arch/powerpc/sysdev/built-in.a
CC security/commoncap.o
CC arch/powerpc/kernel/signal.o
AR arch/powerpc/mm/nohash/built-in.a
AS arch/powerpc/lib/string.o
AR init/built-in.a
CC fs/devpts/inode.o
AS arch/powerpc/lib/memcmp_32.o
CC arch/powerpc/platforms/4xx/gpio.o
CC mm/oom_kill.o
CC arch/powerpc/mm/dma-noncoherent.o
CC fs/exportfs/expfs.o
AS arch/powerpc/lib/strlen_32.o
CC mm/fadvise.o
CC arch/powerpc/math-emu/fadd.o
CC mm/maccess.o
CC kernel/dma/mapping.o
CC ipc/msg.o
CC arch/powerpc/math-emu/fadds.o
AS arch/powerpc/lib/div64.o
CC kernel/dma/direct.o
CC crypto/api.o
AS arch/powerpc/lib/copy_32.o
CC arch/powerpc/math-emu/fcmpo.o
CC crypto/cipher.o
CC kernel/irq/irqdesc.o
CC arch/powerpc/platforms/44x/virtex.o
CC arch/powerpc/platforms/44x/canyonlands.o
AS arch/powerpc/lib/crtsavres.o
CC fs/ext2/balloc.o
AR fs/cramfs/built-in.a
CC crypto/compress.o
AR fs/debugfs/built-in.a
CC fs/ext2/dir.o
CC kernel/dma/dummy.o
CC kernel/dma/coherent.o
AR kernel/livepatch/built-in.a
CC fs/ext2/file.o
CC security/min_addr.o
CC block/partitions/check.o
CC kernel/irq/handle.o
AS arch/powerpc/lib/checksum_32.o
AR fs/exportfs/built-in.a
CC arch/powerpc/math-emu/fcmpu.o
CC block/bio.o
AR arch/powerpc/platforms/4xx/built-in.a
CC arch/powerpc/lib/checksum_wrappers.o
CC arch/powerpc/kernel/sysfs.o
AR fs/devpts/built-in.a
CC kernel/irq/manage.o
AR drivers/amba/built-in.a
CC arch/powerpc/kernel/cacheinfo.o
AR arch/powerpc/mm/built-in.a
AR drivers/auxdisplay/built-in.a
CC block/elevator.o
AS arch/powerpc/lib/string_32.o
AR kernel/bpf/built-in.a
CC arch/powerpc/kernel/time.o
CC crypto/memneq.o
CC drivers/base/power/sysfs.o
AR drivers/base/firmware_loader/builtin/built-in.a
AR drivers/base/test/built-in.a
CC arch/powerpc/lib/sstep.o
CC drivers/base/firmware_loader/main.o
CC drivers/block/brd.o
AR sound/built-in.a
CC block/blk-core.o
CC block/blk-sysfs.o
AR security/built-in.a
AR arch/powerpc/platforms/44x/built-in.a
AR arch/powerpc/platforms/built-in.a
CC drivers/base/component.o
CC arch/powerpc/math-emu/fctiw.o
CC arch/powerpc/kernel/prom.o
AR kernel/dma/built-in.a
CC crypto/crypto_wq.o
CC crypto/algapi.o
CC crypto/scatterwalk.o
CC mm/page-writeback.o
CC ipc/sem.o
AR net/802/built-in.a
CC arch/powerpc/math-emu/fctiwz.o
CC [M] net/802/p8022.o
CC kernel/irq/spurious.o
CC arch/powerpc/math-emu/fdiv.o
CC crypto/proc.o
CC fs/ext2/ialloc.o
CC kernel/irq/resend.o
CC [M] net/802/psnap.o
CC drivers/base/power/generic_ops.o
CC block/partitions/msdos.o
CC block/partitions/efi.o
CC arch/powerpc/math-emu/fdivs.o
CC crypto/aead.o
CC kernel/irq/chip.o
CC lib/lz4/lz4_decompress.o
CC block/blk-flush.o
CC block/blk-settings.o
CC block/blk-ioc.o
CC lib/lzo/lzo1x_decompress_safe.o
AR drivers/base/firmware_loader/built-in.a
AS arch/powerpc/lib/ldstfp.o
CC [M] lib/lzo/lzo1x_compress.o
CC drivers/base/power/common.o
CC drivers/block/virtio_blk.o
CC block/blk-map.o
CC arch/powerpc/kernel/traps.o
CC kernel/locking/mutex.o
AR arch/powerpc/lib/built-in.a
CC crypto/ablkcipher.o
CC crypto/blkcipher.o
CC drivers/base/power/qos.o
CC block/blk-exec.o
CC arch/powerpc/math-emu/fmadd.o
CC kernel/irq/dummychip.o
AR virt/lib/built-in.a
AR virt/built-in.a
CC arch/powerpc/math-emu/fmadds.o
CC block/blk-merge.o
AR drivers/bus/built-in.a
CC [M] net/802/stp.o
CC mm/readahead.o
CC arch/powerpc/kernel/setup-common.o
CC fs/ext2/inode.o
CC crypto/skcipher.o
CC ipc/shm.o
CC arch/powerpc/kernel/udbg.o
CC ipc/syscall.o
AR lib/lz4/built-in.a
AR drivers/cdrom/built-in.a
CC crypto/ahash.o
CC lib/math/div64.o
CC lib/math/gcd.o
AR block/partitions/built-in.a
AR drivers/char/agp/built-in.a
CC kernel/irq/devres.o
CC lib/xz/xz_dec_syms.o
CC [M] drivers/char/xilinx_hwicap/xilinx_hwicap.o
CC lib/math/lcm.o
CC lib/xz/xz_dec_stream.o
AR lib/lzo/built-in.a
CC kernel/locking/semaphore.o
CC kernel/locking/rwsem.o
LD [M] lib/lzo/lzo_compress.o
CC block/blk-softirq.o
CC arch/powerpc/math-emu/fmsub.o
CC drivers/base/power/runtime.o
CC arch/powerpc/math-emu/fmsubs.o
CC kernel/locking/percpu-rwsem.o
CC drivers/base/power/wakeirq.o
CC drivers/char/mem.o
CC [M] drivers/char/xilinx_hwicap/fifo_icap.o
CC lib/math/int_pow.o
CC drivers/base/power/main.o
CC crypto/shash.o
CC kernel/irq/irqdomain.o
CC crypto/akcipher.o
CC lib/zlib_deflate/deflate.o
AR net/bpf/built-in.a
CC [M] drivers/block/xsysace.o
CC lib/math/int_sqrt.o
CC [M] net/bridge/br.o
CC drivers/char/random.o
CC kernel/locking/rwsem-xadd.o
CC lib/xz/xz_dec_lzma2.o
CC [M] drivers/char/xilinx_hwicap/buffer_icap.o
AS arch/powerpc/kernel/misc.o
CC mm/swap.o
CC lib/math/reciprocal_div.o
CC kernel/locking/mutex-debug.o
CC mm/truncate.o
CC [M] net/bridge/br_device.o
CC arch/powerpc/kernel/io.o
CC arch/powerpc/math-emu/fmul.o
CC block/blk-timeout.o
CC lib/zlib_inflate/inffast.o
CC lib/zlib_inflate/inflate.o
CC ipc/ipc_sysctl.o
CC drivers/base/power/wakeup.o
CC mm/vmscan.o
CC fs/ext2/ioctl.o
CC lib/bcd.o
CC lib/lockref.o
AR lib/math/built-in.a
CC [M] net/bridge/br_fdb.o
CC [M] net/bridge/br_forward.o
CC block/blk-lib.o
AS arch/powerpc/kernel/misc_32.o
CC lib/zlib_deflate/deftree.o
CC lib/zlib_inflate/infutil.o
CC lib/zlib_inflate/inftrees.o
CC lib/xz/xz_dec_bcj.o
CC crypto/kpp.o
CC crypto/acompress.o
CC ipc/mqueue.o
CC crypto/scompress.o
CC ipc/mq_sysctl.o
LD [M] drivers/char/xilinx_hwicap/xilinx_hwicap_m.o
CC crypto/algboss.o
CC drivers/char/misc.o
CC kernel/irq/proc.o
CC kernel/irq/pm.o
CC kernel/locking/lockdep.o
CC kernel/irq/msi.o
CC block/blk-mq.o
CC block/blk-mq-tag.o
CC arch/powerpc/math-emu/fmuls.o
CC arch/powerpc/math-emu/fnabs.o
CC fs/ext2/namei.o
CC lib/zlib_inflate/inflate_syms.o
AR drivers/block/built-in.a
AR drivers/char/ipmi/built-in.a
CC net/core/sock.o
CC block/blk-stat.o
AR lib/xz/built-in.a
CC kernel/power/qos.o
CC block/blk-mq-sysfs.o
CC kernel/locking/lockdep_proc.o
CC kernel/power/main.o
CC arch/powerpc/kernel/of_platform.o
CC block/blk-mq-cpumap.o
AR drivers/clk/actions/built-in.a
CC arch/powerpc/math-emu/fneg.o
AR drivers/clk/analogbits/built-in.a
AR drivers/clk/bcm/built-in.a
CC lib/zlib_deflate/deflate_syms.o
AR drivers/clk/imgtec/built-in.a
CC drivers/char/nvram.o
CC kernel/power/process.o
AR drivers/base/power/built-in.a
CC drivers/base/core.o
AR drivers/clk/imx/built-in.a
AR lib/zlib_inflate/built-in.a
CC [M] net/bridge/br_if.o
CC arch/powerpc/kernel/prom_parse.o
AR drivers/clk/ingenic/built-in.a
CC mm/shmem.o
AR drivers/clk/mediatek/built-in.a
CC crypto/testmgr.o
CC net/ethernet/eth.o
AR kernel/irq/built-in.a
CC crypto/crypto_null.o
CC kernel/locking/spinlock.o
CC [M] net/bridge/br_input.o
CC fs/ext2/super.o
AR drivers/clk/mvebu/built-in.a
CC kernel/printk/printk.o
CC net/ipv4/route.o
AR drivers/clk/renesas/built-in.a
CC arch/powerpc/math-emu/fnmadd.o
AR drivers/clk/ti/built-in.a
AR drivers/clk/built-in.a
CC mm/util.o
CC mm/mmzone.o
AR lib/zlib_deflate/built-in.a
CC kernel/printk/printk_safe.o
CC lib/sort.o
CC kernel/locking/rtmutex.o
CC fs/ext2/symlink.o
AR drivers/clocksource/built-in.a
CC arch/powerpc/math-emu/fnmadds.o
CC lib/parser.o
AR ipc/built-in.a
CC lib/debug_locks.o
CC kernel/power/suspend.o
CC [M] net/bridge/br_ioctl.o
AR drivers/char/built-in.a
CC crypto/ecb.o
CC crypto/pcbc.o
CC kernel/locking/rtmutex-debug.o
CC [M] net/bridge/br_stp.o
AR drivers/crypto/hisilicon/built-in.a
AR drivers/crypto/built-in.a
CC lib/random32.o
AR drivers/firewire/built-in.a
CC arch/powerpc/kernel/proc_powerpc.o
CC kernel/power/poweroff.o
CC mm/vmstat.o
CC arch/powerpc/kernel/module.o
CC arch/powerpc/kernel/module_32.o
CC net/ipv6/af_inet6.o
CC kernel/rcu/update.o
AS arch/powerpc/kernel/cpu_setup_44x.o
CC drivers/connector/cn_queue.o
CC drivers/connector/connector.o
CC drivers/connector/cn_proc.o
CC kernel/sched/core.o
CC kernel/time/time.o
CC net/core/request_sock.o
CC [M] net/llc/llc_core.o
CC lib/bust_spinlocks.o
CC kernel/time/timer.o
AR net/ethernet/built-in.a
CC [M] net/bridge/br_stp_bpdu.o
AS arch/powerpc/kernel/entry_32.o
CC arch/powerpc/kernel/setup_32.o
AR fs/ext2/built-in.a
CC kernel/trace/trace_clock.o
CC [M] fs/ext4/balloc.o
CC arch/powerpc/math-emu/fnmsub.o
CC [M] net/bridge/br_stp_if.o
CC net/ipv4/inetpeer.o
CC crypto/aes_generic.o
CC kernel/rcu/sync.o
CC block/blk-mq-sched.o
CC arch/powerpc/kernel/early_32.o
CC arch/powerpc/kernel/legacy_serial.o
CC lib/kasprintf.o
AR kernel/power/built-in.a
AR kernel/printk/built-in.a
CC lib/bitmap.o
CC arch/powerpc/kernel/udbg_16550.o
CC kernel/locking/spinlock_debug.o
CC [M] net/bridge/br_stp_timer.o
CC [M] net/llc/llc_input.o
CC mm/backing-dev.o
CC kernel/trace/ring_buffer.o
CC arch/powerpc/math-emu/fnmsubs.o
CC kernel/trace/trace.o
CC net/ipv4/protocol.o
CC [M] fs/ext4/bitmap.o
CC kernel/locking/test-ww_mutex.o
CC net/core/skbuff.o
CC net/netlink/af_netlink.o
CC net/netlink/genetlink.o
CC net/ipv6/anycast.o
CC kernel/time/hrtimer.o
CC arch/powerpc/kernel/stacktrace.o
CC arch/powerpc/math-emu/fres.o
AR drivers/connector/built-in.a
CC kernel/rcu/srcutiny.o
CC arch/powerpc/math-emu/frsp.o
CC [M] net/llc/llc_output.o
CC arch/powerpc/math-emu/fsel.o
CC kernel/time/timekeeping.o
CC drivers/base/bus.o
CC arch/powerpc/math-emu/lfs.o
CC drivers/base/dd.o
CC crypto/rng.o
CC net/packet/af_packet.o
CC lib/scatterlist.o
CC block/ioctl.o
CC [M] net/bridge/br_netlink.o
CC net/sched/sch_generic.o
CC [M] fs/ext4/block_validity.o
CC net/sunrpc/clnt.o
CC [M] fs/ext4/dir.o
AR kernel/locking/built-in.a
CC [M] fs/ext4/ext4_jbd2.o
CC kernel/fork.o
CC kernel/rcu/tiny.o
CC crypto/hash_info.o
CC mm/mm_init.o
CC [M] crypto/echainiv.o
CC arch/powerpc/kernel/pci_32.o
CC kernel/sched/loadavg.o
CC net/ipv4/ip_input.o
CC drivers/base/syscore.o
CC arch/powerpc/kernel/pci-common.o
CC drivers/base/driver.o
LD [M] net/llc/llc.o
CC net/ipv6/ip6_output.o
CC net/unix/af_unix.o
CC lib/list_sort.o
AR kernel/rcu/built-in.a
CC arch/powerpc/kernel/pci_of_scan.o
CC kernel/exec_domain.o
CC kernel/sched/clock.o
CC lib/uuid.o
CC [M] crypto/hmac.o
CC lib/iov_iter.o
CC kernel/trace/trace_output.o
AR net/wireless/built-in.a
CC lib/clz_ctz.o
CC [M] net/bridge/br_netlink_tunnel.o
CC drivers/base/class.o
CC arch/powerpc/kernel/msi.o
CC mm/mmu_context.o
CC drivers/base/platform.o
CC block/genhd.o
CC [M] fs/ext4/extents.o
CC arch/powerpc/kernel/iomap.o
CC arch/powerpc/math-emu/frsqrte.o
CC kernel/panic.o
CC mm/percpu.o
CC drivers/base/cpu.o
CC kernel/cpu.o
CC drivers/base/firmware.o
CC [M] fs/fat/cache.o
AS arch/powerpc/kernel/ppc_save_regs.o
AR drivers/firmware/broadcom/built-in.a
CC [M] fs/ext4/extents_status.o
CC kernel/time/ntp.o
CC arch/powerpc/math-emu/fsub.o
CC [M] net/bridge/br_arp_nd_proxy.o
CC mm/slab_common.o
CC [M] net/bridge/br_sysfs_if.o
CC [M] crypto/sha256_generic.o
CC net/unix/garbage.o
AR net/netlink/built-in.a
CC net/sunrpc/xprt.o
CC net/ipv4/ip_fragment.o
CC arch/powerpc/math-emu/fsubs.o
CC net/sched/sch_mq.o
AS arch/powerpc/kernel/head_44x.o
CC arch/powerpc/math-emu/mcrfs.o
CC kernel/trace/trace_seq.o
CC kernel/sched/cputime.o
AR net/packet/built-in.a
CC drivers/gpio/gpiolib.o
CC net/socket.o
LDS arch/powerpc/kernel/vmlinux.lds
CC net/core/datagram.o
AS arch/powerpc/kernel/fpu.o
CC drivers/gpio/gpiolib-devres.o
CC net/sysctl_net.o
CC [M] fs/fat/dir.o
CC kernel/trace/trace_stat.o
AR arch/powerpc/kernel/built-in.a
CC net/ipv4/ip_forward.o
CC mm/compaction.o
CC drivers/base/init.o
CC arch/powerpc/math-emu/mffs.o
CC [M] net/bridge/br_sysfs_br.o
AR drivers/firmware/imx/built-in.a
AR drivers/gpu/drm/arm/built-in.a
AR drivers/firmware/meson/built-in.a
AR drivers/gpu/drm/bridge/synopsys/built-in.a
AR drivers/firmware/psci/built-in.a
AR drivers/gpu/drm/bridge/built-in.a
CC kernel/trace/trace_printk.o
AR drivers/firmware/tegra/built-in.a
AR drivers/gpu/drm/hisilicon/built-in.a
CC kernel/time/clocksource.o
CC net/ipv6/ip6_input.o
AR drivers/gpu/drm/i2c/built-in.a
AR drivers/gpu/drm/omapdrm/displays/built-in.a
CC block/partition-generic.o
AR drivers/gpu/drm/omapdrm/dss/built-in.a
AR drivers/gpu/drm/omapdrm/built-in.a
AR drivers/gpu/drm/panel/built-in.a
CC net/ipv6/addrconf.o
AR drivers/gpu/drm/rcar-du/built-in.a
CC net/ipv6/addrlabel.o
AR drivers/gpu/drm/tilcdc/built-in.a
CC drivers/base/map.o
AR drivers/gpu/drm/built-in.a
AR drivers/firmware/xilinx/built-in.a
CC mm/vmacache.o
CC drivers/gpu/vga/vgaarb.o
AR drivers/firmware/built-in.a
CC mm/interval_tree.o
CC lib/bsearch.o
CC [M] net/bridge/br_multicast.o
AR net/sched/built-in.a
CC arch/powerpc/math-emu/mtfsb0.o
CC [M] fs/fat/fatent.o
CC drivers/base/devres.o
CC net/unix/sysctl_net_unix.o
CC kernel/time/jiffies.o
CC net/ipv6/route.o
CC drivers/base/attribute_container.o
CC net/ipv4/ip_options.o
CC net/ipv4/ip_output.o
CC kernel/sched/idle.o
CC arch/powerpc/math-emu/mtfsb1.o
CC drivers/gpio/gpiolib-legacy.o
CC kernel/trace/trace_sched_switch.o
CC kernel/trace/trace_preemptirq.o
CC [M] crypto/deflate.o
CC mm/list_lru.o
CC lib/find_bit.o
CC mm/workingset.o
CC [M] fs/jbd2/transaction.o
CC net/sunrpc/socklib.o
CC [M] crypto/crc32c_generic.o
CC lib/llist.o
CC kernel/time/timer_list.o
CC arch/powerpc/math-emu/stfiwx.o
AR drivers/gpu/vga/built-in.a
AR drivers/gpu/built-in.a
CC drivers/base/transport_class.o
CC mm/debug.o
CC mm/gup.o
CC net/core/stream.o
CC net/unix/scm.o
CC fs/jffs2/compr.o
CC lib/memweight.o
CC block/ioprio.o
CC block/badblocks.o
CC drivers/gpio/gpiolib-devprop.o
CC drivers/gpio/gpiolib-of.o
CC [M] net/bridge/br_mdb.o
CC kernel/time/timeconv.o
CC fs/jffs2/dir.o
CC [M] fs/fat/file.o
CC lib/kfifo.o
CC net/ipv6/ip6_fib.o
CC net/ipv4/ip_sockglue.o
CC drivers/base/topology.o
CC kernel/time/timecounter.o
CC kernel/exit.o
AR drivers/hwtracing/intel_th/built-in.a
CC [M] crypto/crct10dif_common.o
CC block/blk-rq-qos.o
CC kernel/trace/trace_nop.o
CC [M] fs/ext4/file.o
CC block/scsi_ioctl.o
CC net/ipv4/inet_hashtables.o
CC [M] fs/jbd2/commit.o
CC fs/kernfs/mount.o
CC kernel/sched/fair.o
CC kernel/sched/rt.o
CC fs/jffs2/file.o
CC [M] crypto/crct10dif_generic.o
CC lib/percpu-refcount.o
CC drivers/gpio/gpio-xilinx.o
CC lib/rhashtable.o
CC mm/highmem.o
CC arch/powerpc/math-emu/stfs.o
CC net/core/scm.o
CC net/core/gen_stats.o
CC [M] fs/fat/inode.o
CC kernel/trace/blktrace.o
CC fs/kernfs/inode.o
AR net/unix/built-in.a
CC arch/powerpc/math-emu/fmr.o
CC net/core/gen_estimator.o
CC net/sunrpc/xprtsock.o
LD [M] net/bridge/bridge.o
CC fs/jffs2/ioctl.o
CC drivers/base/container.o
CC [M] crypto/lzo.o
CC [M] fs/ext4/fsmap.o
CC fs/jffs2/nodelist.o
CC fs/jffs2/malloc.o
CC block/bsg.o
CC fs/jffs2/read.o
CC [M] crypto/lzo-rle.o
CC arch/powerpc/math-emu/lfd.o
CC mm/memory.o
AR drivers/i2c/algos/built-in.a
CC [M] drivers/i2c/algos/i2c-algo-bit.o
CC kernel/sched/deadline.o
CC net/sunrpc/sched.o
CC arch/powerpc/math-emu/stfd.o
AR drivers/i2c/busses/built-in.a
CC fs/kernfs/dir.o
CC [M] drivers/i2c/busses/i2c-gpio.o
CC [M] fs/jbd2/recovery.o
CC net/sunrpc/auth.o
CC net/ipv6/ipv6_sockglue.o
CC kernel/time/alarmtimer.o
CC fs/jffs2/nodemgmt.o
CC kernel/sched/wait.o
CC [M] crypto/drbg.o
CC lib/once.o
CC kernel/trace/trace_events.o
CC net/sunrpc/auth_null.o
AR arch/powerpc/math-emu/built-in.a
AR arch/powerpc/built-in.a
CC [M] fs/fat/misc.o
CC [M] fs/fat/nfs.o
CC net/ipv4/inet_timewait_sock.o
CC fs/jffs2/readinode.o
CC net/core/net_namespace.o
CC net/core/secure_seq.o
CC [M] fs/fat/namei_vfat.o
CC kernel/sched/wait_bit.o
CC lib/refcount.o
AR drivers/gpio/built-in.a
CC fs/kernfs/file.o
CC fs/jffs2/write.o
CC [M] drivers/i2c/busses/i2c-ibm_iic.o
CC net/ipv4/inet_connection_sock.o
CC [M] fs/jbd2/checkpoint.o
CC [M] fs/ext4/fsync.o
CC mm/mincore.o
CC kernel/sched/swait.o
AR drivers/i2c/muxes/built-in.a
CC kernel/time/posix-timers.o
CC mm/mlock.o
CC mm/mmap.o
CC drivers/i2c/i2c-boardinfo.o
CC net/core/flow_dissector.o
CC net/sunrpc/auth_unix.o
CC block/bsg-lib.o
CC block/mq-deadline.o
CC kernel/time/posix-cpu-timers.o
CC block/kyber-iosched.o
CC fs/kernfs/symlink.o
LD [M] fs/fat/vfat.o
CC [M] drivers/i2c/i2c-core-base.o
CC kernel/trace/trace_export.o
LD [M] fs/fat/fat.o
CC [M] crypto/jitterentropy-kcapi.o
CC [M] crypto/jitterentropy.o
CC net/sunrpc/svc.o
CC mm/mmu_gather.o
CC drivers/base/property.o
CC drivers/base/cacheinfo.o
CC drivers/base/devcon.o
CC [M] fs/jbd2/revoke.o
CC [M] drivers/i2c/i2c-core-smbus.o
CC lib/usercopy.o
AR fs/kernfs/built-in.a
CC [M] drivers/i2c/i2c-core-of.o
CC net/ipv6/ndisc.o
CC fs/jffs2/scan.o
CC net/ipv6/udp.o
CC net/sunrpc/svcsock.o
CC [M] drivers/i2c/i2c-dev.o
CC [M] fs/ext4/hash.o
CC drivers/base/swnode.o
CC drivers/base/devtmpfs.o
CC net/ipv4/tcp.o
AR crypto/built-in.a
AR drivers/i3c/built-in.a
CC net/core/sysctl_net_core.o
LD [M] crypto/jitterentropy_rng.o
CC [M] fs/jbd2/journal.o
CC kernel/trace/trace_events_filter.o
CC mm/mprotect.o
CC lib/errseq.o
CC net/sunrpc/svcauth.o
CC kernel/time/posix-clock.o
CC net/sunrpc/svcauth_unix.o
CC net/ipv4/tcp_input.o
CC kernel/sched/completion.o
CC mm/mremap.o
CC kernel/trace/trace_events_trigger.o
CC kernel/time/itimer.o
CC kernel/time/clockevents.o
CC lib/bucket_locks.o
CC kernel/time/tick-common.o
CC block/blk-mq-pci.o
CC [M] fs/ext4/ialloc.o
CC kernel/time/timekeeping_debug.o
CC block/blk-mq-virtio.o
AR drivers/i2c/built-in.a
AR drivers/idle/built-in.a
CC [M] drivers/input/serio/serio.o
AR drivers/iommu/built-in.a
CC kernel/trace/power-traces.o
CC [M] fs/ext4/indirect.o
CC drivers/base/module.o
CC fs/jffs2/gc.o
LD [M] drivers/i2c/i2c-core.o
CC lib/generic-radix-tree.o
CC lib/test_string.o
CC [M] fs/ext4/inline.o
CC drivers/irqchip/irqchip.o
CC drivers/irqchip/irq-xilinx-intc.o
CC fs/lockd/clntlock.o
CC net/core/dev.o
CC net/core/ethtool.o
CC lib/string_helpers.o
CC net/core/dev_addr_lists.o
CC kernel/trace/rpm-traces.o
CC mm/msync.o
CC mm/page_vma_mapped.o
CC net/sunrpc/addr.o
AR drivers/base/built-in.a
AR kernel/time/built-in.a
CC mm/pagewalk.o
AR drivers/macintosh/built-in.a
CC kernel/softirq.o
CC mm/pgtable-generic.o
CC kernel/sched/debug.o
CC net/core/dst.o
CC block/blk-mq-debugfs.o
CC lib/hexdump.o
CC mm/rmap.o
AR drivers/media/common/b2c2/built-in.a
CC lib/kstrtox.o
AR drivers/media/common/saa7146/built-in.a
CC drivers/message/fusion/mptbase.o
AR drivers/media/common/siano/built-in.a
CC lib/test_firmware.o
AR drivers/media/common/v4l2-tpg/built-in.a
CC [M] drivers/input/serio/xilinx_ps2.o
AR drivers/media/common/videobuf2/built-in.a
AR drivers/media/common/built-in.a
AR drivers/irqchip/built-in.a
CC kernel/sched/membarrier.o
AR drivers/mfd/built-in.a
AR drivers/media/firewire/built-in.a
CC drivers/message/fusion/mptscsih.o
AR drivers/media/i2c/built-in.a
LD [M] fs/jbd2/jbd2.o
AR drivers/media/mmc/siano/built-in.a
CC [M] fs/ext4/inode.o
AR drivers/media/mmc/built-in.a
CC drivers/message/fusion/mptsas.o
AR drivers/media/pci/b2c2/built-in.a
AR drivers/misc/cardreader/built-in.a
AR drivers/media/pci/ddbridge/built-in.a
CC net/ipv6/udplite.o
AR drivers/misc/cb710/built-in.a
AR drivers/media/pci/dm1105/built-in.a
AR drivers/misc/eeprom/built-in.a
AR drivers/media/pci/intel/ipu3/built-in.a
AR drivers/misc/lis3lv02d/built-in.a
CC fs/jffs2/symlink.o
AR kernel/trace/built-in.a
CC fs/nfs/client.o
AR drivers/misc/mic/bus/built-in.a
AR drivers/media/pci/intel/built-in.a
CC mm/vmalloc.o
AR drivers/media/platform/cros-ec-cec/built-in.a
AR drivers/misc/mic/built-in.a
CC net/sunrpc/rpcb_clnt.o
AR drivers/media/pci/mantis/built-in.a
AR drivers/misc/ti-st/built-in.a
AR drivers/media/pci/netup_unidvb/built-in.a
CC drivers/mmc/core/core.o
CC net/sunrpc/timer.o
AR drivers/media/pci/ngene/built-in.a
AR drivers/media/pci/pluto2/built-in.a
CC drivers/misc/pci_endpoint_test.o
AR drivers/media/rc/keymaps/built-in.a
AR drivers/media/pci/pt1/built-in.a
AR drivers/media/rc/built-in.a
AR drivers/media/pci/pt3/built-in.a
AR drivers/media/platform/davinci/built-in.a
AR drivers/media/pci/saa7146/built-in.a
CC fs/nfs_common/grace.o
AR drivers/media/platform/meson/built-in.a
AR drivers/media/pci/smipcie/built-in.a
AR drivers/media/pci/ttpci/built-in.a
CC net/ipv6/raw.o
AR drivers/media/platform/omap/built-in.a
CC fs/nls/nls_base.o
CC kernel/resource.o
CC drivers/mmc/host/sdhci.o
CC lib/test_sysctl.o
AR drivers/media/spi/built-in.a
CC drivers/mmc/host/sdhci-pci-core.o
AR drivers/media/platform/stm32/built-in.a
CC drivers/mmc/host/sdhci-pci-o2micro.o
AR drivers/media/platform/built-in.a
CC fs/nfs/dir.o
CC block/blk-pm.o
CC fs/jffs2/build.o
CC net/core/netevent.o
AR drivers/media/pci/built-in.a
CC drivers/mmc/host/sdhci-pci-arasan.o
AR drivers/media/tuners/built-in.a
AR drivers/media/usb/b2c2/built-in.a
CC [M] fs/nls/nls_cp437.o
AR kernel/sched/built-in.a
CC fs/lockd/clntproc.o
CC drivers/mtd/chips/chipreg.o
AR drivers/misc/built-in.a
AR fs/nfs_common/built-in.a
CC lib/test_sort.o
CC net/core/neighbour.o
AR drivers/media/usb/dvb-usb/built-in.a
CC kernel/sysctl.o
CC kernel/sysctl_binary.o
AR drivers/media/usb/dvb-usb-v2/built-in.a
AR drivers/media/usb/s2255/built-in.a
AR drivers/mtd/devices/built-in.a
CC net/core/utils.o
CC net/core/rtnetlink.o
AR drivers/media/usb/siano/built-in.a
AR drivers/media/usb/stkwebcam/built-in.a
CC drivers/mtd/chips/cfi_probe.o
AR drivers/media/usb/ttusb-budget/built-in.a
AR drivers/media/usb/ttusb-dec/built-in.a
AR drivers/media/usb/zr364xx/built-in.a
AR drivers/media/usb/built-in.a
CC net/ipv6/icmp.o
AR drivers/media/built-in.a
CC fs/jffs2/erase.o
AR block/built-in.a
CC fs/jffs2/background.o
CC lib/test_bitmap.o
CC fs/jffs2/fs.o
CC drivers/mmc/host/sdhci-pci-dwc-mshc.o
CC kernel/capability.o
CC net/sunrpc/xdr.o
CC [M] fs/ext4/ioctl.o
CC [M] fs/nls/nls_iso8859-1.o
CC [M] fs/ext4/mballoc.o
CC fs/notify/dnotify/dnotify.o
AR drivers/net/dsa/b53/built-in.a
AR drivers/net/dsa/microchip/built-in.a
CC drivers/mmc/core/bus.o
AR drivers/net/ethernet/3com/built-in.a
AR drivers/net/ethernet/8390/built-in.a
CC net/ipv4/tcp_output.o
AR drivers/net/ethernet/adaptec/built-in.a
CC net/ipv4/tcp_timer.o
CC mm/process_vm_access.o
AR drivers/net/dsa/mv88e6xxx/built-in.a
CC drivers/net/phy/mdio-boardinfo.o
AR drivers/net/dsa/sja1105/built-in.a
AR drivers/net/dsa/built-in.a
AR drivers/nfc/built-in.a
CC drivers/mtd/chips/cfi_util.o
AR fs/notify/fanotify/built-in.a
CC net/sunrpc/sunrpc_syms.o
AR drivers/mtd/lpddr/built-in.a
CC mm/page_alloc.o
CC drivers/net/phy/phy.o
AR drivers/message/fusion/built-in.a
AR drivers/message/built-in.a
AR fs/nls/built-in.a
CC lib/test_uuid.o
CC fs/jffs2/writev.o
AR drivers/net/ethernet/agere/built-in.a
AR drivers/net/wireless/admtek/built-in.a
AR drivers/net/ethernet/alacritech/built-in.a
CC drivers/mmc/host/sdhci-pci-data.o
AR drivers/net/wireless/ath/built-in.a
CC drivers/mmc/core/host.o
AR drivers/net/ethernet/alteon/built-in.a
CC fs/proc/task_mmu.o
AR fs/notify/dnotify/built-in.a
CC net/sunrpc/cache.o
AR drivers/net/wireless/atmel/built-in.a
AR drivers/net/ethernet/amazon/built-in.a
AR drivers/net/wireless/broadcom/built-in.a
AR drivers/net/ethernet/amd/built-in.a
AR drivers/net/wireless/cisco/built-in.a
AR drivers/net/ethernet/aquantia/built-in.a
CC fs/lockd/clntxdr.o
AR drivers/net/wireless/intel/built-in.a
AR drivers/net/ethernet/arc/built-in.a
CC lib/pci_iomap.o
AR drivers/net/wireless/intersil/built-in.a
CC drivers/mmc/core/mmc.o
AR drivers/net/ethernet/atheros/built-in.a
AR drivers/net/wireless/marvell/built-in.a
CC drivers/nvme/host/core.o
CC drivers/mmc/host/cqhci.o
AR drivers/net/ethernet/aurora/built-in.a
AR drivers/net/wireless/mediatek/built-in.a
CC fs/proc/inode.o
AR drivers/net/ethernet/broadcom/built-in.a
CC kernel/ptrace.o
AR drivers/net/ethernet/brocade/built-in.a
CC drivers/mtd/chips/cfi_cmdset_0002.o
CC fs/jffs2/super.o
CC fs/notify/inotify/inotify_fsnotify.o
CC drivers/nvmem/core.o
CC drivers/mtd/chips/gen_probe.o
CC drivers/mtd/chips/jedec_probe.o
AR drivers/net/ethernet/cadence/built-in.a
CC [M] fs/ext4/migrate.o
CC fs/notify/inotify/inotify_user.o
CC net/ipv6/mcast.o
AR drivers/net/ethernet/cavium/common/built-in.a
AR drivers/net/ethernet/cavium/liquidio/built-in.a
AR drivers/net/ethernet/cavium/octeon/built-in.a
CC fs/nfs/file.o
AR drivers/net/ethernet/cavium/thunder/built-in.a
AR drivers/net/ethernet/cavium/built-in.a
AR drivers/net/ethernet/chelsio/built-in.a
CC kernel/user.o
AR drivers/net/ethernet/cisco/built-in.a
AR drivers/net/ethernet/cortina/built-in.a
AR drivers/net/ethernet/dec/built-in.a
AR drivers/net/ethernet/dlink/built-in.a
AR drivers/net/ethernet/emulex/built-in.a
AR drivers/net/ethernet/ezchip/built-in.a
AR drivers/net/ethernet/hp/built-in.a
CC drivers/nvmem/nvmem-sysfs.o
CC drivers/net/phy/phy-c45.o
AR drivers/net/ethernet/huawei/built-in.a
CC kernel/signal.o
AR drivers/net/ethernet/i825xx/built-in.a
CC lib/iomap_copy.o
CC kernel/sys.o
CC net/core/link_watch.o
CC drivers/mmc/core/mmc_ops.o
AR drivers/net/wireless/quantenna/built-in.a
CC net/core/filter.o
CC fs/proc/root.o
CC net/ipv6/reassembly.o
CC fs/jffs2/debug.o
CC drivers/mmc/core/sd.o
AR drivers/net/wireless/ralink/built-in.a
AR drivers/net/ethernet/intel/built-in.a
CC drivers/net/ethernet/ibm/emac/mal.o
AR drivers/net/wireless/realtek/built-in.a
AR drivers/mmc/host/built-in.a
CC net/sunrpc/rpc_pipe.o
CC drivers/net/ethernet/ibm/emac/core.o
CC fs/lockd/host.o
CC fs/lockd/svc.o
CC drivers/net/ethernet/ibm/emac/phy.o
AR drivers/net/wireless/rsi/built-in.a
CC drivers/of/base.o
AR drivers/nvmem/built-in.a
AR drivers/net/wireless/st/built-in.a
CC drivers/of/device.o
AR fs/notify/inotify/built-in.a
AR drivers/net/ethernet/marvell/octeontx2/built-in.a
AR drivers/net/wireless/ti/built-in.a
CC fs/notify/fsnotify.o
AR drivers/net/ethernet/marvell/built-in.a
AR drivers/net/wireless/zydas/built-in.a
CC kernel/umh.o
AR drivers/net/wireless/built-in.a
CC drivers/of/platform.o
CC net/core/sock_diag.o
CC lib/devres.o
CC drivers/net/ethernet/ibm/emac/zmii.o
CC fs/proc/base.o
AR drivers/mtd/chips/built-in.a
AR drivers/mtd/maps/built-in.a
CC fs/jffs2/wbuf.o
AR drivers/mtd/nand/onenand/built-in.a
AR drivers/mtd/nand/raw/ingenic/built-in.a
CC [M] drivers/mtd/nand/raw/nand_base.o
CC [M] fs/ext4/mmp.o
AR drivers/nvme/target/built-in.a
AR drivers/mtd/nand/spi/built-in.a
CC net/ipv6/tcp_ipv6.o
CC drivers/net/Space.o
CC fs/notify/notification.o
CC drivers/net/loopback.o
CC fs/nfs/getroot.o
CC drivers/of/property.o
CC fs/lockd/svclock.o
CC fs/lockd/svcshare.o
CC drivers/net/ethernet/ibm/emac/rgmii.o
CC lib/locking-selftest.o
CC lib/logic_pio.o
CC [M] fs/ext4/move_extent.o
CC drivers/mmc/core/sd_ops.o
CC [M] drivers/net/tun.o
CC net/ipv4/tcp_ipv4.o
CC drivers/net/ethernet/ibm/emac/tah.o
CC fs/lockd/svcproc.o
CC fs/proc/generic.o
CC lib/hweight.o
CC fs/nfs/inode.o
CC lib/bitrev.o
CC mm/init-mm.o
CC net/sunrpc/svc_xprt.o
CC drivers/net/phy/phy-core.o
CC drivers/nvme/host/trace.o
CC drivers/nvme/host/pci.o
CC fs/notify/group.o
CC drivers/of/kobj.o
CC kernel/workqueue.o
HOSTCC lib/gen_crc32table
CC drivers/mmc/core/sdio.o
CC drivers/of/fdt.o
CC fs/nfs/super.o
CC net/sunrpc/xprtmultipath.o
CC fs/jffs2/compr_rtime.o
CC mm/memblock.o
CC mm/madvise.o
CC net/sunrpc/stats.o
CC net/sunrpc/sysctl.o
CC lib/crc32test.o
AR drivers/net/ethernet/ibm/emac/built-in.a
AR drivers/net/ethernet/ibm/built-in.a
AR drivers/net/ethernet/mellanox/built-in.a
CC [M] fs/ext4/namei.o
AR drivers/net/ethernet/micrel/built-in.a
CC [M] fs/ext4/page-io.o
CC fs/proc/array.o
CC fs/nfs/io.o
CC net/ipv4/tcp_minisocks.o
CC fs/notify/mark.o
CC drivers/of/fdt_address.o
CC drivers/net/phy/phy_device.o
CC fs/nfs/direct.o
CC drivers/mmc/core/sdio_ops.o
CC fs/jffs2/compr_zlib.o
AR drivers/net/ethernet/microchip/built-in.a
CC kernel/pid.o
AR drivers/net/ethernet/mscc/built-in.a
CC net/ipv6/ping.o
AR drivers/net/ethernet/myricom/built-in.a
AR drivers/net/ethernet/natsemi/built-in.a
CC fs/proc/fd.o
CC lib/syscall.o
CC drivers/of/address.o
AR drivers/net/ethernet/neterion/built-in.a
CC lib/nlattr.o
AR drivers/net/ethernet/netronome/built-in.a
AR drivers/net/ethernet/ni/built-in.a
AR drivers/net/ethernet/nvidia/built-in.a
CC fs/notify/fdinfo.o
AR fs/jffs2/built-in.a
AR fs/quota/built-in.a
AR drivers/net/ethernet/oki-semi/built-in.a
CC [M] drivers/mtd/nand/raw/nand_legacy.o
CC drivers/mmc/core/sdio_bus.o
CC fs/lockd/svcsubs.o
CC net/ipv6/exthdrs.o
CC fs/proc/proc_tty.o
CC kernel/task_work.o
CC net/ipv6/datagram.o
CC [M] drivers/mtd/nand/raw/nand_bbt.o
AR net/sunrpc/built-in.a
AR drivers/net/ethernet/packetengines/built-in.a
CC net/ipv6/ip6_flowlabel.o
AR drivers/net/ethernet/qlogic/built-in.a
AR drivers/net/ethernet/qualcomm/emac/built-in.a
CC net/ipv4/tcp_cong.o
AR drivers/net/ethernet/qualcomm/built-in.a
AR drivers/net/ethernet/rdc/built-in.a
CC [M] fs/ext4/readpage.o
CC lib/atomic64.o
CC lib/dynamic_queue_limits.o
AR drivers/net/ethernet/realtek/built-in.a
CC drivers/of/irq.o
CC net/ipv6/inet6_connection_sock.o
CC net/ipv4/tcp_metrics.o
CC mm/page_io.o
CC mm/swap_state.o
CC drivers/of/of_net.o
AR drivers/nvme/host/built-in.a
AR drivers/nvme/built-in.a
CC drivers/mmc/core/sdio_cis.o
CC net/ipv6/udp_offload.o
AR drivers/net/ethernet/renesas/built-in.a
CC lib/glob.o
CC drivers/mmc/core/sdio_io.o
CC net/core/dev_ioctl.o
CC drivers/of/of_mdio.o
CC lib/globtest.o
CC kernel/extable.o
AR fs/notify/built-in.a
CC drivers/mmc/core/sdio_irq.o
CC drivers/net/phy/mdio_bus.o
AR drivers/net/ethernet/rocker/built-in.a
CC [M] drivers/mtd/nand/raw/nand_timings.o
CC [M] drivers/mtd/nand/raw/nand_ids.o
CC [M] fs/ext4/resize.o
CC [M] fs/ext4/super.o
CC [M] drivers/mtd/nand/core.o
CC fs/lockd/mon.o
CC drivers/mmc/core/slot-gpio.o
CC fs/nfs/pagelist.o
CC fs/lockd/xdr.o
CC fs/proc/cmdline.o
AR drivers/net/ethernet/samsung/built-in.a
CC fs/ramfs/inode.o
CC [M] fs/ext4/symlink.o
CC [M] drivers/mtd/nand/bbt.o
AR drivers/net/ethernet/seeq/built-in.a
CC drivers/of/of_reserved_mem.o
CC drivers/net/phy/mdio_device.o
AR drivers/net/ethernet/sfc/built-in.a
CC fs/proc/consoles.o
CC fs/ramfs/file-mmu.o
CC net/ipv6/seg6.o
CC drivers/net/phy/swphy.o
CC [M] drivers/mtd/nand/raw/nand_onfi.o
AR drivers/net/ethernet/silan/built-in.a
CC [M] drivers/mtd/nand/raw/nand_jedec.o
AR drivers/net/ethernet/sis/built-in.a
CC mm/swapfile.o
AR drivers/net/ethernet/smsc/built-in.a
AR drivers/net/ethernet/socionext/built-in.a
AR drivers/net/ethernet/stmicro/built-in.a
AR drivers/net/ethernet/sun/built-in.a
AR drivers/net/ethernet/synopsys/built-in.a
CC net/core/tso.o
CC net/ipv6/fib6_notifier.o
CC net/core/sock_reuseport.o
AR drivers/net/ethernet/tehuti/built-in.a
CC lib/strncpy_from_user.o
CC kernel/params.o
CC [M] drivers/mtd/nand/raw/nand_amd.o
CC net/ipv4/tcp_fastopen.o
CC lib/strnlen_user.o
CC kernel/kthread.o
CC lib/net_utils.o
CC [M] fs/ext4/sysfs.o
CC fs/proc/cpuinfo.o
CC drivers/net/phy/fixed_phy.o
CC [M] fs/squashfs/block.o
CC fs/lockd/clnt4xdr.o
AR drivers/of/built-in.a
CC [M] drivers/mtd/nand/raw/nand_esmt.o
CC net/core/fib_notifier.o
AR drivers/net/ethernet/ti/built-in.a
CC kernel/nsproxy.o
CC kernel/sys_ni.o
AR drivers/net/ethernet/via/built-in.a
AR fs/ramfs/built-in.a
AR drivers/net/ethernet/wiznet/built-in.a
CC kernel/notifier.o
CC lib/sg_pool.o
CC [M] fs/ext4/xattr.o
CC net/ipv4/tcp_rate.o
AR drivers/net/ethernet/xilinx/built-in.a
CC [M] fs/ext4/xattr_trusted.o
CC [M] drivers/mtd/nand/raw/nand_hynix.o
AR drivers/net/ethernet/built-in.a
CC net/core/xdp.o
AR drivers/pci/controller/dwc/built-in.a
AR drivers/pci/controller/built-in.a
AR drivers/pci/switch/built-in.a
CC drivers/mmc/core/regulator.o
CC drivers/pci/access.o
CC drivers/pci/bus.o
AR drivers/platform/built-in.a
CC lib/rbtree_test.o
CC net/core/flow_offload.o
CC lib/sbitmap.o
CC fs/proc/devices.o
CC fs/proc/interrupts.o
CC drivers/mmc/core/pwrseq.o
CC lib/argv_split.o
CC net/ipv4/tcp_recovery.o
CC [M] fs/squashfs/cache.o
CC net/ipv6/sysctl_net_ipv6.o
CC net/ipv6/proc.o
CC lib/bug.o
CC kernel/ksysfs.o
CC net/ipv6/sit.o
CC [M] fs/ext4/xattr_user.o
CC kernel/cred.o
CC lib/chacha.o
CC fs/lockd/xdr4.o
AR drivers/net/phy/built-in.a
AR drivers/net/built-in.a
AR drivers/mtd/parsers/built-in.a
CC fs/lockd/svc4proc.o
CC drivers/mmc/core/debugfs.o
AR drivers/mtd/tests/built-in.a
CC fs/nfs/read.o
LD [M] drivers/mtd/nand/nandcore.o
CC lib/cmdline.o
CC net/core/net-sysfs.o
CC fs/proc/loadavg.o
CC net/ipv6/addrconf_core.o
CC [M] drivers/mtd/ubi/vtbl.o
CC drivers/pci/probe.o
AR drivers/power/built-in.a
CC lib/ctype.o
CC fs/nfs/symlink.o
CC mm/swap_slots.o
CC mm/dmapool.o
CC lib/dec_and_lock.o
CC kernel/reboot.o
CC [M] drivers/mtd/nand/raw/nand_macronix.o
CC net/core/net-procfs.o
CC fs/lockd/procfs.o
CC lib/decompress.o
CC net/ipv4/tcp_ulp.o
CC kernel/async.o
CC net/ipv4/tcp_offload.o
CC [M] drivers/mtd/nand/raw/nand_micron.o
CC [M] drivers/mtd/nand/raw/nand_samsung.o
CC lib/decompress_bunzip2.o
CC [M] fs/squashfs/dir.o
CC fs/nfs/unlink.o
CC kernel/range.o
CC drivers/pci/host-bridge.o
CC drivers/mtd/mtdcore.o
CC drivers/pci/remove.o
CC [M] drivers/mtd/ubi/vmt.o
CC net/ipv4/datagram.o
CC mm/slub.o
CC net/ipv6/exthdrs_core.o
CC fs/proc/meminfo.o
CC drivers/mmc/core/pwrseq_simple.o
CC drivers/mmc/core/pwrseq_emmc.o
CC drivers/mtd/mtdsuper.o
CC drivers/mtd/mtdconcat.o
CC [M] drivers/mtd/nand/raw/nand_toshiba.o
CC [M] fs/squashfs/export.o
CC fs/proc/stat.o
CC net/core/net-traces.o
AR fs/lockd/built-in.a
CC [M] drivers/mtd/ubi/upd.o
CC kernel/smpboot.o
CC drivers/pci/pci.o
CC [M] drivers/mtd/ubi/build.o
CC fs/proc/uptime.o
CC drivers/pci/pci-driver.o
CC lib/decompress_inflate.o
CC drivers/mtd/mtdpart.o
CC drivers/mmc/core/block.o
CC [M] drivers/mtd/nand/raw/nand_ecc.o
CC drivers/mmc/core/queue.o
CC net/ipv4/raw.o
CC net/ipv6/ip6_checksum.o
CC lib/decompress_unlz4.o
CC fs/sysfs/file.o
CC fs/proc/util.o
CC fs/proc/version.o
CC [M] fs/squashfs/file.o
CC [M] fs/squashfs/fragment.o
CC kernel/ucount.o
CC [M] drivers/mtd/ubi/cdev.o
CC drivers/mtd/mtdchar.o
CC lib/decompress_unlzma.o
CC net/ipv4/udp.o
CC net/ipv4/udplite.o
CC fs/sysfs/dir.o
CC fs/sysfs/symlink.o
CC fs/sysfs/mount.o
CC net/core/dst_cache.o
CC net/core/gro_cells.o
CC lib/decompress_unlzo.o
CC fs/proc/softirqs.o
CC fs/nfs/write.o
CC [M] drivers/mtd/nand/raw/ndfc.o
CC drivers/mtd/ofpart.o
CC drivers/mtd/mtd_blkdevs.o
LD [M] fs/ext4/ext4.o
CC kernel/kmod.o
CC net/ipv4/udp_offload.o
CC fs/proc/namespaces.o
CC fs/sysfs/group.o
CC fs/proc/self.o
CC drivers/mtd/mtdblock.o
CC kernel/groups.o
CC lib/decompress_unxz.o
CC mm/migrate.o
CC mm/balloon_compaction.o
CC [M] fs/squashfs/id.o
CC fs/proc/thread_self.o
CC [M] fs/squashfs/inode.o
CC [M] fs/squashfs/namei.o
CC net/ipv6/ip6_icmp.o
CC drivers/pci/search.o
CC drivers/pci/pci-sysfs.o
CC [M] fs/squashfs/super.o
AR drivers/mtd/nand/raw/built-in.a
LD [M] drivers/mtd/nand/raw/nand.o
AR drivers/mtd/nand/built-in.a
AR fs/sysfs/built-in.a
CC [M] drivers/mtd/ubi/kapi.o
CC [M] drivers/mtd/ubi/eba.o
AR drivers/mmc/core/built-in.a
CC [M] drivers/mtd/ubi/io.o
AR drivers/mmc/built-in.a
CC mm/memfd.o
CC fs/tracefs/inode.o
CC lib/dump_stack.o
CC lib/earlycpio.o
CC drivers/pci/rom.o
CC fs/proc/proc_sysctl.o
CC [M] fs/squashfs/symlink.o
CC [M] fs/squashfs/decompressor.o
CC kernel/freezer.o
CC drivers/pci/setup-res.o
CC [M] fs/ubifs/shrinker.o
CC drivers/pci/irq.o
CC [M] fs/ubifs/journal.o
CC fs/nfs/namespace.o
CC lib/extable.o
AR net/core/built-in.a
CC net/ipv6/output_core.o
CC lib/fdt.o
CC [M] drivers/mtd/ubi/wl.o
CC fs/open.o
CC fs/nfs/mount_clnt.o
CC net/ipv4/arp.o
CC kernel/stacktrace.o
CC drivers/pci/vpd.o
CC [M] fs/squashfs/file_cache.o
CC lib/fdt_empty_tree.o
CC lib/fdt_ro.o
CC [M] fs/squashfs/decompressor_single.o
CC fs/read_write.o
AR fs/tracefs/built-in.a
CC [M] drivers/mtd/ubi/attach.o
CC net/ipv6/protocol.o
CC net/ipv6/ip6_offload.o
CC net/ipv4/icmp.o
CC net/ipv6/tcpv6_offload.o
CC fs/nfs/nfstrace.o
CC [M] drivers/mtd/ubi/misc.o
CC [M] drivers/mtd/ubi/debug.o
CC fs/nfs/export.o
AR mm/built-in.a
CC fs/nfs/nfsroot.o
CC kernel/futex.o
CC lib/fdt_rw.o
CC fs/file_table.o
CC drivers/pci/setup-bus.o
CC lib/fdt_strerror.o
CC fs/super.o
CC [M] fs/ubifs/file.o
CC fs/nfs/sysctl.o
CC fs/char_dev.o
CC fs/stat.o
CC fs/exec.o
CC fs/proc/proc_net.o
CC net/ipv4/devinet.o
CC lib/fdt_sw.o
CC [M] fs/squashfs/xattr.o
CC [M] fs/squashfs/xattr_id.o
CC fs/nfs/nfs2super.o
CC [M] drivers/mtd/ubi/gluebi.o
CC net/ipv6/exthdrs_offload.o
CC lib/fdt_wip.o
CC [M] fs/ubifs/dir.o
CC fs/pipe.o
CC [M] fs/ubifs/super.o
CC fs/namei.o
CC fs/nfs/proc.o
CC net/ipv6/inet6_hashtables.o
CC net/ipv6/mcast_snoop.o
CC fs/fcntl.o
CC [M] fs/squashfs/lzo_wrapper.o
CC [M] fs/squashfs/zlib_wrapper.o
CC kernel/dma.o
CC kernel/up.o
CC net/ipv4/af_inet.o
CC fs/proc/kcore.o
CC fs/ioctl.o
LD [M] drivers/mtd/ubi/ubi.o
CC lib/flex_proportions.o
CC fs/proc/kmsg.o
CC net/ipv4/igmp.o
CC fs/nfs/nfs2xdr.o
CC kernel/module.o
CC fs/readdir.o
CC [M] fs/ubifs/sb.o
CC net/ipv4/fib_frontend.o
CC lib/idr.o
CC drivers/pci/vc.o
CC fs/proc/page.o
CC fs/nfs/nfs3super.o
CC fs/nfs/nfs3client.o
CC drivers/pci/mmap.o
AR drivers/mtd/built-in.a
CC fs/nfs/nfs3proc.o
LD [M] fs/squashfs/squashfs.o
CC lib/ioremap.o
CC kernel/kallsyms.o
CC lib/irq_regs.o
CC net/ipv4/fib_semantics.o
CC fs/select.o
CC lib/is_single_threaded.o
CC kernel/crash_core.o
AR drivers/ptp/built-in.a
CC fs/nfs/nfs3xdr.o
CC fs/dcache.o
CC fs/inode.o
CC fs/attr.o
CC [M] fs/ubifs/io.o
CC [M] fs/ubifs/tnc.o
CC fs/bad_inode.o
CC lib/klist.o
AR drivers/pwm/built-in.a
CC kernel/hung_task.o
CC fs/file.o
CC drivers/rtc/lib.o
AR net/ipv6/built-in.a
CC drivers/scsi/megaraid/megaraid_sas_base.o
CC drivers/scsi/megaraid/megaraid_sas_fusion.o
CC drivers/pci/setup-irq.o
CC drivers/scsi/sym53c8xx_2/sym_fw.o
AR drivers/soc/amlogic/built-in.a
AR fs/proc/built-in.a
AR drivers/soc/bcm/built-in.a
CC drivers/scsi/megaraid/megaraid_sas_fp.o
AR drivers/tty/ipwireless/built-in.a
CC lib/kobject.o
CC drivers/tty/serial/8250/8250_core.o
CC drivers/scsi/sym53c8xx_2/sym_glue.o
AR drivers/tty/vt/built-in.a
CC drivers/tty/serial/serial_core.o
CC drivers/tty/serial/earlycon.o
CC kernel/seccomp.o
CC net/ipv4/fib_trie.o
CC kernel/utsname_sysctl.o
CC drivers/scsi/sym53c8xx_2/sym_hipd.o
CC [M] fs/ubifs/master.o
AR drivers/rtc/built-in.a
CC drivers/scsi/sym53c8xx_2/sym_malloc.o
CC drivers/scsi/scsi.o
CC net/ipv4/fib_notifier.o
CC drivers/usb/common/common.o
CC drivers/pci/proc.o
CC net/ipv4/inet_fragment.o
CC kernel/tracepoint.o
CC drivers/usb/core/usb.o
CC drivers/usb/core/hub.o
CC net/ipv4/ping.o
AR drivers/soc/fsl/built-in.a
CC drivers/tty/serial/8250/8250_port.o
CC net/ipv4/ip_tunnel_core.o
AR drivers/soc/mediatek/built-in.a
/home/nathan/cbl/linux-next/fs/select.c:619:5: warning: stack frame size of 1040 bytes in function 'core_sys_select' [-Wframe-larger-than=]
int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
^
1 warning generated.
AR drivers/soc/qcom/built-in.a
CC kernel/elfcore.o
AR drivers/soc/sunxi/built-in.a
AR drivers/soc/renesas/built-in.a
AR drivers/soc/xilinx/built-in.a
CC drivers/tty/serial/uartlite.o
AR drivers/soc/built-in.a
CC lib/kobject_uevent.o
CC net/ipv4/gre_offload.o
CC kernel/irq_work.o
CC drivers/tty/serial/8250/8250_early.o
CC drivers/scsi/sym53c8xx_2/sym_nvram.o
CC net/ipv4/metrics.o
CC drivers/tty/serial/8250/8250_fsl.o
CC [M] fs/ubifs/scan.o
AR fs/nfs/built-in.a
AR drivers/usb/common/built-in.a
CC drivers/tty/serial/8250/8250_of.o
CC kernel/iomem.o
CC kernel/rseq.o
CC drivers/pci/slot.o
CC drivers/pci/of.o
CC [M] fs/ubifs/replay.o
AR drivers/video/backlight/built-in.a
CC drivers/virtio/virtio.o
CC [M] drivers/video/backlight/lcd.o
CC drivers/video/fbdev/core/fb_cmdline.o
CC [M] drivers/video/backlight/backlight.o
CC drivers/scsi/hosts.o
CC drivers/virtio/virtio_ring.o
CC drivers/scsi/scsi_ioctl.o
CC drivers/scsi/scsicam.o
CC drivers/tty/tty_io.o
CC fs/filesystems.o
CC lib/memcat_p.o
CC drivers/usb/core/hcd.o
CC [M] fs/ubifs/log.o
CC [M] fs/ubifs/commit.o
CC drivers/usb/core/urb.o
CC net/ipv4/netlink.o
CC fs/namespace.o
AR drivers/tty/serial/8250/built-in.a
AR drivers/tty/serial/built-in.a
CC drivers/video/fbdev/core/fb_notify.o
CC [M] drivers/video/backlight/generic_bl.o
AR kernel/built-in.a
CC drivers/scsi/scsi_error.o
CC drivers/pci/quirks.o
CC drivers/pci/msi.o
CC drivers/pci/syscall.o
CC drivers/scsi/scsi_lib.o
CC [M] fs/ubifs/gc.o
CC drivers/scsi/scsi_lib_dma.o
CC drivers/scsi/scsi_scan.o
CC lib/nmi_backtrace.o
CC lib/nodemask.o
CC net/ipv4/ip_tunnel.o
GEN drivers/scsi/scsi_devinfo_tbl.c
CC fs/seq_file.o
CC drivers/scsi/scsi_devinfo.o
CC fs/xattr.o
CC [M] drivers/video/fbdev/core/fbmem.o
CC [M] drivers/video/fbdev/core/fbmon.o
AR drivers/scsi/sym53c8xx_2/built-in.a
AR drivers/scsi/megaraid/built-in.a
CC fs/libfs.o
CC fs/fs-writeback.o
CC drivers/tty/n_tty.o
CC fs/pnode.o
CC [M] fs/ubifs/orphan.o
CC [M] fs/ubifs/budget.o
CC drivers/usb/core/message.o
CC net/ipv4/sysctl_net_ipv4.o
CC fs/splice.o
CC drivers/usb/core/driver.o
CC lib/plist.o
CC drivers/usb/core/config.o
CC drivers/tty/tty_ioctl.o
CC lib/radix-tree.o
CC drivers/tty/tty_ldisc.o
CC [M] fs/ubifs/find.o
CC [M] fs/ubifs/tnc_commit.o
CC net/ipv4/proc.o
CC lib/ratelimit.o
CC drivers/virtio/virtio_mmio.o
CC drivers/virtio/virtio_pci_modern.o
CC drivers/virtio/virtio_pci_common.o
CC drivers/virtio/virtio_pci_legacy.o
AR drivers/pci/built-in.a
CC net/ipv4/tunnel4.o
CC [M] drivers/video/fbdev/core/fbcmap.o
CC fs/sync.o
CC fs/utimes.o
CC lib/rbtree.o
CC drivers/scsi/scsi_sysctl.o
CC drivers/usb/core/file.o
CC drivers/usb/core/buffer.o
CC [M] drivers/video/fbdev/core/fbsysfs.o
CC fs/d_path.o
CC drivers/tty/tty_buffer.o
CC drivers/virtio/virtio_balloon.o
CC fs/stack.o
CC lib/seq_buf.o
CC [M] fs/ubifs/compress.o
CC [M] fs/ubifs/lpt.o
CC drivers/tty/tty_port.o
CC drivers/tty/tty_mutex.o
CC drivers/tty/tty_ldsem.o
CC drivers/tty/tty_baudrate.o
CC net/ipv4/inet_diag.o
CC net/ipv4/ipconfig.o
CC lib/sha1.o
CC lib/show_mem.o
CC drivers/scsi/scsi_proc.o
CC drivers/scsi/scsi_debugfs.o
CC lib/siphash.o
CC lib/string.o
CC [M] drivers/video/fbdev/core/modedb.o
CC drivers/scsi/scsi_trace.o
AR drivers/video/fbdev/omap2/omapfb/displays/built-in.a
CC drivers/usb/core/sysfs.o
CC drivers/usb/core/endpoint.o
AR drivers/video/fbdev/omap2/omapfb/dss/built-in.a
AR drivers/video/fbdev/omap2/omapfb/built-in.a
CC [M] fs/ubifs/lprops.o
CC drivers/tty/tty_jobctrl.o
CC drivers/usb/core/devio.o
AR drivers/video/fbdev/omap2/built-in.a
CC fs/fs_struct.o
CC fs/statfs.o
CC net/ipv4/tcp_diag.o
CC fs/fs_pin.o
CC lib/timerqueue.o
CC lib/vsprintf.o
CC net/ipv4/tcp_cubic.o
CC [M] drivers/video/fbdev/core/fbcvt.o
CC drivers/usb/host/pci-quirks.o
CC drivers/tty/n_null.o
CC fs/nsfs.o
CC fs/fs_types.o
CC drivers/usb/core/notify.o
CC drivers/usb/misc/usbtest.o
CC drivers/usb/misc/ehset.o
CC lib/win_minmax.o
CC drivers/scsi/scsi_logging.o
CC lib/xarray.o
CC drivers/usb/core/generic.o
CC [M] lib/crc16.o
AR drivers/virtio/built-in.a
CC [M] lib/crc-t10dif.o
CC drivers/scsi/scsi_pm.o
CC drivers/scsi/scsi_common.o
CC [M] drivers/video/fbdev/core/cfbfillrect.o
CC drivers/usb/phy/of.o
CC drivers/usb/storage/uas.o
CC drivers/usb/misc/lvstest.o
CC [M] fs/ubifs/recovery.o
CC [M] drivers/video/fbdev/core/cfbcopyarea.o
CC drivers/tty/pty.o
CC drivers/usb/storage/scsiglue.o
CC drivers/tty/sysrq.o
CC drivers/scsi/scsi_transport_spi.o
CC [M] drivers/video/fbdev/core/cfbimgblt.o
CC drivers/scsi/scsi_transport_sas.o
GEN lib/crc32table.h
AR drivers/video/fbdev/core/built-in.a
CC drivers/scsi/dc395x.o
LD [M] drivers/video/fbdev/core/fb.o
CC [M] drivers/video/fbdev/xilinxfb.o
CC drivers/usb/core/quirks.o
CC lib/crc32.o
CC fs/fs_context.o
CC drivers/usb/core/devices.o
CC drivers/usb/host/ehci-hcd.o
CC drivers/usb/core/phy.o
CC drivers/usb/core/port.o
CC drivers/usb/host/ehci-pci.o
CC [M] fs/ubifs/ioctl.o
CC drivers/scsi/esp_scsi.o
CC drivers/usb/storage/protocol.o
CC drivers/scsi/am53c974.o
CC drivers/scsi/virtio_scsi.o
AR drivers/usb/phy/built-in.a
CC drivers/scsi/sd.o
CC [M] fs/ubifs/lpt_commit.o
CC drivers/scsi/scsi_sysfs.o
CC drivers/usb/storage/transport.o
CC drivers/usb/core/of.o
AR net/ipv4/built-in.a
AR net/built-in.a
CC drivers/usb/core/hcd-pci.o
CC drivers/usb/storage/usb.o
CC drivers/usb/host/ohci-hcd.o
CC drivers/usb/host/xhci.o
CC [M] fs/ubifs/tnc_misc.o
AR drivers/video/fbdev/built-in.a
AR drivers/tty/built-in.a
AR drivers/usb/misc/built-in.a
AR drivers/video/built-in.a
CC drivers/usb/storage/initializers.o
CC drivers/usb/storage/sierra_ms.o
CC drivers/usb/host/xhci-mem.o
CC fs/fs_parser.o
CC drivers/usb/storage/option_ms.o
CC fs/fsopen.o
CC [M] fs/ubifs/debug.o
CC fs/buffer.o
CC drivers/usb/storage/usual-tables.o
CC [M] fs/ubifs/misc.o
CC [M] fs/ubifs/xattr.o
CC drivers/usb/host/xhci-ext-caps.o
CC fs/block_dev.o
CC drivers/usb/host/xhci-ring.o
CC drivers/usb/host/xhci-hub.o
CC drivers/usb/host/xhci-dbg.o
CC fs/direct-io.o
CC fs/mpage.o
CC fs/proc_namespace.o
AR drivers/usb/core/built-in.a
CC fs/eventpoll.o
CC drivers/usb/host/xhci-trace.o
CC fs/anon_inodes.o
CC drivers/usb/host/xhci-debugfs.o
CC fs/signalfd.o
AR lib/lib.a
EXPORTS lib/lib-ksyms.o
CC fs/timerfd.o
CC fs/eventfd.o
AR lib/built-in.a
CC fs/aio.o
AR drivers/usb/storage/built-in.a
CC drivers/usb/host/xhci-pci.o
CC fs/io_uring.o
CC fs/locks.o
CC fs/binfmt_script.o
CC fs/binfmt_elf.o
CC fs/coredump.o
CC fs/drop_caches.o
CC fs/fhandle.o
CC fs/iomap.o
CC [M] fs/mbcache.o
AR drivers/scsi/built-in.a
LD [M] fs/ubifs/ubifs.o
AR drivers/usb/host/built-in.a
AR drivers/usb/built-in.a
AR drivers/built-in.a
AR fs/built-in.a
GEN .version
CHK include/generated/compile.h
LD vmlinux.o
MODPOST vmlinux.o
MODINFO modules.builtin.modinfo
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
Building modules, stage 2.
BOOTCC arch/powerpc/boot/4xx.o
BOOTAS arch/powerpc/boot/crtsavres.o
COPY arch/powerpc/boot/zlib.h
BOOTCC arch/powerpc/boot/bamboo.o
BOOTAS arch/powerpc/boot/crt0.o
BOOTCC arch/powerpc/boot/cuboot.o
COPY arch/powerpc/boot/zconf.h
COPY arch/powerpc/boot/zutil.h
COPY arch/powerpc/boot/inflate.h
COPY arch/powerpc/boot/inffixed.h
COPY arch/powerpc/boot/inftrees.h
COPY arch/powerpc/boot/inffast.h
BOOTCC arch/powerpc/boot/ebony.o
BOOTCC arch/powerpc/boot/devtree.o
COPY arch/powerpc/boot/infutil.h
BOOTAS arch/powerpc/boot/div64.o
COPY arch/powerpc/boot/libfdt_internal.h
COPY arch/powerpc/boot/fdt.h
BOOTCC arch/powerpc/boot/elf_util.o
COPY arch/powerpc/boot/libfdt.h
BOOTCC arch/powerpc/boot/main.o
BOOTCC arch/powerpc/boot/ofconsole.o
BOOTCC arch/powerpc/boot/oflib.o
BOOTCC arch/powerpc/boot/ns16550.o
MODPOST 52 modules
BOOTCC arch/powerpc/boot/simple_alloc.o
BOOTCC arch/powerpc/boot/stdlib.o
BOOTCC arch/powerpc/boot/stdio.o
BOOTAS arch/powerpc/boot/string.o
BOOTAS arch/powerpc/boot/util.o
BOOTCC arch/powerpc/boot/uartlite.o
BOOTCC arch/powerpc/boot/cuboot-bamboo.o
BOOTCC arch/powerpc/boot/cuboot-ebony.o
BOOTCC arch/powerpc/boot/cuboot-katmai.o
BOOTCC arch/powerpc/boot/cuboot-rainier.o
BOOTCC arch/powerpc/boot/cuboot-sam440ep.o
BOOTCC arch/powerpc/boot/cuboot-sequoia.o
BOOTCC arch/powerpc/boot/cuboot-taishan.o
BOOTCC arch/powerpc/boot/cuboot-warp.o
BOOTCC arch/powerpc/boot/cuboot-yosemite.o
BOOTCC arch/powerpc/boot/epapr.o
BOOTAS arch/powerpc/boot/fixed-head.o
BOOTCC arch/powerpc/boot/of.o
BOOTCC arch/powerpc/boot/simpleboot.o
BOOTCC arch/powerpc/boot/treeboot-akebono.o
BOOTCC arch/powerpc/boot/treeboot-bamboo.o
BOOTCC arch/powerpc/boot/treeboot-ebony.o
BOOTCC arch/powerpc/boot/treeboot-currituck.o
BOOTCC arch/powerpc/boot/treeboot-iss4xx.o
BOOTCC arch/powerpc/boot/virtex.o
LDS arch/powerpc/boot/zImage.lds
HOSTCC arch/powerpc/boot/addnote
HOSTCC arch/powerpc/boot/hack-coff
HOSTCC arch/powerpc/boot/mktree
DTC arch/powerpc/boot/dts/ebony.dtb
COPY arch/powerpc/boot/inflate.c
COPY arch/powerpc/boot/inffast.c
COPY arch/powerpc/boot/inftrees.c
COPY arch/powerpc/boot/fdt.c
COPY arch/powerpc/boot/fdt_ro.c
COPY arch/powerpc/boot/fdt_strerror.c
COPY arch/powerpc/boot/fdt_rw.c
COPY arch/powerpc/boot/fdt_sw.c
COPY arch/powerpc/boot/fdt_wip.c
/home/nathan/cbl/linux-next/arch/powerpc/boot/main.c:111:18: warning: array comparison always evaluates to a constant [-Wtautological-compare]
if (_initrd_end > _initrd_start) {
^
1 warning generated.
BOOTCC arch/powerpc/boot/inflate.o
BOOTCC arch/powerpc/boot/inffast.o
COPY arch/powerpc/boot/decompress_inflate.c
BOOTCC arch/powerpc/boot/empty.o
BOOTCC arch/powerpc/boot/libfdt-wrapper.o
BOOTCC arch/powerpc/boot/inftrees.o
BOOTCC arch/powerpc/boot/fdt.o
BOOTCC arch/powerpc/boot/fdt_rw.o
CC crypto/crc32c_generic.mod.o
BOOTCC arch/powerpc/boot/fdt_ro.o
CC crypto/crct10dif_common.mod.o
BOOTCC arch/powerpc/boot/fdt_strerror.o
CC crypto/crct10dif_generic.mod.o
CC crypto/deflate.mod.o
BOOTCC arch/powerpc/boot/fdt_wip.o
CC crypto/drbg.mod.o
BOOTCC arch/powerpc/boot/fdt_sw.o
CC crypto/echainiv.mod.o
CC crypto/hmac.mod.o
BOOTCC arch/powerpc/boot/serial.o
CC crypto/jitterentropy_rng.mod.o
DTC arch/powerpc/boot/dts/bamboo.dtb
CC crypto/lzo-rle.mod.o
CC crypto/lzo.mod.o
CC crypto/sha256_generic.mod.o
CC drivers/char/xilinx_hwicap/xilinx_hwicap_m.mod.o
BOOTCC arch/powerpc/boot/decompress.o
CC drivers/block/xsysace.mod.o
CC drivers/i2c/algos/i2c-algo-bit.mod.o
DTC arch/powerpc/boot/dts/sam440ep.dtb
DTC arch/powerpc/boot/dts/sequoia.dtb
DTC arch/powerpc/boot/dts/taishan.dtb
DTC arch/powerpc/boot/dts/rainier.dtb
DTC arch/powerpc/boot/dts/katmai.dtb
CC drivers/i2c/busses/i2c-ibm_iic.mod.o
DTC arch/powerpc/boot/dts/warp.dtb
DTC arch/powerpc/boot/dts/yosemite.dtb
CC drivers/i2c/i2c-core.mod.o
CC drivers/i2c/busses/i2c-gpio.mod.o
CC drivers/i2c/i2c-dev.mod.o
CC drivers/input/serio/xilinx_ps2.mod.o
CC drivers/mtd/nand/nandcore.mod.o
CC drivers/input/serio/serio.mod.o
CC drivers/mtd/nand/raw/nand.mod.o
CC drivers/mtd/nand/raw/nand_ecc.mod.o
CC drivers/mtd/nand/raw/ndfc.mod.o
CC drivers/mtd/ubi/gluebi.mod.o
CC drivers/mtd/ubi/ubi.mod.o
CC drivers/net/tun.mod.o
CC drivers/video/backlight/backlight.mod.o
/home/nathan/cbl/linux-next/arch/powerpc/boot/dts/katmai.dts:322.26-361.5: Warning (pci_bridge): /plb/pciex@d00000000: node name is not "pci" or "pcie"
/home/nathan/cbl/linux-next/arch/powerpc/boot/dts/katmai.dts:363.26-402.5: Warning (pci_bridge): /plb/pciex@d20000000: node name is not "pci" or "pcie"
/home/nathan/cbl/linux-next/arch/powerpc/boot/dts/katmai.dts:404.26-443.5: Warning (pci_bridge): /plb/pciex@d40000000: node name is not "pci" or "pcie"
arch/powerpc/boot/dts/katmai.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge'
CC drivers/video/backlight/generic_bl.mod.o
CC drivers/video/backlight/lcd.mod.o
CC drivers/video/fbdev/core/cfbcopyarea.mod.o
CC drivers/video/fbdev/core/cfbfillrect.mod.o
CC drivers/video/fbdev/core/cfbimgblt.mod.o
CC drivers/video/fbdev/xilinxfb.mod.o
CC drivers/video/fbdev/core/fb.mod.o
CC fs/fat/fat.mod.o
CC fs/ext4/ext4.mod.o
CC fs/fat/vfat.mod.o
CC fs/jbd2/jbd2.mod.o
CC fs/mbcache.mod.o
CC fs/nls/nls_cp437.mod.o
CC fs/nls/nls_iso8859-1.mod.o
CC fs/squashfs/squashfs.mod.o
CC fs/ubifs/ubifs.mod.o
CC lib/crc-t10dif.mod.o
CC lib/crc16.mod.o
CC lib/lzo/lzo_compress.mod.o
CC net/802/p8022.mod.o
CC net/802/psnap.mod.o
CC net/802/stp.mod.o
CC net/llc/llc.mod.o
CC net/bridge/bridge.mod.o
LD [M] crypto/crc32c_generic.ko
LD [M] crypto/crct10dif_common.ko
LD [M] crypto/crct10dif_generic.ko
LD [M] crypto/deflate.ko
LD [M] crypto/drbg.ko
LD [M] crypto/echainiv.ko
LD [M] crypto/hmac.ko
LD [M] crypto/jitterentropy_rng.ko
LD [M] crypto/lzo-rle.ko
LD [M] crypto/sha256_generic.ko
LD [M] drivers/block/xsysace.ko
LD [M] crypto/lzo.ko
LD [M] drivers/i2c/algos/i2c-algo-bit.ko
LD [M] drivers/char/xilinx_hwicap/xilinx_hwicap_m.ko
LD [M] drivers/i2c/busses/i2c-gpio.ko
LD [M] drivers/i2c/busses/i2c-ibm_iic.ko
LD [M] drivers/i2c/i2c-dev.ko
LD [M] drivers/i2c/i2c-core.ko
LD [M] drivers/input/serio/serio.ko
LD [M] drivers/input/serio/xilinx_ps2.ko
LD [M] drivers/mtd/nand/nandcore.ko
LD [M] drivers/mtd/nand/raw/nand.ko
LD [M] drivers/mtd/nand/raw/nand_ecc.ko
LD [M] drivers/mtd/nand/raw/ndfc.ko
LD [M] drivers/net/tun.ko
LD [M] drivers/mtd/ubi/ubi.ko
LD [M] drivers/mtd/ubi/gluebi.ko
LD [M] drivers/video/backlight/backlight.ko
LD [M] drivers/video/backlight/lcd.ko
LD [M] drivers/video/backlight/generic_bl.ko
LD [M] drivers/video/fbdev/core/cfbfillrect.ko
LD [M] drivers/video/fbdev/core/cfbcopyarea.ko
LD [M] drivers/video/fbdev/core/cfbimgblt.ko
LD [M] drivers/video/fbdev/core/fb.ko
LD [M] fs/ext4/ext4.ko
LD [M] fs/fat/vfat.ko
LD [M] fs/fat/fat.ko
LD [M] fs/mbcache.ko
LD [M] drivers/video/fbdev/xilinxfb.ko
LD [M] fs/jbd2/jbd2.ko
LD [M] fs/nls/nls_cp437.ko
LD [M] fs/squashfs/squashfs.ko
BOOTAR arch/powerpc/boot/wrapper.a
LD [M] fs/nls/nls_iso8859-1.ko
WRAP arch/powerpc/boot/uImage
WRAP arch/powerpc/boot/cuImage.ebony
WRAP arch/powerpc/boot/treeImage.ebony
WRAP arch/powerpc/boot/cuImage.bamboo
WRAP arch/powerpc/boot/treeImage.bamboo
WRAP arch/powerpc/boot/cuImage.sequoia
WRAP arch/powerpc/boot/cuImage.sam440ep
WRAP arch/powerpc/boot/cuImage.rainier
WRAP arch/powerpc/boot/cuImage.katmai
WRAP arch/powerpc/boot/cuImage.warp
WRAP arch/powerpc/boot/cuImage.yosemite
WRAP arch/powerpc/boot/cuImage.taishan
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
LD [M] net/802/psnap.ko
LD [M] lib/crc16.ko
LD [M] net/802/stp.ko
LD [M] lib/lzo/lzo_compress.ko
LD [M] lib/crc-t10dif.ko
LD [M] net/802/p8022.ko
LD [M] net/bridge/bridge.ko
LD [M] fs/ubifs/ubifs.ko
LD [M] net/llc/llc.ko
INFO: Uncompressed kernel (size 0x8ffec8) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0x900000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
INFO: Uncompressed kernel (size 0x91062c) overlaps the address of the wrapper(0x400000)
INFO: Fixing the link_address of wrapper to (0xa00000)
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4113049 Bytes = 4016.65 KiB = 3.92 MiB
Load Address: 00000000
Entry Point: 00000000
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4146457 Bytes = 4049.27 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a017b8
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4146866 Bytes = 4049.67 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a017ac
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4145900 Bytes = 4048.73 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a001bc
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4147203 Bytes = 4050.00 KiB = 3.96 MiB
Load Address: 00a00000
Entry Point: 00a017a0
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4147289 Bytes = 4050.09 KiB = 3.96 MiB
Load Address: 00a00000
Entry Point: 00a000c8
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4146011 Bytes = 4048.84 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a017c4
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4147165 Bytes = 4049.97 KiB = 3.96 MiB
Load Address: 00a00000
Entry Point: 00a017c0
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4145956 Bytes = 4048.79 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a017c0
Image Name: Linux-5.2.0-rc2-00154-g6c5875843
Created: Mon Jul 8 11:46:56 2019
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4146974 Bytes = 4049.78 KiB = 3.95 MiB
Load Address: 00a00000
Entry Point: 00a017cc
make[1]: Leaving directory '/mnt/build/kernel'
real 44.888
user 15:49.83
sys 1:57.98
Linux version 5.2.0-rc2-00154-g6c5875843b87 (nathan@archlinux-threadripper) (ClangBuiltLinux clang version 9.0.0 (git://github.com/llvm/llvm-project b736969eddce563a7fd3fe10b8fe7adfd85c8692) (based on LLVM 9.0.0svn)) #1 Mon Jul 8 11:46:16 MST 2019
Found initrd at 0xc1900000:0xc1dff400
Using PowerPC 44x Platform machine description
printk: bootconsole [udbg0] enabled
-----------------------------------------------------
phys_mem_size = 0x8000000
dcache_bsize = 0x20
icache_bsize = 0x20
cpu_features = 0x0000000000000120
possible = 0x0000000040000120
always = 0x0000000000000020
cpu_user_features = 0x8c008000 0x00000000
mmu_features = 0x00000008
-----------------------------------------------------
Zone ranges:
Normal [mem 0x0000000000000000-0x0000000007ffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000000000000-0x0000000007ffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
MMU: Allocated 1088 bytes of context maps for 255 contexts
Built 1 zonelists, mobility grouping on. Total pages: 32448
Kernel command line: console=ttyS0
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 108588K/131072K available (6648K kernel code, 604K rwdata, 1576K rodata, 376K init, 6647K bss, 22484K reserved, 0K cma-reserved)
Kernel virtual memory layout:
* 0xfffdf000..0xfffff000 : fixmap
* 0xffddf000..0xfffdf000 : consistent mem
* 0xffddd000..0xffddf000 : early ioremap
* 0xd1000000..0xffddd000 : vmalloc & ioremap
SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Running RCU self tests
NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
UIC0 (32 IRQ sources) at DCR 0xc0
clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x5c4093a7d1, max_idle_ns: 440795210635 ns
clocksource: timebase mult[2800000] shift[24] registered
Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
... MAX_LOCKDEP_SUBCLASSES: 8
... MAX_LOCK_DEPTH: 48
... MAX_LOCKDEP_KEYS: 8191
... CLASSHASH_SIZE: 4096
... MAX_LOCKDEP_ENTRIES: 32768
... MAX_LOCKDEP_CHAINS: 65536
... CHAINHASH_SIZE: 32768
memory used by lock dependency info: 4411 kB
per task-struct memory footprint: 1536 bytes
------------------------
| Locking API testsuite:
----------------------------------------------------------------------------
| spin |wlock |rlock |mutex | wsem | rsem |
--------------------------------------------------------------------------
A-A deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-B-A deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-B-C-C-A deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-C-A-B-C deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-B-C-C-D-D-A deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-C-D-B-D-D-A deadlock: ok | ok | ok | ok | ok | ok | ok |
A-B-C-D-B-C-D-A deadlock: ok | ok | ok | ok | ok | ok | ok |
double unlock: ok | ok | ok | ok | ok | ok | ok |
initialize held: ok | ok | ok | ok | ok | ok | ok |
--------------------------------------------------------------------------
recursive read-lock: | ok | | ok |
recursive read-lock #2: | ok | | ok |
mixed read-write-lock: | ok | | ok |
mixed write-read-lock: | ok | | ok |
mixed read-lock/lock-write ABBA: |FAILED| | ok |
mixed read-lock/lock-read ABBA: | ok | | ok |
mixed write-lock/lock-write ABBA: | ok | | ok |
--------------------------------------------------------------------------
hard-irqs-on + irq-safe-A/12: ok | ok | ok |
soft-irqs-on + irq-safe-A/12: ok | ok | ok |
hard-irqs-on + irq-safe-A/21: ok | ok | ok |
soft-irqs-on + irq-safe-A/21: ok | ok | ok |
sirq-safe-A => hirqs-on/12: ok | ok | ok |
sirq-safe-A => hirqs-on/21: ok | ok | ok |
hard-safe-A + irqs-on/12: ok | ok | ok |
soft-safe-A + irqs-on/12: ok | ok | ok |
hard-safe-A + irqs-on/21: ok | ok | ok |
soft-safe-A + irqs-on/21: ok | ok | ok |
hard-safe-A + unsafe-B #1/123: ok | ok | ok |
soft-safe-A + unsafe-B #1/123: ok | ok | ok |
hard-safe-A + unsafe-B #1/132: ok | ok | ok |
soft-safe-A + unsafe-B #1/132: ok | ok | ok |
hard-safe-A + unsafe-B #1/213: ok | ok | ok |
soft-safe-A + unsafe-B #1/213: ok | ok | ok |
hard-safe-A + unsafe-B #1/231: ok | ok | ok |
soft-safe-A + unsafe-B #1/231: ok | ok | ok |
hard-safe-A + unsafe-B #1/312: ok | ok | ok |
soft-safe-A + unsafe-B #1/312: ok | ok | ok |
hard-safe-A + unsafe-B #1/321: ok | ok | ok |
soft-safe-A + unsafe-B #1/321: ok | ok | ok |
hard-safe-A + unsafe-B #2/123: ok | ok | ok |
soft-safe-A + unsafe-B #2/123: ok | ok | ok |
hard-safe-A + unsafe-B #2/132: ok | ok | ok |
soft-safe-A + unsafe-B #2/132: ok | ok | ok |
hard-safe-A + unsafe-B #2/213: ok | ok | ok |
soft-safe-A + unsafe-B #2/213: ok | ok | ok |
hard-safe-A + unsafe-B #2/231: ok | ok | ok |
soft-safe-A + unsafe-B #2/231: ok | ok | ok |
hard-safe-A + unsafe-B #2/312: ok | ok | ok |
soft-safe-A + unsafe-B #2/312: ok | ok | ok |
hard-safe-A + unsafe-B #2/321: ok | ok | ok |
soft-safe-A + unsafe-B #2/321: ok | ok | ok |
hard-irq lock-inversion/123: ok | ok | ok |
soft-irq lock-inversion/123: ok | ok | ok |
hard-irq lock-inversion/132: ok | ok | ok |
soft-irq lock-inversion/132: ok | ok | ok |
hard-irq lock-inversion/213: ok | ok | ok |
soft-irq lock-inversion/213: ok | ok | ok |
hard-irq lock-inversion/231: ok | ok | ok |
soft-irq lock-inversion/231: ok | ok | ok |
hard-irq lock-inversion/312: ok | ok | ok |
soft-irq lock-inversion/312: ok | ok | ok |
hard-irq lock-inversion/321: ok | ok | ok |
soft-irq lock-inversion/321: ok | ok | ok |
hard-irq read-recursion/123: ok |
soft-irq read-recursion/123: ok |
hard-irq read-recursion/132: ok |
soft-irq read-recursion/132: ok |
hard-irq read-recursion/213: ok |
soft-irq read-recursion/213: ok |
hard-irq read-recursion/231: ok |
soft-irq read-recursion/231: ok |
hard-irq read-recursion/312: ok |
soft-irq read-recursion/312: ok |
hard-irq read-recursion/321: ok |
soft-irq read-recursion/321: ok |
--------------------------------------------------------------------------
| Wound/wait tests |
---------------------
ww api failures: ok | ok | ok |
ww contexts mixing: ok | ok |
finishing ww context: ok | ok | ok | ok |
locking mismatches: ok | ok | ok |
EDEADLK handling: ok | ok | ok | ok | ok | ok | ok | ok | ok | ok |
spinlock nest unlocked: ok |
-----------------------------------------------------
|block | try |context|
-----------------------------------------------------
context: ok | ok | ok |
try: ok | ok | ok |
block: ok | ok | ok |
spinlock: ok | ok | ok |
-------------------------------------------------------
Good, all 261 testcases passed! |
---------------------------------
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
*** VALIDATE proc ***
devtmpfs: initialized
random: get_random_u32 called from rhashtable_init+0x29c/0x330 with crng_init=0
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
futex hash table entries: 256 (order: 1, 11264 bytes)
NET: Registered protocol family 16
PCI host bridge /plb/pci@ec000000 (primary) ranges:
MEM 0x00000000a0000000..0x00000000bfffffff -> 0x00000000a0000000
IO 0x00000000e8000000..0x00000000e800ffff -> 0x0000000000000000
4xx PCI DMA offset set to 0x00000000
4xx PCI DMA window base to 0x0000000000000000
DMA window size 0x0000000080000000
PCI: Probing PCI hardware
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
pci_bus 0000:00: root bus resource [mem 0xa0000000-0xbfffffff]
pci_bus 0000:00: root bus resource [bus 00-ff]
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
pci 0000:00:00.0: [1014:027f] type 00 class 0x068000
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
ppc4xx_pci_set_irq: PCI irq -1
PCI: Hiding 4xx host bridge resources 0000:00:00.0
pci 0000:00:01.0: [8086:100e] type 00 class 0x020000
pci 0000:00:01.0: reg 0x10: [mem 0x00000000-0x0001ffff]
pci 0000:00:01.0: reg 0x14: [io 0x0000-0x003f]
pci 0000:00:01.0: reg 0x30: [mem 0x00000000-0x0003ffff pref]
pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
pci 0000:00:01.0: BAR 6: assigned [mem 0xa0000000-0xa003ffff pref]
pci 0000:00:01.0: BAR 0: assigned [mem 0xa0040000-0xa005ffff]
pci 0000:00:01.0: BAR 1: assigned [io 0x1000-0x103f]
pci_bus 0000:00: resource 4 [io 0x0000-0xffff]
pci_bus 0000:00: resource 5 [mem 0xa0000000-0xbfffffff]
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource timebase
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 128 (order: 0, 5120 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 3, 36864 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 2, 20480 bytes)
UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 32
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 5116K
workingset: timestamp_bits=30 max_order=15 bucket_order=0
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
io scheduler mq-deadline registered
io scheduler kyber registered
String selftests succeeded
test_firmware: interface ready
test passed
test_bitmap: loaded.
test_bitmap: parselist: 14: input is '0-2047:128/256' OK, Time: 16340
test_bitmap: parselist_user: 14: input is '0-2047:128/256' OK, Time: 4600
test_bitmap: all 1652 tests passed
test_uuid: all 18 tests passed
crc32: CRC_LE_BITS = 64, CRC_BE BITS = 64
crc32: self tests passed, processed 225944 bytes in 468120 nsec
crc32c: CRC_LE_BITS = 64
crc32c: self tests passed, processed 225944 bytes in 241893 nsec
crc32_combine: 8373 self tests passed
crc32c_combine: 8373 self tests passed
glob: 64 self-tests passed, 0 failed
rbtree testing
-> test 1 (latency of nnodes insert+delete): 7020 cycles
-> test 2 (latency of nnodes cached insert+delete): 6975 cycles
-> test 3 (latency of inorder traversal): 1119 cycles
-> test 4 (latency to fetch first node)
non-cached: 25 cycles
cached: 0 cycles
augmented rbtree testing
-> test 1 (latency of nnodes insert+delete): 10961 cycles
-> test 2 (latency of nnodes cached insert+delete): 9407 cycles
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
printk: console [ttyS0] disabled
serial8250.0: ttyS0 at MMIO 0xef600300 (irq = 16, base_baud = 691200) is a 16550A
printk: console [ttyS0] enabled
printk: console [ttyS0] enabled
printk: bootconsole [udbg0] disabled
printk: bootconsole [udbg0] disabled
printk: console [ttyS0] disabled
printk: console [ttyS0] enabled
ef600400.serial: ttyS1 at MMIO 0xef600400 (irq = 17, base_baud = 691200) is a 16550
brd: module loaded
megasas: 07.707.51.00-rc1
libphy: Fixed MDIO Bus: probed
PPC 4xx OCP EMAC driver, version 3.54
ZMII /plb/opb/emac-zmii@ef600d00 initialized
Fusion MPT base driver 3.04.20
Copyright (c) 1999-2008 LSI Corporation
Fusion MPT SAS Host driver 3.04.20
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
usbcore: registered new interface driver uas
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbtest
usbcore: registered new interface driver usb_ehset_test
usbcore: registered new interface driver lvs
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
drmem: No dynamic reconfiguration memory found
Freeing unused kernel memory: 376K
This architecture does not have kernel memory protection.
Run /init as init process
init[1]: segfault (11) at b7bcc6f4 nip b7b59d0c lr b7b59cc0 code 2 in libuClibc-1.0.30.so[b7b14000+89000]
init[1]: code: 83bf002c 3b3c0010 813d0004 5529003a 7f994840 419d03f8 7d5de214 63880001
init[1]: code: 7f9c4850 915f002c 639c0001 911d0004 <938a0004> 4800007c 7f99e040 419c0034
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
CPU: 0 PID: 1 Comm: init Not tainted 5.2.0-rc2-00154-g6c5875843b87 #1
Call Trace:
[c7839d48] [c0657944] dump_stack+0x24/0x34 (unreliable)
[c7839d58] [c003a024] panic+0x160/0x390
[c7839db8] [c003d0f8] exit_mm+0x0/0x1f0
[c7839e08] [c003d3c0] do_group_exit+0x9c/0xb0
[c7839e28] [c004c370] get_signal+0x85c/0xa34
[c7839ec8] [c0009120] do_notify_resume+0xd8/0x300
[c7839f38] [c000f97c] do_user_signal+0x2c/0x34
--- interrupt: 300 at 0xb7b59d0c
LR = 0xb7b59cc0
Rebooting in 180 seconds..
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-08 19:14 ` Nathan Chancellor
@ 2019-07-09 5:04 ` Christophe Leroy
2019-07-09 6:49 ` Nathan Chancellor
2019-07-09 13:35 ` [PATCH v2] powerpc: slightly improve cache helpers Segher Boessenkool
0 siblings, 2 replies; 22+ messages in thread
From: Christophe Leroy @ 2019-07-09 5:04 UTC (permalink / raw)
To: Nathan Chancellor, Michael Ellerman, Segher Boessenkool
Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev,
linux-kernel, clang-built-linux
Le 08/07/2019 à 21:14, Nathan Chancellor a écrit :
> On Mon, Jul 08, 2019 at 11:19:30AM +1000, Michael Ellerman wrote:
>> On Fri, 2019-05-10 at 09:24:48 UTC, Christophe Leroy wrote:
>>> Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
>>> that are summed to obtain the target address. Using 'Z' constraint
>>> and '%y0' argument gives GCC the opportunity to use both registers
>>> instead of only one with the second being forced to 0.
>>>
>>> Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
>>> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
>>
>> Applied to powerpc next, thanks.
>>
>> https://git.kernel.org/powerpc/c/6c5875843b87c3adea2beade9d1b8b3d4523900a
>>
>> cheers
>
> This patch causes a regression with clang:
Is that a Clang bug ?
Do you have a disassembly of the code both with and without this patch
in order to compare ?
Segher, any idea ?
Christophe
>
> https://travis-ci.com/ClangBuiltLinux/continuous-integration/jobs/213944668
>
> I've attached my local bisect/build log.
>
> Cheers,
> Nathan
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-09 5:04 ` Christophe Leroy
@ 2019-07-09 6:49 ` Nathan Chancellor
2019-07-19 3:24 ` Nathan Chancellor
2019-07-09 13:35 ` [PATCH v2] powerpc: slightly improve cache helpers Segher Boessenkool
1 sibling, 1 reply; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-09 6:49 UTC (permalink / raw)
To: Christophe Leroy
Cc: Michael Ellerman, Segher Boessenkool, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
>
>
> Le 08/07/2019 à 21:14, Nathan Chancellor a écrit :
> > On Mon, Jul 08, 2019 at 11:19:30AM +1000, Michael Ellerman wrote:
> > > On Fri, 2019-05-10 at 09:24:48 UTC, Christophe Leroy wrote:
> > > > Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
> > > > that are summed to obtain the target address. Using 'Z' constraint
> > > > and '%y0' argument gives GCC the opportunity to use both registers
> > > > instead of only one with the second being forced to 0.
> > > >
> > > > Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
> > > > Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> > >
> > > Applied to powerpc next, thanks.
> > >
> > > https://git.kernel.org/powerpc/c/6c5875843b87c3adea2beade9d1b8b3d4523900a
> > >
> > > cheers
> >
> > This patch causes a regression with clang:
>
> Is that a Clang bug ?
No idea, it happens with clang-8 and clang-9 though (pretty sure there
were fixes for PowerPC in clang-8 so something before it probably won't
work but I haven't tried).
>
> Do you have a disassembly of the code both with and without this patch in
> order to compare ?
I can give you whatever disassembly you want (or I can upload the raw
files if that is easier).
Cheers,
Nathan
>
> Segher, any idea ?
>
> Christophe
>
> >
> > https://travis-ci.com/ClangBuiltLinux/continuous-integration/jobs/213944668
> >
> > I've attached my local bisect/build log.
> >
> > Cheers,
> > Nathan
> >
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-09 5:04 ` Christophe Leroy
2019-07-09 6:49 ` Nathan Chancellor
@ 2019-07-09 13:35 ` Segher Boessenkool
1 sibling, 0 replies; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-09 13:35 UTC (permalink / raw)
To: Christophe Leroy
Cc: Nathan Chancellor, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
> Le 08/07/2019 à 21:14, Nathan Chancellor a écrit :
> >On Mon, Jul 08, 2019 at 11:19:30AM +1000, Michael Ellerman wrote:
> >>On Fri, 2019-05-10 at 09:24:48 UTC, Christophe Leroy wrote:
> >>>Cache instructions (dcbz, dcbi, dcbf and dcbst) take two registers
> >>>that are summed to obtain the target address. Using 'Z' constraint
> >>>and '%y0' argument gives GCC the opportunity to use both registers
> >>>instead of only one with the second being forced to 0.
> >>>
> >>>Suggested-by: Segher Boessenkool <segher@kernel.crashing.org>
> >>>Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> >>
> >>Applied to powerpc next, thanks.
> >>
> >>https://git.kernel.org/powerpc/c/6c5875843b87c3adea2beade9d1b8b3d4523900a
> >>
> >>cheers
> >
> >This patch causes a regression with clang:
>
> Is that a Clang bug ?
I would think so, but cannot tell from the given information.
> Do you have a disassembly of the code both with and without this patch
> in order to compare ?
That's what we need to start debugging this, yup.
> Segher, any idea ?
There is nothing I recognise, no.
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-09 6:49 ` Nathan Chancellor
@ 2019-07-19 3:24 ` Nathan Chancellor
2019-07-19 15:23 ` Segher Boessenkool
0 siblings, 1 reply; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-19 3:24 UTC (permalink / raw)
To: Christophe Leroy
Cc: Michael Ellerman, Segher Boessenkool, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Mon, Jul 08, 2019 at 11:49:52PM -0700, Nathan Chancellor wrote:
> On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
> > Is that a Clang bug ?
>
> No idea, it happens with clang-8 and clang-9 though (pretty sure there
> were fixes for PowerPC in clang-8 so something before it probably won't
> work but I haven't tried).
>
> >
> > Do you have a disassembly of the code both with and without this patch in
> > order to compare ?
>
> I can give you whatever disassembly you want (or I can upload the raw
> files if that is easier).
>
> Cheers,
> Nathan
Hi Christophe and Segher,
What disassembly/files did you need to start taking a look at this? I
can upload/send whatever you need.
If it is easier, we have a self contained clang build script available
to make it easier to reproduce this on your side (does assume an x86_64
host):
https://github.com/ClangBuiltLinux/tc-build
Cheers,
Nathan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-19 3:24 ` Nathan Chancellor
@ 2019-07-19 15:23 ` Segher Boessenkool
2019-07-19 16:04 ` Nathan Chancellor
0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-19 15:23 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Thu, Jul 18, 2019 at 08:24:56PM -0700, Nathan Chancellor wrote:
> On Mon, Jul 08, 2019 at 11:49:52PM -0700, Nathan Chancellor wrote:
> > On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
> > > Is that a Clang bug ?
> >
> > No idea, it happens with clang-8 and clang-9 though (pretty sure there
> > were fixes for PowerPC in clang-8 so something before it probably won't
> > work but I haven't tried).
> >
> > >
> > > Do you have a disassembly of the code both with and without this patch in
> > > order to compare ?
> >
> > I can give you whatever disassembly you want (or I can upload the raw
> > files if that is easier).
>
> What disassembly/files did you need to start taking a look at this? I
> can upload/send whatever you need.
A before and after of *only this patch*. And then look at what changed;
it maybe be obvious what is the problem to you, as well, so look at it
yourself first?
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-19 15:23 ` Segher Boessenkool
@ 2019-07-19 16:04 ` Nathan Chancellor
2019-07-21 7:58 ` Nathan Chancellor
0 siblings, 1 reply; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-19 16:04 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Fri, Jul 19, 2019 at 10:23:03AM -0500, Segher Boessenkool wrote:
> On Thu, Jul 18, 2019 at 08:24:56PM -0700, Nathan Chancellor wrote:
> > On Mon, Jul 08, 2019 at 11:49:52PM -0700, Nathan Chancellor wrote:
> > > On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
> > > > Is that a Clang bug ?
> > >
> > > No idea, it happens with clang-8 and clang-9 though (pretty sure there
> > > were fixes for PowerPC in clang-8 so something before it probably won't
> > > work but I haven't tried).
> > >
> > > >
> > > > Do you have a disassembly of the code both with and without this patch in
> > > > order to compare ?
> > >
> > > I can give you whatever disassembly you want (or I can upload the raw
> > > files if that is easier).
> >
> > What disassembly/files did you need to start taking a look at this? I
> > can upload/send whatever you need.
>
> A before and after of *only this patch*. And then look at what changed;
> it maybe be obvious what is the problem to you, as well, so look at it
> yourself first?
>
>
> Segher
Thanks, I will go ahead and disassemble the full kernel given that those
helpers are everywhere and see what I can find. I'll reach out again if
I can't come up with anything.
Thanks for the advice!
Nathan
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-19 16:04 ` Nathan Chancellor
@ 2019-07-21 7:58 ` Nathan Chancellor
2019-07-21 18:01 ` Segher Boessenkool
2019-07-22 0:53 ` [PATCH] powerpc: Test broken dcbz kbuild test robot
0 siblings, 2 replies; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-21 7:58 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 1874 bytes --]
On Fri, Jul 19, 2019 at 09:04:55AM -0700, Nathan Chancellor wrote:
> On Fri, Jul 19, 2019 at 10:23:03AM -0500, Segher Boessenkool wrote:
> > On Thu, Jul 18, 2019 at 08:24:56PM -0700, Nathan Chancellor wrote:
> > > On Mon, Jul 08, 2019 at 11:49:52PM -0700, Nathan Chancellor wrote:
> > > > On Tue, Jul 09, 2019 at 07:04:43AM +0200, Christophe Leroy wrote:
> > > > > Is that a Clang bug ?
> > > >
> > > > No idea, it happens with clang-8 and clang-9 though (pretty sure there
> > > > were fixes for PowerPC in clang-8 so something before it probably won't
> > > > work but I haven't tried).
> > > >
> > > > >
> > > > > Do you have a disassembly of the code both with and without this patch in
> > > > > order to compare ?
> > > >
> > > > I can give you whatever disassembly you want (or I can upload the raw
> > > > files if that is easier).
> > >
> > > What disassembly/files did you need to start taking a look at this? I
> > > can upload/send whatever you need.
> >
> > A before and after of *only this patch*. And then look at what changed;
> > it maybe be obvious what is the problem to you, as well, so look at it
> > yourself first?
> >
> >
> > Segher
Hi Segher,
Looks like the problematic function is dcbz, as there is no segfault
when only that function is reverted to a
pre-6c5875843b87c3adea2beade9d1b8b3d4523900a state.
I was able to expose a singular problematic callsite using the attached
patch (let me know if that is insufficient).
I have attached the disassembly of arch/powerpc/kernel/mem.o with
clear_page (working) and broken_clear_page (broken), along with the side
by side diff. My assembly knowledge is fairly limited as it stands and
it is certainly not up to snuff on PowerPC so I have no idea what I am
looking for. Please let me know if anything immediately looks off or if
there is anything else I can do to help out.
Cheers,
Nathan
[-- Attachment #2: 0001-powerpc-Test-broken-dcbz.patch --]
[-- Type: text/plain, Size: 2103 bytes --]
From 3d7f79f7601c312d47245141185bea7defffffa4 Mon Sep 17 00:00:00 2001
From: Nathan Chancellor <natechancellor@gmail.com>
Date: Sat, 20 Jul 2019 23:37:55 -0700
Subject: [PATCH] powerpc: Test broken dcbz
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
arch/powerpc/include/asm/cache.h | 2 +-
arch/powerpc/include/asm/page_32.h | 13 +++++++++++++
arch/powerpc/mm/mem.c | 2 +-
3 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
index b3388d95f451..ba76291b4d4d 100644
--- a/arch/powerpc/include/asm/cache.h
+++ b/arch/powerpc/include/asm/cache.h
@@ -107,7 +107,7 @@ extern void _set_L3CR(unsigned long);
static inline void dcbz(void *addr)
{
- __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
+ __asm__ __volatile__ ("dcbz 0, %0" : : "r"(addr) : "memory");
}
static inline void dcbi(void *addr)
diff --git a/arch/powerpc/include/asm/page_32.h b/arch/powerpc/include/asm/page_32.h
index 683dfbc67ca8..125c2ba7cd79 100644
--- a/arch/powerpc/include/asm/page_32.h
+++ b/arch/powerpc/include/asm/page_32.h
@@ -40,6 +40,19 @@ typedef unsigned long long pte_basic_t;
typedef unsigned long pte_basic_t;
#endif
+static inline void broken_dcbz(void *addr)
+{
+ __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
+}
+
+static inline void broken_clear_page(void *addr)
+{
+ unsigned int i;
+
+ for (i = 0; i < PAGE_SIZE / L1_CACHE_BYTES; i++, addr += L1_CACHE_BYTES)
+ broken_dcbz(addr);
+}
+
/*
* Clear page using the dcbz instruction, which doesn't cause any
* memory traffic (except to write out any cache lines which get
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 9259337d7374..7bb88e7a2e4c 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -361,7 +361,7 @@ EXPORT_SYMBOL(flush_dcache_icache_page);
void clear_user_page(void *page, unsigned long vaddr, struct page *pg)
{
- clear_page(page);
+ broken_clear_page(page);
/*
* We shouldn't have to do this, but some versions of glibc
--
2.22.0
[-- Attachment #3: mem-working.txt --]
[-- Type: text/plain, Size: 22052 bytes --]
mem-working.o: file format ELF32-ppc
Disassembly of section .text:
00000000 phys_mem_access_prot:
0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff e0 stwu 1, -32(1)
c: 93 a1 00 14 stw 29, 20(1)
10: 7c fd 3b 78 mr 29, 7
14: 3c e0 00 00 lis 7, 0
18: 38 e7 00 00 addi 7, 7, 0
1c: 81 07 00 a0 lwz 8, 160(7)
20: 93 c1 00 18 stw 30, 24(1)
24: 28 08 00 00 cmplwi 8, 0
28: 7c 7e 1b 78 mr 30, 3
2c: 41 82 00 20 bt 2, .+32
30: 80 7d 00 00 lwz 3, 0(29)
34: 38 e1 00 08 addi 7, 1, 8
38: 7d 09 03 a6 mtctr 8
3c: 90 61 00 08 stw 3, 8(1)
40: 7f c3 f3 78 mr 3, 30
44: 4e 80 04 21 bctrl
48: 48 00 00 28 b .+40
4c: 7c a3 2b 78 mr 3, 5
50: 48 00 00 01 bl .+0
54: 28 03 00 00 cmplwi 3, 0
58: 80 7d 00 00 lwz 3, 0(29)
5c: 40 82 00 10 bf 2, .+16
60: 54 63 06 26 rlwinm 3, 3, 0, 24, 19
64: 60 63 05 00 ori 3, 3, 1280
68: 90 7d 00 00 stw 3, 0(29)
6c: 90 7e 00 00 stw 3, 0(30)
70: 83 c1 00 18 lwz 30, 24(1)
74: 83 a1 00 14 lwz 29, 20(1)
78: 80 01 00 24 lwz 0, 36(1)
7c: 38 21 00 20 addi 1, 1, 32
80: 7c 08 03 a6 mtlr 0
84: 4e 80 00 20 blr
00000088 free_initmem:
88: 7c 08 02 a6 mflr 0
8c: 90 01 00 04 stw 0, 4(1)
90: 94 21 ff f0 stwu 1, -16(1)
94: 3c 60 00 00 lis 3, 0
98: 3c 80 00 00 lis 4, 0
9c: 38 63 00 00 addi 3, 3, 0
a0: 38 84 00 00 addi 4, 4, 0
a4: 90 83 00 60 stw 4, 96(3)
a8: 48 00 00 01 bl .+0
ac: 3c 60 00 00 lis 3, 0
b0: 38 80 00 01 li 4, 1
b4: 98 83 00 00 stb 4, 0(3)
b8: 3c 60 00 00 lis 3, 0
bc: 3c 80 00 00 lis 4, 0
c0: 3c a0 00 00 lis 5, 0
c4: 38 63 00 00 addi 3, 3, 0
c8: 38 84 00 00 addi 4, 4, 0
cc: 38 c5 00 00 addi 6, 5, 0
d0: 38 a0 00 cc li 5, 204
d4: 48 00 00 01 bl .+0
d8: 80 01 00 14 lwz 0, 20(1)
dc: 38 21 00 10 addi 1, 1, 16
e0: 7c 08 03 a6 mtlr 0
e4: 4e 80 00 20 blr
000000e8 flush_dcache_page:
e8: 80 83 00 00 lwz 4, 0(3)
ec: 70 84 08 00 andi. 4, 4, 2048
f0: 4d 82 00 20 bclr 12, 2
f4: 38 80 08 00 li 4, 2048
f8: 7c a0 18 28 lwarx 5, 0, 3
fc: 7c a5 20 78 andc 5, 5, 4
100: 7c a0 19 2d stwcx. 5, 0, 3
104: 40 a2 ff f4 bc 5, 2, .+65524
108: 4e 80 00 20 blr
0000010c flush_dcache_icache_page:
10c: 7c 08 02 a6 mflr 0
110: 90 01 00 04 stw 0, 4(1)
114: 94 21 ff f0 stwu 1, -16(1)
118: 80 82 00 00 lwz 4, 0(2)
11c: 38 84 00 01 addi 4, 4, 1
120: 90 82 00 00 stw 4, 0(2)
124: 80 82 0a e4 lwz 4, 2788(2)
128: 38 84 00 01 addi 4, 4, 1
12c: 90 82 0a e4 stw 4, 2788(2)
130: 3c 80 00 00 lis 4, 0
134: 80 84 00 00 lwz 4, 0(4)
138: 7c 64 18 50 subf 3, 4, 3
13c: 3c 80 cc cc lis 4, -13108
140: 54 63 e8 fe srwi 3, 3, 3
144: 60 84 d0 00 ori 4, 4, 53248
148: 7c 63 21 d6 mullw 3, 3, 4
14c: 3c 63 c0 00 addis 3, 3, -16384
150: 48 00 00 01 bl .+0
154: 80 62 0a e4 lwz 3, 2788(2)
158: 38 63 ff ff addi 3, 3, -1
15c: 90 62 0a e4 stw 3, 2788(2)
160: 80 62 00 00 lwz 3, 0(2)
164: 38 63 ff ff addi 3, 3, -1
168: 90 62 00 00 stw 3, 0(2)
16c: 80 01 00 14 lwz 0, 20(1)
170: 38 21 00 10 addi 1, 1, 16
174: 7c 08 03 a6 mtlr 0
178: 4e 80 00 20 blr
0000017c clear_user_page:
17c: 38 80 00 80 li 4, 128
180: 7c 89 03 a6 mtctr 4
184: 7c 00 1f ec dcbz 0, 3
188: 38 63 00 20 addi 3, 3, 32
18c: 42 00 ff f8 bdnz .+65528
190: 80 65 00 00 lwz 3, 0(5)
194: 70 63 08 00 andi. 3, 3, 2048
198: 4d 82 00 20 bclr 12, 2
19c: 38 60 08 00 li 3, 2048
1a0: 7c 80 28 28 lwarx 4, 0, 5
1a4: 7c 84 18 78 andc 4, 4, 3
1a8: 7c 80 29 2d stwcx. 4, 0, 5
1ac: 40 a2 ff f4 bc 5, 2, .+65524
1b0: 4e 80 00 20 blr
000001b4 copy_user_page:
1b4: 7c 08 02 a6 mflr 0
1b8: 90 01 00 04 stw 0, 4(1)
1bc: 94 21 ff f0 stwu 1, -16(1)
1c0: 93 c1 00 08 stw 30, 8(1)
1c4: 7c de 33 78 mr 30, 6
1c8: 48 00 00 01 bl .+0
1cc: 80 7e 00 00 lwz 3, 0(30)
1d0: 70 63 08 00 andi. 3, 3, 2048
1d4: 41 82 00 18 bt 2, .+24
1d8: 38 60 08 00 li 3, 2048
1dc: 7c 80 f0 28 lwarx 4, 0, 30
1e0: 7c 84 18 78 andc 4, 4, 3
1e4: 7c 80 f1 2d stwcx. 4, 0, 30
1e8: 40 a2 ff f4 bc 5, 2, .+65524
1ec: 83 c1 00 08 lwz 30, 8(1)
1f0: 80 01 00 14 lwz 0, 20(1)
1f4: 38 21 00 10 addi 1, 1, 16
1f8: 7c 08 03 a6 mtlr 0
1fc: 4e 80 00 20 blr
00000200 flush_icache_user_range:
200: 7c 08 02 a6 mflr 0
204: 90 01 00 04 stw 0, 4(1)
208: 94 21 ff e0 stwu 1, -32(1)
20c: 3c 60 00 00 lis 3, 0
210: 93 81 00 10 stw 28, 16(1)
214: 7c 9c 23 78 mr 28, 4
218: 38 63 00 00 addi 3, 3, 0
21c: 38 80 00 53 li 4, 83
220: 93 a1 00 14 stw 29, 20(1)
224: 7c bd 2b 78 mr 29, 5
228: 38 a0 00 00 li 5, 0
22c: 93 c1 00 18 stw 30, 24(1)
230: 7c de 33 78 mr 30, 6
234: 48 00 00 01 bl .+0
238: 3c 60 00 00 lis 3, 0
23c: 3c 80 cc cc lis 4, -13108
240: 80 63 00 00 lwz 3, 0(3)
244: 60 84 d0 00 ori 4, 4, 53248
248: 7c 63 e0 50 subf 3, 3, 28
24c: 54 63 e8 fe srwi 3, 3, 3
250: 7c 63 21 d6 mullw 3, 3, 4
254: 57 a4 05 3e clrlwi 4, 29, 20
258: 50 64 00 26 rlwimi 4, 3, 0, 0, 19
25c: 3c 64 c0 00 addis 3, 4, -16384
260: 7c 83 f2 14 add 4, 3, 30
264: 48 00 00 01 bl .+0
268: 83 c1 00 18 lwz 30, 24(1)
26c: 83 a1 00 14 lwz 29, 20(1)
270: 83 81 00 10 lwz 28, 16(1)
274: 80 01 00 24 lwz 0, 36(1)
278: 38 21 00 20 addi 1, 1, 32
27c: 7c 08 03 a6 mtlr 0
280: 4e 80 00 20 blr
00000284 update_mmu_cache:
284: 4e 80 00 20 blr
00000288 devmem_is_allowed:
288: 7c 08 02 a6 mflr 0
28c: 90 01 00 04 stw 0, 4(1)
290: 94 21 ff f0 stwu 1, -16(1)
294: 93 c1 00 08 stw 30, 8(1)
298: 7c 7e 1b 78 mr 30, 3
29c: 54 63 65 3e srwi 3, 3, 20
2a0: 57 c4 60 26 slwi 4, 30, 12
2a4: 48 00 00 01 bl .+0
2a8: 70 63 00 01 andi. 3, 3, 1
2ac: 38 60 00 00 li 3, 0
2b0: 41 81 00 14 bt 1, .+20
2b4: 7f c3 f3 78 mr 3, 30
2b8: 48 00 00 01 bl .+0
2bc: 7c 63 00 34 cntlzw 3, 3
2c0: 54 63 df fe rlwinm 3, 3, 27, 31, 31
2c4: 83 c1 00 08 lwz 30, 8(1)
2c8: 80 01 00 14 lwz 0, 20(1)
2cc: 38 21 00 10 addi 1, 1, 16
2d0: 7c 08 03 a6 mtlr 0
2d4: 4e 80 00 20 blr
Disassembly of section .init.text:
00000000 mem_topology_setup:
0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff f0 stwu 1, -16(1)
c: 48 00 00 01 bl .+0
10: 54 84 a0 3e rotlwi 4, 4, 20
14: 3c a0 00 00 lis 5, 0
18: 50 64 a0 16 rlwimi 4, 3, 20, 0, 11
1c: 3c 60 00 00 lis 3, 0
20: 90 85 00 00 stw 4, 0(5)
24: 38 a0 ff ff li 5, -1
28: 90 83 00 00 stw 4, 0(3)
2c: 3c 60 00 00 lis 3, 0
30: 38 80 00 00 li 4, 0
34: 38 c0 ff ff li 6, -1
38: 39 00 00 00 li 8, 0
3c: 90 83 00 00 stw 4, 0(3)
40: 3c 60 00 00 lis 3, 0
44: 38 80 00 00 li 4, 0
48: 38 63 00 00 addi 3, 3, 0
4c: 38 e3 00 10 addi 7, 3, 16
50: 38 60 00 00 li 3, 0
54: 48 00 00 01 bl .+0
58: 80 01 00 14 lwz 0, 20(1)
5c: 38 21 00 10 addi 1, 1, 16
60: 7c 08 03 a6 mtlr 0
64: 4e 80 00 20 blr
00000068 initmem_init:
68: 7c 08 02 a6 mflr 0
6c: 90 01 00 04 stw 0, 4(1)
70: 94 21 ff f0 stwu 1, -16(1)
74: 38 60 00 00 li 3, 0
78: 48 00 00 01 bl .+0
7c: 80 01 00 14 lwz 0, 20(1)
80: 38 21 00 10 addi 1, 1, 16
84: 7c 08 03 a6 mtlr 0
88: 4e 80 00 20 blr
0000008c paging_init:
8c: 7c 08 02 a6 mflr 0
90: 90 01 00 04 stw 0, 4(1)
94: 94 21 ff d0 stwu 1, -48(1)
98: 93 21 00 14 stw 25, 20(1)
9c: 93 41 00 18 stw 26, 24(1)
a0: 93 61 00 1c stw 27, 28(1)
a4: 93 81 00 20 stw 28, 32(1)
a8: 93 a1 00 24 stw 29, 36(1)
ac: 93 c1 00 28 stw 30, 40(1)
b0: 48 00 00 01 bl .+0
b4: 7c 7e 1b 78 mr 30, 3
b8: 7c 9d 23 78 mr 29, 4
bc: 3f 40 ff fe lis 26, -2
c0: 48 00 00 01 bl .+0
c4: 7c 7c 1b 78 mr 28, 3
c8: 7c 9b 23 78 mr 27, 4
cc: 3b 20 00 00 li 25, 0
d0: 38 e1 00 08 addi 7, 1, 8
d4: 7f 43 d3 78 mr 3, 26
d8: 93 21 00 10 stw 25, 16(1)
dc: 38 a0 00 00 li 5, 0
e0: 38 c0 00 00 li 6, 0
e4: 93 21 00 08 stw 25, 8(1)
e8: 48 00 00 01 bl .+0
ec: 3b 5a 10 00 addi 26, 26, 4096
f0: 2c 1a f0 00 cmpwi 26, -4096
f4: 40 82 ff dc bf 2, .+65500
f8: 3c 60 00 00 lis 3, 0
fc: 4c c6 31 82 crclr 6
100: 7f 85 e3 78 mr 5, 28
104: 38 63 00 00 addi 3, 3, 0
108: 7f 66 db 78 mr 6, 27
10c: 7f c7 f3 78 mr 7, 30
110: 7f a8 eb 78 mr 8, 29
114: 48 00 00 01 bl .+0
118: 7c 7d d8 10 subfc 3, 29, 27
11c: 4c c6 31 82 crclr 6
120: 7c be e1 10 subfe 5, 30, 28
124: 54 64 60 3e rotlwi 4, 3, 12
128: 3c 60 00 00 lis 3, 0
12c: 50 a4 60 26 rlwimi 4, 5, 12, 0, 19
130: 38 63 00 00 addi 3, 3, 0
134: 48 00 00 01 bl .+0
138: 3c 60 00 00 lis 3, 0
13c: 80 83 00 00 lwz 4, 0(3)
140: 3c 60 00 00 lis 3, 0
144: 94 83 00 00 stwu 4, 0(3)
148: 48 00 00 01 bl .+0
14c: 83 c1 00 28 lwz 30, 40(1)
150: 83 a1 00 24 lwz 29, 36(1)
154: 83 81 00 20 lwz 28, 32(1)
158: 83 61 00 1c lwz 27, 28(1)
15c: 83 41 00 18 lwz 26, 24(1)
160: 83 21 00 14 lwz 25, 20(1)
164: 80 01 00 34 lwz 0, 52(1)
168: 38 21 00 30 addi 1, 1, 48
16c: 7c 08 03 a6 mtlr 0
170: 4e 80 00 20 blr
00000174 mem_init:
174: 7c 08 02 a6 mflr 0
178: 90 01 00 04 stw 0, 4(1)
17c: 94 21 ff e0 stwu 1, -32(1)
180: 3c 60 00 00 lis 3, 0
184: 3c 80 00 00 lis 4, 0
188: 93 81 00 10 stw 28, 16(1)
18c: 3f 80 00 00 lis 28, 0
190: 80 63 00 00 lwz 3, 0(3)
194: 80 84 00 00 lwz 4, 0(4)
198: 54 63 60 26 slwi 3, 3, 12
19c: 3c 63 c0 00 addis 3, 3, -16384
1a0: 90 7c 00 00 stw 3, 0(28)
1a4: 3c 60 00 00 lis 3, 0
1a8: 93 a1 00 14 stw 29, 20(1)
1ac: 93 c1 00 18 stw 30, 24(1)
1b0: 90 83 00 00 stw 4, 0(3)
1b4: 48 00 00 01 bl .+0
1b8: 38 60 00 00 li 3, 0
1bc: 48 00 00 01 bl .+0
1c0: 3c 60 00 00 lis 3, 0
1c4: 4c c6 31 82 crclr 6
1c8: 38 63 00 00 addi 3, 3, 0
1cc: 48 00 00 01 bl .+0
1d0: 3c 80 ff fd lis 4, -3
1d4: 3c 60 00 00 lis 3, 0
1d8: 4c c6 31 82 crclr 6
1dc: 60 9e f0 00 ori 30, 4, 61440
1e0: 38 63 00 00 addi 3, 3, 0
1e4: 7f c4 f3 78 mr 4, 30
1e8: 38 a0 f0 00 li 5, -4096
1ec: 48 00 00 01 bl .+0
1f0: 3c 80 ff dd lis 4, -35
1f4: 3c 60 00 00 lis 3, 0
1f8: 4c c6 31 82 crclr 6
1fc: 60 9d f0 00 ori 29, 4, 61440
200: 38 63 00 00 addi 3, 3, 0
204: 7f a4 eb 78 mr 4, 29
208: 7f c5 f3 78 mr 5, 30
20c: 48 00 00 01 bl .+0
210: 3f c0 00 00 lis 30, 0
214: 3c 60 00 00 lis 3, 0
218: 4c c6 31 82 crclr 6
21c: 80 9e 00 00 lwz 4, 0(30)
220: 38 63 00 00 addi 3, 3, 0
224: 7f a5 eb 78 mr 5, 29
228: 48 00 00 01 bl .+0
22c: 80 7c 00 00 lwz 3, 0(28)
230: 3c 80 01 00 lis 4, 256
234: 4c c6 31 82 crclr 6
238: 38 63 ff ff addi 3, 3, -1
23c: 80 be 00 00 lwz 5, 0(30)
240: 3c 63 10 00 addis 3, 3, 4096
244: 54 63 00 06 rlwinm 3, 3, 0, 0, 3
248: 50 64 02 0c rlwimi 4, 3, 0, 8, 6
24c: 3c 60 00 00 lis 3, 0
250: 38 63 00 00 addi 3, 3, 0
254: 48 00 00 01 bl .+0
258: 83 c1 00 18 lwz 30, 24(1)
25c: 83 a1 00 14 lwz 29, 20(1)
260: 83 81 00 10 lwz 28, 16(1)
264: 80 01 00 24 lwz 0, 36(1)
268: 38 21 00 20 addi 1, 1, 32
26c: 7c 08 03 a6 mtlr 0
270: 4e 80 00 20 blr
00000274 add_system_ram_resources:
274: 7c 08 02 a6 mflr 0
278: 90 01 00 04 stw 0, 4(1)
27c: 94 21 ff c0 stwu 1, -64(1)
280: 3c 60 00 00 lis 3, 0
284: 93 a1 00 34 stw 29, 52(1)
288: 3b a3 00 00 addi 29, 3, 0
28c: 80 7d 00 10 lwz 3, 16(29)
290: 93 81 00 30 stw 28, 48(1)
294: 1c 63 00 18 mulli 3, 3, 24
298: 83 9d 00 20 lwz 28, 32(29)
29c: 7c 7c 1a 14 add 3, 28, 3
2a0: 92 a1 00 14 stw 21, 20(1)
2a4: 7c 1c 18 40 cmplw 28, 3
2a8: 92 c1 00 18 stw 22, 24(1)
2ac: 92 e1 00 1c stw 23, 28(1)
2b0: 93 01 00 20 stw 24, 32(1)
2b4: 93 21 00 24 stw 25, 36(1)
2b8: 93 41 00 28 stw 26, 40(1)
2bc: 93 61 00 2c stw 27, 44(1)
2c0: 93 c1 00 38 stw 30, 56(1)
2c4: 40 80 00 ac bf 0, .+172
2c8: 3c 60 00 00 lis 3, 0
2cc: 3c 80 00 00 lis 4, 0
2d0: 3c a0 81 00 lis 5, -32512
2d4: 3c c0 00 00 lis 6, 0
2d8: 3b 7c ff e8 addi 27, 28, -24
2dc: 3b 40 00 00 li 26, 0
2e0: 3b 23 00 00 addi 25, 3, 0
2e4: 3b 04 00 00 addi 24, 4, 0
2e8: 60 b7 02 00 ori 23, 5, 512
2ec: 3b c6 00 00 addi 30, 6, 0
2f0: 80 79 00 18 lwz 3, 24(25)
2f4: 38 80 0d c0 li 4, 3520
2f8: 38 a0 00 28 li 5, 40
2fc: 82 db 00 1c lwz 22, 28(27)
300: 82 bb 00 24 lwz 21, 36(27)
304: 48 00 00 01 bl .+0
308: 7c 64 1b 78 mr 4, 3
30c: 7c 63 00 34 cntlzw 3, 3
310: 28 04 00 00 cmplwi 4, 0
314: 54 63 df fe rlwinm 3, 3, 27, 31, 31
318: 0f 03 00 00 twnei 3, 0
31c: 41 82 00 34 bt 2, .+52
320: 7c 76 aa 14 add 3, 22, 21
324: 93 04 00 10 stw 24, 16(4)
328: 38 63 ff ff addi 3, 3, -1
32c: 90 64 00 0c stw 3, 12(4)
330: 7f c3 f3 78 mr 3, 30
334: 93 44 00 00 stw 26, 0(4)
338: 92 c4 00 04 stw 22, 4(4)
33c: 93 44 00 08 stw 26, 8(4)
340: 92 e4 00 14 stw 23, 20(4)
344: 48 00 00 01 bl .+0
348: 54 63 0f fe srwi 3, 3, 31
34c: 0f 03 00 00 twnei 3, 0
350: 80 7d 00 10 lwz 3, 16(29)
354: 3b 9c 00 18 addi 28, 28, 24
358: 3b 7b 00 18 addi 27, 27, 24
35c: 80 9d 00 20 lwz 4, 32(29)
360: 1c 63 00 18 mulli 3, 3, 24
364: 7c 64 1a 14 add 3, 4, 3
368: 7c 1c 18 40 cmplw 28, 3
36c: 41 80 ff 84 bt 0, .+65412
370: 38 60 00 00 li 3, 0
374: 83 c1 00 38 lwz 30, 56(1)
378: 83 a1 00 34 lwz 29, 52(1)
37c: 83 81 00 30 lwz 28, 48(1)
380: 83 61 00 2c lwz 27, 44(1)
384: 83 41 00 28 lwz 26, 40(1)
388: 83 21 00 24 lwz 25, 36(1)
38c: 83 01 00 20 lwz 24, 32(1)
390: 82 e1 00 1c lwz 23, 28(1)
394: 82 c1 00 18 lwz 22, 24(1)
398: 82 a1 00 14 lwz 21, 20(1)
39c: 80 01 00 44 lwz 0, 68(1)
3a0: 38 21 00 40 addi 1, 1, 64
3a4: 7c 08 03 a6 mtlr 0
3a8: 4e 80 00 20 blr
[-- Attachment #4: mem-broken.txt --]
[-- Type: text/plain, Size: 22322 bytes --]
mem-broken.o: file format ELF32-ppc
Disassembly of section .text:
00000000 phys_mem_access_prot:
0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff e0 stwu 1, -32(1)
c: 93 a1 00 14 stw 29, 20(1)
10: 7c fd 3b 78 mr 29, 7
14: 3c e0 00 00 lis 7, 0
18: 38 e7 00 00 addi 7, 7, 0
1c: 81 07 00 a0 lwz 8, 160(7)
20: 93 c1 00 18 stw 30, 24(1)
24: 28 08 00 00 cmplwi 8, 0
28: 7c 7e 1b 78 mr 30, 3
2c: 41 82 00 20 bt 2, .+32
30: 80 7d 00 00 lwz 3, 0(29)
34: 38 e1 00 08 addi 7, 1, 8
38: 7d 09 03 a6 mtctr 8
3c: 90 61 00 08 stw 3, 8(1)
40: 7f c3 f3 78 mr 3, 30
44: 4e 80 04 21 bctrl
48: 48 00 00 28 b .+40
4c: 7c a3 2b 78 mr 3, 5
50: 48 00 00 01 bl .+0
54: 28 03 00 00 cmplwi 3, 0
58: 80 7d 00 00 lwz 3, 0(29)
5c: 40 82 00 10 bf 2, .+16
60: 54 63 06 26 rlwinm 3, 3, 0, 24, 19
64: 60 63 05 00 ori 3, 3, 1280
68: 90 7d 00 00 stw 3, 0(29)
6c: 90 7e 00 00 stw 3, 0(30)
70: 83 c1 00 18 lwz 30, 24(1)
74: 83 a1 00 14 lwz 29, 20(1)
78: 80 01 00 24 lwz 0, 36(1)
7c: 38 21 00 20 addi 1, 1, 32
80: 7c 08 03 a6 mtlr 0
84: 4e 80 00 20 blr
00000088 free_initmem:
88: 7c 08 02 a6 mflr 0
8c: 90 01 00 04 stw 0, 4(1)
90: 94 21 ff f0 stwu 1, -16(1)
94: 3c 60 00 00 lis 3, 0
98: 3c 80 00 00 lis 4, 0
9c: 38 63 00 00 addi 3, 3, 0
a0: 38 84 00 00 addi 4, 4, 0
a4: 90 83 00 60 stw 4, 96(3)
a8: 48 00 00 01 bl .+0
ac: 3c 60 00 00 lis 3, 0
b0: 38 80 00 01 li 4, 1
b4: 98 83 00 00 stb 4, 0(3)
b8: 3c 60 00 00 lis 3, 0
bc: 3c 80 00 00 lis 4, 0
c0: 3c a0 00 00 lis 5, 0
c4: 38 63 00 00 addi 3, 3, 0
c8: 38 84 00 00 addi 4, 4, 0
cc: 38 c5 00 00 addi 6, 5, 0
d0: 38 a0 00 cc li 5, 204
d4: 48 00 00 01 bl .+0
d8: 80 01 00 14 lwz 0, 20(1)
dc: 38 21 00 10 addi 1, 1, 16
e0: 7c 08 03 a6 mtlr 0
e4: 4e 80 00 20 blr
000000e8 flush_dcache_page:
e8: 80 83 00 00 lwz 4, 0(3)
ec: 70 84 08 00 andi. 4, 4, 2048
f0: 4d 82 00 20 bclr 12, 2
f4: 38 80 08 00 li 4, 2048
f8: 7c a0 18 28 lwarx 5, 0, 3
fc: 7c a5 20 78 andc 5, 5, 4
100: 7c a0 19 2d stwcx. 5, 0, 3
104: 40 a2 ff f4 bc 5, 2, .+65524
108: 4e 80 00 20 blr
0000010c flush_dcache_icache_page:
10c: 7c 08 02 a6 mflr 0
110: 90 01 00 04 stw 0, 4(1)
114: 94 21 ff f0 stwu 1, -16(1)
118: 80 82 00 00 lwz 4, 0(2)
11c: 38 84 00 01 addi 4, 4, 1
120: 90 82 00 00 stw 4, 0(2)
124: 80 82 0a e4 lwz 4, 2788(2)
128: 38 84 00 01 addi 4, 4, 1
12c: 90 82 0a e4 stw 4, 2788(2)
130: 3c 80 00 00 lis 4, 0
134: 80 84 00 00 lwz 4, 0(4)
138: 7c 64 18 50 subf 3, 4, 3
13c: 3c 80 cc cc lis 4, -13108
140: 54 63 e8 fe srwi 3, 3, 3
144: 60 84 d0 00 ori 4, 4, 53248
148: 7c 63 21 d6 mullw 3, 3, 4
14c: 3c 63 c0 00 addis 3, 3, -16384
150: 48 00 00 01 bl .+0
154: 80 62 0a e4 lwz 3, 2788(2)
158: 38 63 ff ff addi 3, 3, -1
15c: 90 62 0a e4 stw 3, 2788(2)
160: 80 62 00 00 lwz 3, 0(2)
164: 38 63 ff ff addi 3, 3, -1
168: 90 62 00 00 stw 3, 0(2)
16c: 80 01 00 14 lwz 0, 20(1)
170: 38 21 00 10 addi 1, 1, 16
174: 7c 08 03 a6 mtlr 0
178: 4e 80 00 20 blr
0000017c clear_user_page:
17c: 94 21 ff f0 stwu 1, -16(1)
180: 38 80 00 80 li 4, 128
184: 38 63 ff e0 addi 3, 3, -32
188: 7c 89 03 a6 mtctr 4
18c: 38 81 00 0f addi 4, 1, 15
190: 8c c3 00 20 lbzu 6, 32(3)
194: 98 c1 00 0f stb 6, 15(1)
198: 7c 00 27 ec dcbz 0, 4
19c: 42 00 ff f4 bdnz .+65524
1a0: 80 65 00 00 lwz 3, 0(5)
1a4: 70 63 08 00 andi. 3, 3, 2048
1a8: 41 82 00 18 bt 2, .+24
1ac: 38 60 08 00 li 3, 2048
1b0: 7c 80 28 28 lwarx 4, 0, 5
1b4: 7c 84 18 78 andc 4, 4, 3
1b8: 7c 80 29 2d stwcx. 4, 0, 5
1bc: 40 a2 ff f4 bc 5, 2, .+65524
1c0: 38 21 00 10 addi 1, 1, 16
1c4: 4e 80 00 20 blr
000001c8 copy_user_page:
1c8: 7c 08 02 a6 mflr 0
1cc: 90 01 00 04 stw 0, 4(1)
1d0: 94 21 ff f0 stwu 1, -16(1)
1d4: 93 c1 00 08 stw 30, 8(1)
1d8: 7c de 33 78 mr 30, 6
1dc: 48 00 00 01 bl .+0
1e0: 80 7e 00 00 lwz 3, 0(30)
1e4: 70 63 08 00 andi. 3, 3, 2048
1e8: 41 82 00 18 bt 2, .+24
1ec: 38 60 08 00 li 3, 2048
1f0: 7c 80 f0 28 lwarx 4, 0, 30
1f4: 7c 84 18 78 andc 4, 4, 3
1f8: 7c 80 f1 2d stwcx. 4, 0, 30
1fc: 40 a2 ff f4 bc 5, 2, .+65524
200: 83 c1 00 08 lwz 30, 8(1)
204: 80 01 00 14 lwz 0, 20(1)
208: 38 21 00 10 addi 1, 1, 16
20c: 7c 08 03 a6 mtlr 0
210: 4e 80 00 20 blr
00000214 flush_icache_user_range:
214: 7c 08 02 a6 mflr 0
218: 90 01 00 04 stw 0, 4(1)
21c: 94 21 ff e0 stwu 1, -32(1)
220: 3c 60 00 00 lis 3, 0
224: 93 81 00 10 stw 28, 16(1)
228: 7c 9c 23 78 mr 28, 4
22c: 38 63 00 00 addi 3, 3, 0
230: 38 80 00 53 li 4, 83
234: 93 a1 00 14 stw 29, 20(1)
238: 7c bd 2b 78 mr 29, 5
23c: 38 a0 00 00 li 5, 0
240: 93 c1 00 18 stw 30, 24(1)
244: 7c de 33 78 mr 30, 6
248: 48 00 00 01 bl .+0
24c: 3c 60 00 00 lis 3, 0
250: 3c 80 cc cc lis 4, -13108
254: 80 63 00 00 lwz 3, 0(3)
258: 60 84 d0 00 ori 4, 4, 53248
25c: 7c 63 e0 50 subf 3, 3, 28
260: 54 63 e8 fe srwi 3, 3, 3
264: 7c 63 21 d6 mullw 3, 3, 4
268: 57 a4 05 3e clrlwi 4, 29, 20
26c: 50 64 00 26 rlwimi 4, 3, 0, 0, 19
270: 3c 64 c0 00 addis 3, 4, -16384
274: 7c 83 f2 14 add 4, 3, 30
278: 48 00 00 01 bl .+0
27c: 83 c1 00 18 lwz 30, 24(1)
280: 83 a1 00 14 lwz 29, 20(1)
284: 83 81 00 10 lwz 28, 16(1)
288: 80 01 00 24 lwz 0, 36(1)
28c: 38 21 00 20 addi 1, 1, 32
290: 7c 08 03 a6 mtlr 0
294: 4e 80 00 20 blr
00000298 update_mmu_cache:
298: 4e 80 00 20 blr
0000029c devmem_is_allowed:
29c: 7c 08 02 a6 mflr 0
2a0: 90 01 00 04 stw 0, 4(1)
2a4: 94 21 ff f0 stwu 1, -16(1)
2a8: 93 c1 00 08 stw 30, 8(1)
2ac: 7c 7e 1b 78 mr 30, 3
2b0: 54 63 65 3e srwi 3, 3, 20
2b4: 57 c4 60 26 slwi 4, 30, 12
2b8: 48 00 00 01 bl .+0
2bc: 70 63 00 01 andi. 3, 3, 1
2c0: 38 60 00 00 li 3, 0
2c4: 41 81 00 14 bt 1, .+20
2c8: 7f c3 f3 78 mr 3, 30
2cc: 48 00 00 01 bl .+0
2d0: 7c 63 00 34 cntlzw 3, 3
2d4: 54 63 df fe rlwinm 3, 3, 27, 31, 31
2d8: 83 c1 00 08 lwz 30, 8(1)
2dc: 80 01 00 14 lwz 0, 20(1)
2e0: 38 21 00 10 addi 1, 1, 16
2e4: 7c 08 03 a6 mtlr 0
2e8: 4e 80 00 20 blr
Disassembly of section .init.text:
00000000 mem_topology_setup:
0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff f0 stwu 1, -16(1)
c: 48 00 00 01 bl .+0
10: 54 84 a0 3e rotlwi 4, 4, 20
14: 3c a0 00 00 lis 5, 0
18: 50 64 a0 16 rlwimi 4, 3, 20, 0, 11
1c: 3c 60 00 00 lis 3, 0
20: 90 85 00 00 stw 4, 0(5)
24: 38 a0 ff ff li 5, -1
28: 90 83 00 00 stw 4, 0(3)
2c: 3c 60 00 00 lis 3, 0
30: 38 80 00 00 li 4, 0
34: 38 c0 ff ff li 6, -1
38: 39 00 00 00 li 8, 0
3c: 90 83 00 00 stw 4, 0(3)
40: 3c 60 00 00 lis 3, 0
44: 38 80 00 00 li 4, 0
48: 38 63 00 00 addi 3, 3, 0
4c: 38 e3 00 10 addi 7, 3, 16
50: 38 60 00 00 li 3, 0
54: 48 00 00 01 bl .+0
58: 80 01 00 14 lwz 0, 20(1)
5c: 38 21 00 10 addi 1, 1, 16
60: 7c 08 03 a6 mtlr 0
64: 4e 80 00 20 blr
00000068 initmem_init:
68: 7c 08 02 a6 mflr 0
6c: 90 01 00 04 stw 0, 4(1)
70: 94 21 ff f0 stwu 1, -16(1)
74: 38 60 00 00 li 3, 0
78: 48 00 00 01 bl .+0
7c: 80 01 00 14 lwz 0, 20(1)
80: 38 21 00 10 addi 1, 1, 16
84: 7c 08 03 a6 mtlr 0
88: 4e 80 00 20 blr
0000008c paging_init:
8c: 7c 08 02 a6 mflr 0
90: 90 01 00 04 stw 0, 4(1)
94: 94 21 ff d0 stwu 1, -48(1)
98: 93 21 00 14 stw 25, 20(1)
9c: 93 41 00 18 stw 26, 24(1)
a0: 93 61 00 1c stw 27, 28(1)
a4: 93 81 00 20 stw 28, 32(1)
a8: 93 a1 00 24 stw 29, 36(1)
ac: 93 c1 00 28 stw 30, 40(1)
b0: 48 00 00 01 bl .+0
b4: 7c 7e 1b 78 mr 30, 3
b8: 7c 9d 23 78 mr 29, 4
bc: 3f 40 ff fe lis 26, -2
c0: 48 00 00 01 bl .+0
c4: 7c 7c 1b 78 mr 28, 3
c8: 7c 9b 23 78 mr 27, 4
cc: 3b 20 00 00 li 25, 0
d0: 38 e1 00 08 addi 7, 1, 8
d4: 7f 43 d3 78 mr 3, 26
d8: 93 21 00 10 stw 25, 16(1)
dc: 38 a0 00 00 li 5, 0
e0: 38 c0 00 00 li 6, 0
e4: 93 21 00 08 stw 25, 8(1)
e8: 48 00 00 01 bl .+0
ec: 3b 5a 10 00 addi 26, 26, 4096
f0: 2c 1a f0 00 cmpwi 26, -4096
f4: 40 82 ff dc bf 2, .+65500
f8: 3c 60 00 00 lis 3, 0
fc: 4c c6 31 82 crclr 6
100: 7f 85 e3 78 mr 5, 28
104: 38 63 00 00 addi 3, 3, 0
108: 7f 66 db 78 mr 6, 27
10c: 7f c7 f3 78 mr 7, 30
110: 7f a8 eb 78 mr 8, 29
114: 48 00 00 01 bl .+0
118: 7c 7d d8 10 subfc 3, 29, 27
11c: 4c c6 31 82 crclr 6
120: 7c be e1 10 subfe 5, 30, 28
124: 54 64 60 3e rotlwi 4, 3, 12
128: 3c 60 00 00 lis 3, 0
12c: 50 a4 60 26 rlwimi 4, 5, 12, 0, 19
130: 38 63 00 00 addi 3, 3, 0
134: 48 00 00 01 bl .+0
138: 3c 60 00 00 lis 3, 0
13c: 80 83 00 00 lwz 4, 0(3)
140: 3c 60 00 00 lis 3, 0
144: 94 83 00 00 stwu 4, 0(3)
148: 48 00 00 01 bl .+0
14c: 83 c1 00 28 lwz 30, 40(1)
150: 83 a1 00 24 lwz 29, 36(1)
154: 83 81 00 20 lwz 28, 32(1)
158: 83 61 00 1c lwz 27, 28(1)
15c: 83 41 00 18 lwz 26, 24(1)
160: 83 21 00 14 lwz 25, 20(1)
164: 80 01 00 34 lwz 0, 52(1)
168: 38 21 00 30 addi 1, 1, 48
16c: 7c 08 03 a6 mtlr 0
170: 4e 80 00 20 blr
00000174 mem_init:
174: 7c 08 02 a6 mflr 0
178: 90 01 00 04 stw 0, 4(1)
17c: 94 21 ff e0 stwu 1, -32(1)
180: 3c 60 00 00 lis 3, 0
184: 3c 80 00 00 lis 4, 0
188: 93 81 00 10 stw 28, 16(1)
18c: 3f 80 00 00 lis 28, 0
190: 80 63 00 00 lwz 3, 0(3)
194: 80 84 00 00 lwz 4, 0(4)
198: 54 63 60 26 slwi 3, 3, 12
19c: 3c 63 c0 00 addis 3, 3, -16384
1a0: 90 7c 00 00 stw 3, 0(28)
1a4: 3c 60 00 00 lis 3, 0
1a8: 93 a1 00 14 stw 29, 20(1)
1ac: 93 c1 00 18 stw 30, 24(1)
1b0: 90 83 00 00 stw 4, 0(3)
1b4: 48 00 00 01 bl .+0
1b8: 38 60 00 00 li 3, 0
1bc: 48 00 00 01 bl .+0
1c0: 3c 60 00 00 lis 3, 0
1c4: 4c c6 31 82 crclr 6
1c8: 38 63 00 00 addi 3, 3, 0
1cc: 48 00 00 01 bl .+0
1d0: 3c 80 ff fd lis 4, -3
1d4: 3c 60 00 00 lis 3, 0
1d8: 4c c6 31 82 crclr 6
1dc: 60 9e f0 00 ori 30, 4, 61440
1e0: 38 63 00 00 addi 3, 3, 0
1e4: 7f c4 f3 78 mr 4, 30
1e8: 38 a0 f0 00 li 5, -4096
1ec: 48 00 00 01 bl .+0
1f0: 3c 80 ff dd lis 4, -35
1f4: 3c 60 00 00 lis 3, 0
1f8: 4c c6 31 82 crclr 6
1fc: 60 9d f0 00 ori 29, 4, 61440
200: 38 63 00 00 addi 3, 3, 0
204: 7f a4 eb 78 mr 4, 29
208: 7f c5 f3 78 mr 5, 30
20c: 48 00 00 01 bl .+0
210: 3f c0 00 00 lis 30, 0
214: 3c 60 00 00 lis 3, 0
218: 4c c6 31 82 crclr 6
21c: 80 9e 00 00 lwz 4, 0(30)
220: 38 63 00 00 addi 3, 3, 0
224: 7f a5 eb 78 mr 5, 29
228: 48 00 00 01 bl .+0
22c: 80 7c 00 00 lwz 3, 0(28)
230: 3c 80 01 00 lis 4, 256
234: 4c c6 31 82 crclr 6
238: 38 63 ff ff addi 3, 3, -1
23c: 80 be 00 00 lwz 5, 0(30)
240: 3c 63 10 00 addis 3, 3, 4096
244: 54 63 00 06 rlwinm 3, 3, 0, 0, 3
248: 50 64 02 0c rlwimi 4, 3, 0, 8, 6
24c: 3c 60 00 00 lis 3, 0
250: 38 63 00 00 addi 3, 3, 0
254: 48 00 00 01 bl .+0
258: 83 c1 00 18 lwz 30, 24(1)
25c: 83 a1 00 14 lwz 29, 20(1)
260: 83 81 00 10 lwz 28, 16(1)
264: 80 01 00 24 lwz 0, 36(1)
268: 38 21 00 20 addi 1, 1, 32
26c: 7c 08 03 a6 mtlr 0
270: 4e 80 00 20 blr
00000274 add_system_ram_resources:
274: 7c 08 02 a6 mflr 0
278: 90 01 00 04 stw 0, 4(1)
27c: 94 21 ff c0 stwu 1, -64(1)
280: 3c 60 00 00 lis 3, 0
284: 93 a1 00 34 stw 29, 52(1)
288: 3b a3 00 00 addi 29, 3, 0
28c: 80 7d 00 10 lwz 3, 16(29)
290: 93 81 00 30 stw 28, 48(1)
294: 1c 63 00 18 mulli 3, 3, 24
298: 83 9d 00 20 lwz 28, 32(29)
29c: 7c 7c 1a 14 add 3, 28, 3
2a0: 92 a1 00 14 stw 21, 20(1)
2a4: 7c 1c 18 40 cmplw 28, 3
2a8: 92 c1 00 18 stw 22, 24(1)
2ac: 92 e1 00 1c stw 23, 28(1)
2b0: 93 01 00 20 stw 24, 32(1)
2b4: 93 21 00 24 stw 25, 36(1)
2b8: 93 41 00 28 stw 26, 40(1)
2bc: 93 61 00 2c stw 27, 44(1)
2c0: 93 c1 00 38 stw 30, 56(1)
2c4: 40 80 00 ac bf 0, .+172
2c8: 3c 60 00 00 lis 3, 0
2cc: 3c 80 00 00 lis 4, 0
2d0: 3c a0 81 00 lis 5, -32512
2d4: 3c c0 00 00 lis 6, 0
2d8: 3b 7c ff e8 addi 27, 28, -24
2dc: 3b 40 00 00 li 26, 0
2e0: 3b 23 00 00 addi 25, 3, 0
2e4: 3b 04 00 00 addi 24, 4, 0
2e8: 60 b7 02 00 ori 23, 5, 512
2ec: 3b c6 00 00 addi 30, 6, 0
2f0: 80 79 00 18 lwz 3, 24(25)
2f4: 38 80 0d c0 li 4, 3520
2f8: 38 a0 00 28 li 5, 40
2fc: 82 db 00 1c lwz 22, 28(27)
300: 82 bb 00 24 lwz 21, 36(27)
304: 48 00 00 01 bl .+0
308: 7c 64 1b 78 mr 4, 3
30c: 7c 63 00 34 cntlzw 3, 3
310: 28 04 00 00 cmplwi 4, 0
314: 54 63 df fe rlwinm 3, 3, 27, 31, 31
318: 0f 03 00 00 twnei 3, 0
31c: 41 82 00 34 bt 2, .+52
320: 7c 76 aa 14 add 3, 22, 21
324: 93 04 00 10 stw 24, 16(4)
328: 38 63 ff ff addi 3, 3, -1
32c: 90 64 00 0c stw 3, 12(4)
330: 7f c3 f3 78 mr 3, 30
334: 93 44 00 00 stw 26, 0(4)
338: 92 c4 00 04 stw 22, 4(4)
33c: 93 44 00 08 stw 26, 8(4)
340: 92 e4 00 14 stw 23, 20(4)
344: 48 00 00 01 bl .+0
348: 54 63 0f fe srwi 3, 3, 31
34c: 0f 03 00 00 twnei 3, 0
350: 80 7d 00 10 lwz 3, 16(29)
354: 3b 9c 00 18 addi 28, 28, 24
358: 3b 7b 00 18 addi 27, 27, 24
35c: 80 9d 00 20 lwz 4, 32(29)
360: 1c 63 00 18 mulli 3, 3, 24
364: 7c 64 1a 14 add 3, 4, 3
368: 7c 1c 18 40 cmplw 28, 3
36c: 41 80 ff 84 bt 0, .+65412
370: 38 60 00 00 li 3, 0
374: 83 c1 00 38 lwz 30, 56(1)
378: 83 a1 00 34 lwz 29, 52(1)
37c: 83 81 00 30 lwz 28, 48(1)
380: 83 61 00 2c lwz 27, 44(1)
384: 83 41 00 28 lwz 26, 40(1)
388: 83 21 00 24 lwz 25, 36(1)
38c: 83 01 00 20 lwz 24, 32(1)
390: 82 e1 00 1c lwz 23, 28(1)
394: 82 c1 00 18 lwz 22, 24(1)
398: 82 a1 00 14 lwz 21, 20(1)
39c: 80 01 00 44 lwz 0, 68(1)
3a0: 38 21 00 40 addi 1, 1, 64
3a4: 7c 08 03 a6 mtlr 0
3a8: 4e 80 00 20 blr
[-- Attachment #5: mem-diff.txt --]
[-- Type: text/plain, Size: 45633 bytes --]
mem-working.o: file format ELF32-ppc | mem-broken.o: file format ELF32-ppc
Disassembly of section .text: Disassembly of section .text:
00000000 phys_mem_access_prot: 00000000 phys_mem_access_prot:
0: 7c 08 02 a6 mflr 0 0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1) 4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff e0 stwu 1, -32(1) 8: 94 21 ff e0 stwu 1, -32(1)
c: 93 a1 00 14 stw 29, 20(1) c: 93 a1 00 14 stw 29, 20(1)
10: 7c fd 3b 78 mr 29, 7 10: 7c fd 3b 78 mr 29, 7
14: 3c e0 00 00 lis 7, 0 14: 3c e0 00 00 lis 7, 0
18: 38 e7 00 00 addi 7, 7, 0 18: 38 e7 00 00 addi 7, 7, 0
1c: 81 07 00 a0 lwz 8, 160(7) 1c: 81 07 00 a0 lwz 8, 160(7)
20: 93 c1 00 18 stw 30, 24(1) 20: 93 c1 00 18 stw 30, 24(1)
24: 28 08 00 00 cmplwi 8, 0 24: 28 08 00 00 cmplwi 8, 0
28: 7c 7e 1b 78 mr 30, 3 28: 7c 7e 1b 78 mr 30, 3
2c: 41 82 00 20 bt 2, .+32 2c: 41 82 00 20 bt 2, .+32
30: 80 7d 00 00 lwz 3, 0(29) 30: 80 7d 00 00 lwz 3, 0(29)
34: 38 e1 00 08 addi 7, 1, 8 34: 38 e1 00 08 addi 7, 1, 8
38: 7d 09 03 a6 mtctr 8 38: 7d 09 03 a6 mtctr 8
3c: 90 61 00 08 stw 3, 8(1) 3c: 90 61 00 08 stw 3, 8(1)
40: 7f c3 f3 78 mr 3, 30 40: 7f c3 f3 78 mr 3, 30
44: 4e 80 04 21 bctrl 44: 4e 80 04 21 bctrl
48: 48 00 00 28 b .+40 48: 48 00 00 28 b .+40
4c: 7c a3 2b 78 mr 3, 5 4c: 7c a3 2b 78 mr 3, 5
50: 48 00 00 01 bl .+0 50: 48 00 00 01 bl .+0
54: 28 03 00 00 cmplwi 3, 0 54: 28 03 00 00 cmplwi 3, 0
58: 80 7d 00 00 lwz 3, 0(29) 58: 80 7d 00 00 lwz 3, 0(29)
5c: 40 82 00 10 bf 2, .+16 5c: 40 82 00 10 bf 2, .+16
60: 54 63 06 26 rlwinm 3, 3, 0, 24, 1 60: 54 63 06 26 rlwinm 3, 3, 0, 24, 1
64: 60 63 05 00 ori 3, 3, 1280 64: 60 63 05 00 ori 3, 3, 1280
68: 90 7d 00 00 stw 3, 0(29) 68: 90 7d 00 00 stw 3, 0(29)
6c: 90 7e 00 00 stw 3, 0(30) 6c: 90 7e 00 00 stw 3, 0(30)
70: 83 c1 00 18 lwz 30, 24(1) 70: 83 c1 00 18 lwz 30, 24(1)
74: 83 a1 00 14 lwz 29, 20(1) 74: 83 a1 00 14 lwz 29, 20(1)
78: 80 01 00 24 lwz 0, 36(1) 78: 80 01 00 24 lwz 0, 36(1)
7c: 38 21 00 20 addi 1, 1, 32 7c: 38 21 00 20 addi 1, 1, 32
80: 7c 08 03 a6 mtlr 0 80: 7c 08 03 a6 mtlr 0
84: 4e 80 00 20 blr 84: 4e 80 00 20 blr
00000088 free_initmem: 00000088 free_initmem:
88: 7c 08 02 a6 mflr 0 88: 7c 08 02 a6 mflr 0
8c: 90 01 00 04 stw 0, 4(1) 8c: 90 01 00 04 stw 0, 4(1)
90: 94 21 ff f0 stwu 1, -16(1) 90: 94 21 ff f0 stwu 1, -16(1)
94: 3c 60 00 00 lis 3, 0 94: 3c 60 00 00 lis 3, 0
98: 3c 80 00 00 lis 4, 0 98: 3c 80 00 00 lis 4, 0
9c: 38 63 00 00 addi 3, 3, 0 9c: 38 63 00 00 addi 3, 3, 0
a0: 38 84 00 00 addi 4, 4, 0 a0: 38 84 00 00 addi 4, 4, 0
a4: 90 83 00 60 stw 4, 96(3) a4: 90 83 00 60 stw 4, 96(3)
a8: 48 00 00 01 bl .+0 a8: 48 00 00 01 bl .+0
ac: 3c 60 00 00 lis 3, 0 ac: 3c 60 00 00 lis 3, 0
b0: 38 80 00 01 li 4, 1 b0: 38 80 00 01 li 4, 1
b4: 98 83 00 00 stb 4, 0(3) b4: 98 83 00 00 stb 4, 0(3)
b8: 3c 60 00 00 lis 3, 0 b8: 3c 60 00 00 lis 3, 0
bc: 3c 80 00 00 lis 4, 0 bc: 3c 80 00 00 lis 4, 0
c0: 3c a0 00 00 lis 5, 0 c0: 3c a0 00 00 lis 5, 0
c4: 38 63 00 00 addi 3, 3, 0 c4: 38 63 00 00 addi 3, 3, 0
c8: 38 84 00 00 addi 4, 4, 0 c8: 38 84 00 00 addi 4, 4, 0
cc: 38 c5 00 00 addi 6, 5, 0 cc: 38 c5 00 00 addi 6, 5, 0
d0: 38 a0 00 cc li 5, 204 d0: 38 a0 00 cc li 5, 204
d4: 48 00 00 01 bl .+0 d4: 48 00 00 01 bl .+0
d8: 80 01 00 14 lwz 0, 20(1) d8: 80 01 00 14 lwz 0, 20(1)
dc: 38 21 00 10 addi 1, 1, 16 dc: 38 21 00 10 addi 1, 1, 16
e0: 7c 08 03 a6 mtlr 0 e0: 7c 08 03 a6 mtlr 0
e4: 4e 80 00 20 blr e4: 4e 80 00 20 blr
000000e8 flush_dcache_page: 000000e8 flush_dcache_page:
e8: 80 83 00 00 lwz 4, 0(3) e8: 80 83 00 00 lwz 4, 0(3)
ec: 70 84 08 00 andi. 4, 4, 2048 ec: 70 84 08 00 andi. 4, 4, 2048
f0: 4d 82 00 20 bclr 12, 2 f0: 4d 82 00 20 bclr 12, 2
f4: 38 80 08 00 li 4, 2048 f4: 38 80 08 00 li 4, 2048
f8: 7c a0 18 28 lwarx 5, 0, 3 f8: 7c a0 18 28 lwarx 5, 0, 3
fc: 7c a5 20 78 andc 5, 5, 4 fc: 7c a5 20 78 andc 5, 5, 4
100: 7c a0 19 2d stwcx. 5, 0, 3 100: 7c a0 19 2d stwcx. 5, 0, 3
104: 40 a2 ff f4 bc 5, 2, .+65524 104: 40 a2 ff f4 bc 5, 2, .+65524
108: 4e 80 00 20 blr 108: 4e 80 00 20 blr
0000010c flush_dcache_icache_page: 0000010c flush_dcache_icache_page:
10c: 7c 08 02 a6 mflr 0 10c: 7c 08 02 a6 mflr 0
110: 90 01 00 04 stw 0, 4(1) 110: 90 01 00 04 stw 0, 4(1)
114: 94 21 ff f0 stwu 1, -16(1) 114: 94 21 ff f0 stwu 1, -16(1)
118: 80 82 00 00 lwz 4, 0(2) 118: 80 82 00 00 lwz 4, 0(2)
11c: 38 84 00 01 addi 4, 4, 1 11c: 38 84 00 01 addi 4, 4, 1
120: 90 82 00 00 stw 4, 0(2) 120: 90 82 00 00 stw 4, 0(2)
124: 80 82 0a e4 lwz 4, 2788(2) 124: 80 82 0a e4 lwz 4, 2788(2)
128: 38 84 00 01 addi 4, 4, 1 128: 38 84 00 01 addi 4, 4, 1
12c: 90 82 0a e4 stw 4, 2788(2) 12c: 90 82 0a e4 stw 4, 2788(2)
130: 3c 80 00 00 lis 4, 0 130: 3c 80 00 00 lis 4, 0
134: 80 84 00 00 lwz 4, 0(4) 134: 80 84 00 00 lwz 4, 0(4)
138: 7c 64 18 50 subf 3, 4, 3 138: 7c 64 18 50 subf 3, 4, 3
13c: 3c 80 cc cc lis 4, -13108 13c: 3c 80 cc cc lis 4, -13108
140: 54 63 e8 fe srwi 3, 3, 3 140: 54 63 e8 fe srwi 3, 3, 3
144: 60 84 d0 00 ori 4, 4, 53248 144: 60 84 d0 00 ori 4, 4, 53248
148: 7c 63 21 d6 mullw 3, 3, 4 148: 7c 63 21 d6 mullw 3, 3, 4
14c: 3c 63 c0 00 addis 3, 3, -16384 14c: 3c 63 c0 00 addis 3, 3, -16384
150: 48 00 00 01 bl .+0 150: 48 00 00 01 bl .+0
154: 80 62 0a e4 lwz 3, 2788(2) 154: 80 62 0a e4 lwz 3, 2788(2)
158: 38 63 ff ff addi 3, 3, -1 158: 38 63 ff ff addi 3, 3, -1
15c: 90 62 0a e4 stw 3, 2788(2) 15c: 90 62 0a e4 stw 3, 2788(2)
160: 80 62 00 00 lwz 3, 0(2) 160: 80 62 00 00 lwz 3, 0(2)
164: 38 63 ff ff addi 3, 3, -1 164: 38 63 ff ff addi 3, 3, -1
168: 90 62 00 00 stw 3, 0(2) 168: 90 62 00 00 stw 3, 0(2)
16c: 80 01 00 14 lwz 0, 20(1) 16c: 80 01 00 14 lwz 0, 20(1)
170: 38 21 00 10 addi 1, 1, 16 170: 38 21 00 10 addi 1, 1, 16
174: 7c 08 03 a6 mtlr 0 174: 7c 08 03 a6 mtlr 0
178: 4e 80 00 20 blr 178: 4e 80 00 20 blr
0000017c clear_user_page: 0000017c clear_user_page:
17c: 38 80 00 80 li 4, 128 | 17c: 94 21 ff f0 stwu 1, -16(1)
180: 7c 89 03 a6 mtctr 4 | 180: 38 80 00 80 li 4, 128
184: 7c 00 1f ec dcbz 0, 3 | 184: 38 63 ff e0 addi 3, 3, -32
188: 38 63 00 20 addi 3, 3, 32 | 188: 7c 89 03 a6 mtctr 4
18c: 42 00 ff f8 bdnz .+65528 | 18c: 38 81 00 0f addi 4, 1, 15
190: 80 65 00 00 lwz 3, 0(5) | 190: 8c c3 00 20 lbzu 6, 32(3)
194: 70 63 08 00 andi. 3, 3, 2048 | 194: 98 c1 00 0f stb 6, 15(1)
198: 4d 82 00 20 bclr 12, 2 | 198: 7c 00 27 ec dcbz 0, 4
19c: 38 60 08 00 li 3, 2048 | 19c: 42 00 ff f4 bdnz .+65524
1a0: 7c 80 28 28 lwarx 4, 0, 5 | 1a0: 80 65 00 00 lwz 3, 0(5)
1a4: 7c 84 18 78 andc 4, 4, 3 | 1a4: 70 63 08 00 andi. 3, 3, 2048
1a8: 7c 80 29 2d stwcx. 4, 0, 5 | 1a8: 41 82 00 18 bt 2, .+24
1ac: 40 a2 ff f4 bc 5, 2, .+65524 | 1ac: 38 60 08 00 li 3, 2048
1b0: 4e 80 00 20 blr | 1b0: 7c 80 28 28 lwarx 4, 0, 5
| 1b4: 7c 84 18 78 andc 4, 4, 3
000001b4 copy_user_page: | 1b8: 7c 80 29 2d stwcx. 4, 0, 5
1b4: 7c 08 02 a6 mflr 0 | 1bc: 40 a2 ff f4 bc 5, 2, .+65524
1b8: 90 01 00 04 stw 0, 4(1) | 1c0: 38 21 00 10 addi 1, 1, 16
1bc: 94 21 ff f0 stwu 1, -16(1) | 1c4: 4e 80 00 20 blr
1c0: 93 c1 00 08 stw 30, 8(1) |
1c4: 7c de 33 78 mr 30, 6 | 000001c8 copy_user_page:
1c8: 48 00 00 01 bl .+0 | 1c8: 7c 08 02 a6 mflr 0
1cc: 80 7e 00 00 lwz 3, 0(30) | 1cc: 90 01 00 04 stw 0, 4(1)
1d0: 70 63 08 00 andi. 3, 3, 2048 | 1d0: 94 21 ff f0 stwu 1, -16(1)
1d4: 41 82 00 18 bt 2, .+24 | 1d4: 93 c1 00 08 stw 30, 8(1)
1d8: 38 60 08 00 li 3, 2048 | 1d8: 7c de 33 78 mr 30, 6
1dc: 7c 80 f0 28 lwarx 4, 0, 30 | 1dc: 48 00 00 01 bl .+0
1e0: 7c 84 18 78 andc 4, 4, 3 | 1e0: 80 7e 00 00 lwz 3, 0(30)
1e4: 7c 80 f1 2d stwcx. 4, 0, 30 | 1e4: 70 63 08 00 andi. 3, 3, 2048
1e8: 40 a2 ff f4 bc 5, 2, .+65524 | 1e8: 41 82 00 18 bt 2, .+24
1ec: 83 c1 00 08 lwz 30, 8(1) | 1ec: 38 60 08 00 li 3, 2048
1f0: 80 01 00 14 lwz 0, 20(1) | 1f0: 7c 80 f0 28 lwarx 4, 0, 30
1f4: 38 21 00 10 addi 1, 1, 16 | 1f4: 7c 84 18 78 andc 4, 4, 3
1f8: 7c 08 03 a6 mtlr 0 | 1f8: 7c 80 f1 2d stwcx. 4, 0, 30
1fc: 4e 80 00 20 blr | 1fc: 40 a2 ff f4 bc 5, 2, .+65524
| 200: 83 c1 00 08 lwz 30, 8(1)
00000200 flush_icache_user_range: | 204: 80 01 00 14 lwz 0, 20(1)
200: 7c 08 02 a6 mflr 0 | 208: 38 21 00 10 addi 1, 1, 16
204: 90 01 00 04 stw 0, 4(1) | 20c: 7c 08 03 a6 mtlr 0
208: 94 21 ff e0 stwu 1, -32(1) | 210: 4e 80 00 20 blr
20c: 3c 60 00 00 lis 3, 0 |
210: 93 81 00 10 stw 28, 16(1) | 00000214 flush_icache_user_range:
214: 7c 9c 23 78 mr 28, 4 | 214: 7c 08 02 a6 mflr 0
218: 38 63 00 00 addi 3, 3, 0 | 218: 90 01 00 04 stw 0, 4(1)
21c: 38 80 00 53 li 4, 83 | 21c: 94 21 ff e0 stwu 1, -32(1)
220: 93 a1 00 14 stw 29, 20(1) | 220: 3c 60 00 00 lis 3, 0
224: 7c bd 2b 78 mr 29, 5 | 224: 93 81 00 10 stw 28, 16(1)
228: 38 a0 00 00 li 5, 0 | 228: 7c 9c 23 78 mr 28, 4
22c: 93 c1 00 18 stw 30, 24(1) | 22c: 38 63 00 00 addi 3, 3, 0
230: 7c de 33 78 mr 30, 6 | 230: 38 80 00 53 li 4, 83
234: 48 00 00 01 bl .+0 | 234: 93 a1 00 14 stw 29, 20(1)
238: 3c 60 00 00 lis 3, 0 | 238: 7c bd 2b 78 mr 29, 5
23c: 3c 80 cc cc lis 4, -13108 | 23c: 38 a0 00 00 li 5, 0
240: 80 63 00 00 lwz 3, 0(3) | 240: 93 c1 00 18 stw 30, 24(1)
244: 60 84 d0 00 ori 4, 4, 53248 | 244: 7c de 33 78 mr 30, 6
248: 7c 63 e0 50 subf 3, 3, 28 | 248: 48 00 00 01 bl .+0
24c: 54 63 e8 fe srwi 3, 3, 3 | 24c: 3c 60 00 00 lis 3, 0
250: 7c 63 21 d6 mullw 3, 3, 4 | 250: 3c 80 cc cc lis 4, -13108
254: 57 a4 05 3e clrlwi 4, 29, 20 | 254: 80 63 00 00 lwz 3, 0(3)
258: 50 64 00 26 rlwimi 4, 3, 0, 0, 19 | 258: 60 84 d0 00 ori 4, 4, 53248
25c: 3c 64 c0 00 addis 3, 4, -16384 | 25c: 7c 63 e0 50 subf 3, 3, 28
260: 7c 83 f2 14 add 4, 3, 30 | 260: 54 63 e8 fe srwi 3, 3, 3
264: 48 00 00 01 bl .+0 | 264: 7c 63 21 d6 mullw 3, 3, 4
268: 83 c1 00 18 lwz 30, 24(1) | 268: 57 a4 05 3e clrlwi 4, 29, 20
26c: 83 a1 00 14 lwz 29, 20(1) | 26c: 50 64 00 26 rlwimi 4, 3, 0, 0, 19
270: 83 81 00 10 lwz 28, 16(1) | 270: 3c 64 c0 00 addis 3, 4, -16384
274: 80 01 00 24 lwz 0, 36(1) | 274: 7c 83 f2 14 add 4, 3, 30
278: 38 21 00 20 addi 1, 1, 32 | 278: 48 00 00 01 bl .+0
27c: 7c 08 03 a6 mtlr 0 | 27c: 83 c1 00 18 lwz 30, 24(1)
280: 4e 80 00 20 blr | 280: 83 a1 00 14 lwz 29, 20(1)
| 284: 83 81 00 10 lwz 28, 16(1)
00000284 update_mmu_cache: | 288: 80 01 00 24 lwz 0, 36(1)
284: 4e 80 00 20 blr | 28c: 38 21 00 20 addi 1, 1, 32
| 290: 7c 08 03 a6 mtlr 0
00000288 devmem_is_allowed: | 294: 4e 80 00 20 blr
288: 7c 08 02 a6 mflr 0 |
28c: 90 01 00 04 stw 0, 4(1) | 00000298 update_mmu_cache:
290: 94 21 ff f0 stwu 1, -16(1) | 298: 4e 80 00 20 blr
294: 93 c1 00 08 stw 30, 8(1) |
298: 7c 7e 1b 78 mr 30, 3 | 0000029c devmem_is_allowed:
29c: 54 63 65 3e srwi 3, 3, 20 | 29c: 7c 08 02 a6 mflr 0
2a0: 57 c4 60 26 slwi 4, 30, 12 | 2a0: 90 01 00 04 stw 0, 4(1)
2a4: 48 00 00 01 bl .+0 | 2a4: 94 21 ff f0 stwu 1, -16(1)
2a8: 70 63 00 01 andi. 3, 3, 1 | 2a8: 93 c1 00 08 stw 30, 8(1)
2ac: 38 60 00 00 li 3, 0 | 2ac: 7c 7e 1b 78 mr 30, 3
2b0: 41 81 00 14 bt 1, .+20 | 2b0: 54 63 65 3e srwi 3, 3, 20
2b4: 7f c3 f3 78 mr 3, 30 | 2b4: 57 c4 60 26 slwi 4, 30, 12
2b8: 48 00 00 01 bl .+0 2b8: 48 00 00 01 bl .+0
2bc: 7c 63 00 34 cntlzw 3, 3 | 2bc: 70 63 00 01 andi. 3, 3, 1
2c0: 54 63 df fe rlwinm 3, 3, 27, 31, | 2c0: 38 60 00 00 li 3, 0
2c4: 83 c1 00 08 lwz 30, 8(1) | 2c4: 41 81 00 14 bt 1, .+20
2c8: 80 01 00 14 lwz 0, 20(1) | 2c8: 7f c3 f3 78 mr 3, 30
2cc: 38 21 00 10 addi 1, 1, 16 | 2cc: 48 00 00 01 bl .+0
2d0: 7c 08 03 a6 mtlr 0 | 2d0: 7c 63 00 34 cntlzw 3, 3
2d4: 4e 80 00 20 blr | 2d4: 54 63 df fe rlwinm 3, 3, 27, 31,
> 2d8: 83 c1 00 08 lwz 30, 8(1)
> 2dc: 80 01 00 14 lwz 0, 20(1)
> 2e0: 38 21 00 10 addi 1, 1, 16
> 2e4: 7c 08 03 a6 mtlr 0
> 2e8: 4e 80 00 20 blr
Disassembly of section .init.text: Disassembly of section .init.text:
00000000 mem_topology_setup: 00000000 mem_topology_setup:
0: 7c 08 02 a6 mflr 0 0: 7c 08 02 a6 mflr 0
4: 90 01 00 04 stw 0, 4(1) 4: 90 01 00 04 stw 0, 4(1)
8: 94 21 ff f0 stwu 1, -16(1) 8: 94 21 ff f0 stwu 1, -16(1)
c: 48 00 00 01 bl .+0 c: 48 00 00 01 bl .+0
10: 54 84 a0 3e rotlwi 4, 4, 20 10: 54 84 a0 3e rotlwi 4, 4, 20
14: 3c a0 00 00 lis 5, 0 14: 3c a0 00 00 lis 5, 0
18: 50 64 a0 16 rlwimi 4, 3, 20, 0, 1 18: 50 64 a0 16 rlwimi 4, 3, 20, 0, 1
1c: 3c 60 00 00 lis 3, 0 1c: 3c 60 00 00 lis 3, 0
20: 90 85 00 00 stw 4, 0(5) 20: 90 85 00 00 stw 4, 0(5)
24: 38 a0 ff ff li 5, -1 24: 38 a0 ff ff li 5, -1
28: 90 83 00 00 stw 4, 0(3) 28: 90 83 00 00 stw 4, 0(3)
2c: 3c 60 00 00 lis 3, 0 2c: 3c 60 00 00 lis 3, 0
30: 38 80 00 00 li 4, 0 30: 38 80 00 00 li 4, 0
34: 38 c0 ff ff li 6, -1 34: 38 c0 ff ff li 6, -1
38: 39 00 00 00 li 8, 0 38: 39 00 00 00 li 8, 0
3c: 90 83 00 00 stw 4, 0(3) 3c: 90 83 00 00 stw 4, 0(3)
40: 3c 60 00 00 lis 3, 0 40: 3c 60 00 00 lis 3, 0
44: 38 80 00 00 li 4, 0 44: 38 80 00 00 li 4, 0
48: 38 63 00 00 addi 3, 3, 0 48: 38 63 00 00 addi 3, 3, 0
4c: 38 e3 00 10 addi 7, 3, 16 4c: 38 e3 00 10 addi 7, 3, 16
50: 38 60 00 00 li 3, 0 50: 38 60 00 00 li 3, 0
54: 48 00 00 01 bl .+0 54: 48 00 00 01 bl .+0
58: 80 01 00 14 lwz 0, 20(1) 58: 80 01 00 14 lwz 0, 20(1)
5c: 38 21 00 10 addi 1, 1, 16 5c: 38 21 00 10 addi 1, 1, 16
60: 7c 08 03 a6 mtlr 0 60: 7c 08 03 a6 mtlr 0
64: 4e 80 00 20 blr 64: 4e 80 00 20 blr
00000068 initmem_init: 00000068 initmem_init:
68: 7c 08 02 a6 mflr 0 68: 7c 08 02 a6 mflr 0
6c: 90 01 00 04 stw 0, 4(1) 6c: 90 01 00 04 stw 0, 4(1)
70: 94 21 ff f0 stwu 1, -16(1) 70: 94 21 ff f0 stwu 1, -16(1)
74: 38 60 00 00 li 3, 0 74: 38 60 00 00 li 3, 0
78: 48 00 00 01 bl .+0 78: 48 00 00 01 bl .+0
7c: 80 01 00 14 lwz 0, 20(1) 7c: 80 01 00 14 lwz 0, 20(1)
80: 38 21 00 10 addi 1, 1, 16 80: 38 21 00 10 addi 1, 1, 16
84: 7c 08 03 a6 mtlr 0 84: 7c 08 03 a6 mtlr 0
88: 4e 80 00 20 blr 88: 4e 80 00 20 blr
0000008c paging_init: 0000008c paging_init:
8c: 7c 08 02 a6 mflr 0 8c: 7c 08 02 a6 mflr 0
90: 90 01 00 04 stw 0, 4(1) 90: 90 01 00 04 stw 0, 4(1)
94: 94 21 ff d0 stwu 1, -48(1) 94: 94 21 ff d0 stwu 1, -48(1)
98: 93 21 00 14 stw 25, 20(1) 98: 93 21 00 14 stw 25, 20(1)
9c: 93 41 00 18 stw 26, 24(1) 9c: 93 41 00 18 stw 26, 24(1)
a0: 93 61 00 1c stw 27, 28(1) a0: 93 61 00 1c stw 27, 28(1)
a4: 93 81 00 20 stw 28, 32(1) a4: 93 81 00 20 stw 28, 32(1)
a8: 93 a1 00 24 stw 29, 36(1) a8: 93 a1 00 24 stw 29, 36(1)
ac: 93 c1 00 28 stw 30, 40(1) ac: 93 c1 00 28 stw 30, 40(1)
b0: 48 00 00 01 bl .+0 b0: 48 00 00 01 bl .+0
b4: 7c 7e 1b 78 mr 30, 3 b4: 7c 7e 1b 78 mr 30, 3
b8: 7c 9d 23 78 mr 29, 4 b8: 7c 9d 23 78 mr 29, 4
bc: 3f 40 ff fe lis 26, -2 bc: 3f 40 ff fe lis 26, -2
c0: 48 00 00 01 bl .+0 c0: 48 00 00 01 bl .+0
c4: 7c 7c 1b 78 mr 28, 3 c4: 7c 7c 1b 78 mr 28, 3
c8: 7c 9b 23 78 mr 27, 4 c8: 7c 9b 23 78 mr 27, 4
cc: 3b 20 00 00 li 25, 0 cc: 3b 20 00 00 li 25, 0
d0: 38 e1 00 08 addi 7, 1, 8 d0: 38 e1 00 08 addi 7, 1, 8
d4: 7f 43 d3 78 mr 3, 26 d4: 7f 43 d3 78 mr 3, 26
d8: 93 21 00 10 stw 25, 16(1) d8: 93 21 00 10 stw 25, 16(1)
dc: 38 a0 00 00 li 5, 0 dc: 38 a0 00 00 li 5, 0
e0: 38 c0 00 00 li 6, 0 e0: 38 c0 00 00 li 6, 0
e4: 93 21 00 08 stw 25, 8(1) e4: 93 21 00 08 stw 25, 8(1)
e8: 48 00 00 01 bl .+0 e8: 48 00 00 01 bl .+0
ec: 3b 5a 10 00 addi 26, 26, 4096 ec: 3b 5a 10 00 addi 26, 26, 4096
f0: 2c 1a f0 00 cmpwi 26, -4096 f0: 2c 1a f0 00 cmpwi 26, -4096
f4: 40 82 ff dc bf 2, .+65500 f4: 40 82 ff dc bf 2, .+65500
f8: 3c 60 00 00 lis 3, 0 f8: 3c 60 00 00 lis 3, 0
fc: 4c c6 31 82 crclr 6 fc: 4c c6 31 82 crclr 6
100: 7f 85 e3 78 mr 5, 28 100: 7f 85 e3 78 mr 5, 28
104: 38 63 00 00 addi 3, 3, 0 104: 38 63 00 00 addi 3, 3, 0
108: 7f 66 db 78 mr 6, 27 108: 7f 66 db 78 mr 6, 27
10c: 7f c7 f3 78 mr 7, 30 10c: 7f c7 f3 78 mr 7, 30
110: 7f a8 eb 78 mr 8, 29 110: 7f a8 eb 78 mr 8, 29
114: 48 00 00 01 bl .+0 114: 48 00 00 01 bl .+0
118: 7c 7d d8 10 subfc 3, 29, 27 118: 7c 7d d8 10 subfc 3, 29, 27
11c: 4c c6 31 82 crclr 6 11c: 4c c6 31 82 crclr 6
120: 7c be e1 10 subfe 5, 30, 28 120: 7c be e1 10 subfe 5, 30, 28
124: 54 64 60 3e rotlwi 4, 3, 12 124: 54 64 60 3e rotlwi 4, 3, 12
128: 3c 60 00 00 lis 3, 0 128: 3c 60 00 00 lis 3, 0
12c: 50 a4 60 26 rlwimi 4, 5, 12, 0, 1 12c: 50 a4 60 26 rlwimi 4, 5, 12, 0, 1
130: 38 63 00 00 addi 3, 3, 0 130: 38 63 00 00 addi 3, 3, 0
134: 48 00 00 01 bl .+0 134: 48 00 00 01 bl .+0
138: 3c 60 00 00 lis 3, 0 138: 3c 60 00 00 lis 3, 0
13c: 80 83 00 00 lwz 4, 0(3) 13c: 80 83 00 00 lwz 4, 0(3)
140: 3c 60 00 00 lis 3, 0 140: 3c 60 00 00 lis 3, 0
144: 94 83 00 00 stwu 4, 0(3) 144: 94 83 00 00 stwu 4, 0(3)
148: 48 00 00 01 bl .+0 148: 48 00 00 01 bl .+0
14c: 83 c1 00 28 lwz 30, 40(1) 14c: 83 c1 00 28 lwz 30, 40(1)
150: 83 a1 00 24 lwz 29, 36(1) 150: 83 a1 00 24 lwz 29, 36(1)
154: 83 81 00 20 lwz 28, 32(1) 154: 83 81 00 20 lwz 28, 32(1)
158: 83 61 00 1c lwz 27, 28(1) 158: 83 61 00 1c lwz 27, 28(1)
15c: 83 41 00 18 lwz 26, 24(1) 15c: 83 41 00 18 lwz 26, 24(1)
160: 83 21 00 14 lwz 25, 20(1) 160: 83 21 00 14 lwz 25, 20(1)
164: 80 01 00 34 lwz 0, 52(1) 164: 80 01 00 34 lwz 0, 52(1)
168: 38 21 00 30 addi 1, 1, 48 168: 38 21 00 30 addi 1, 1, 48
16c: 7c 08 03 a6 mtlr 0 16c: 7c 08 03 a6 mtlr 0
170: 4e 80 00 20 blr 170: 4e 80 00 20 blr
00000174 mem_init: 00000174 mem_init:
174: 7c 08 02 a6 mflr 0 174: 7c 08 02 a6 mflr 0
178: 90 01 00 04 stw 0, 4(1) 178: 90 01 00 04 stw 0, 4(1)
17c: 94 21 ff e0 stwu 1, -32(1) 17c: 94 21 ff e0 stwu 1, -32(1)
180: 3c 60 00 00 lis 3, 0 180: 3c 60 00 00 lis 3, 0
184: 3c 80 00 00 lis 4, 0 184: 3c 80 00 00 lis 4, 0
188: 93 81 00 10 stw 28, 16(1) 188: 93 81 00 10 stw 28, 16(1)
18c: 3f 80 00 00 lis 28, 0 18c: 3f 80 00 00 lis 28, 0
190: 80 63 00 00 lwz 3, 0(3) 190: 80 63 00 00 lwz 3, 0(3)
194: 80 84 00 00 lwz 4, 0(4) 194: 80 84 00 00 lwz 4, 0(4)
198: 54 63 60 26 slwi 3, 3, 12 198: 54 63 60 26 slwi 3, 3, 12
19c: 3c 63 c0 00 addis 3, 3, -16384 19c: 3c 63 c0 00 addis 3, 3, -16384
1a0: 90 7c 00 00 stw 3, 0(28) 1a0: 90 7c 00 00 stw 3, 0(28)
1a4: 3c 60 00 00 lis 3, 0 1a4: 3c 60 00 00 lis 3, 0
1a8: 93 a1 00 14 stw 29, 20(1) 1a8: 93 a1 00 14 stw 29, 20(1)
1ac: 93 c1 00 18 stw 30, 24(1) 1ac: 93 c1 00 18 stw 30, 24(1)
1b0: 90 83 00 00 stw 4, 0(3) 1b0: 90 83 00 00 stw 4, 0(3)
1b4: 48 00 00 01 bl .+0 1b4: 48 00 00 01 bl .+0
1b8: 38 60 00 00 li 3, 0 1b8: 38 60 00 00 li 3, 0
1bc: 48 00 00 01 bl .+0 1bc: 48 00 00 01 bl .+0
1c0: 3c 60 00 00 lis 3, 0 1c0: 3c 60 00 00 lis 3, 0
1c4: 4c c6 31 82 crclr 6 1c4: 4c c6 31 82 crclr 6
1c8: 38 63 00 00 addi 3, 3, 0 1c8: 38 63 00 00 addi 3, 3, 0
1cc: 48 00 00 01 bl .+0 1cc: 48 00 00 01 bl .+0
1d0: 3c 80 ff fd lis 4, -3 1d0: 3c 80 ff fd lis 4, -3
1d4: 3c 60 00 00 lis 3, 0 1d4: 3c 60 00 00 lis 3, 0
1d8: 4c c6 31 82 crclr 6 1d8: 4c c6 31 82 crclr 6
1dc: 60 9e f0 00 ori 30, 4, 61440 1dc: 60 9e f0 00 ori 30, 4, 61440
1e0: 38 63 00 00 addi 3, 3, 0 1e0: 38 63 00 00 addi 3, 3, 0
1e4: 7f c4 f3 78 mr 4, 30 1e4: 7f c4 f3 78 mr 4, 30
1e8: 38 a0 f0 00 li 5, -4096 1e8: 38 a0 f0 00 li 5, -4096
1ec: 48 00 00 01 bl .+0 1ec: 48 00 00 01 bl .+0
1f0: 3c 80 ff dd lis 4, -35 1f0: 3c 80 ff dd lis 4, -35
1f4: 3c 60 00 00 lis 3, 0 1f4: 3c 60 00 00 lis 3, 0
1f8: 4c c6 31 82 crclr 6 1f8: 4c c6 31 82 crclr 6
1fc: 60 9d f0 00 ori 29, 4, 61440 1fc: 60 9d f0 00 ori 29, 4, 61440
200: 38 63 00 00 addi 3, 3, 0 200: 38 63 00 00 addi 3, 3, 0
204: 7f a4 eb 78 mr 4, 29 204: 7f a4 eb 78 mr 4, 29
208: 7f c5 f3 78 mr 5, 30 208: 7f c5 f3 78 mr 5, 30
20c: 48 00 00 01 bl .+0 20c: 48 00 00 01 bl .+0
210: 3f c0 00 00 lis 30, 0 210: 3f c0 00 00 lis 30, 0
214: 3c 60 00 00 lis 3, 0 214: 3c 60 00 00 lis 3, 0
218: 4c c6 31 82 crclr 6 218: 4c c6 31 82 crclr 6
21c: 80 9e 00 00 lwz 4, 0(30) 21c: 80 9e 00 00 lwz 4, 0(30)
220: 38 63 00 00 addi 3, 3, 0 220: 38 63 00 00 addi 3, 3, 0
224: 7f a5 eb 78 mr 5, 29 224: 7f a5 eb 78 mr 5, 29
228: 48 00 00 01 bl .+0 228: 48 00 00 01 bl .+0
22c: 80 7c 00 00 lwz 3, 0(28) 22c: 80 7c 00 00 lwz 3, 0(28)
230: 3c 80 01 00 lis 4, 256 230: 3c 80 01 00 lis 4, 256
234: 4c c6 31 82 crclr 6 234: 4c c6 31 82 crclr 6
238: 38 63 ff ff addi 3, 3, -1 238: 38 63 ff ff addi 3, 3, -1
23c: 80 be 00 00 lwz 5, 0(30) 23c: 80 be 00 00 lwz 5, 0(30)
240: 3c 63 10 00 addis 3, 3, 4096 240: 3c 63 10 00 addis 3, 3, 4096
244: 54 63 00 06 rlwinm 3, 3, 0, 0, 3 244: 54 63 00 06 rlwinm 3, 3, 0, 0, 3
248: 50 64 02 0c rlwimi 4, 3, 0, 8, 6 248: 50 64 02 0c rlwimi 4, 3, 0, 8, 6
24c: 3c 60 00 00 lis 3, 0 24c: 3c 60 00 00 lis 3, 0
250: 38 63 00 00 addi 3, 3, 0 250: 38 63 00 00 addi 3, 3, 0
254: 48 00 00 01 bl .+0 254: 48 00 00 01 bl .+0
258: 83 c1 00 18 lwz 30, 24(1) 258: 83 c1 00 18 lwz 30, 24(1)
25c: 83 a1 00 14 lwz 29, 20(1) 25c: 83 a1 00 14 lwz 29, 20(1)
260: 83 81 00 10 lwz 28, 16(1) 260: 83 81 00 10 lwz 28, 16(1)
264: 80 01 00 24 lwz 0, 36(1) 264: 80 01 00 24 lwz 0, 36(1)
268: 38 21 00 20 addi 1, 1, 32 268: 38 21 00 20 addi 1, 1, 32
26c: 7c 08 03 a6 mtlr 0 26c: 7c 08 03 a6 mtlr 0
270: 4e 80 00 20 blr 270: 4e 80 00 20 blr
00000274 add_system_ram_resources: 00000274 add_system_ram_resources:
274: 7c 08 02 a6 mflr 0 274: 7c 08 02 a6 mflr 0
278: 90 01 00 04 stw 0, 4(1) 278: 90 01 00 04 stw 0, 4(1)
27c: 94 21 ff c0 stwu 1, -64(1) 27c: 94 21 ff c0 stwu 1, -64(1)
280: 3c 60 00 00 lis 3, 0 280: 3c 60 00 00 lis 3, 0
284: 93 a1 00 34 stw 29, 52(1) 284: 93 a1 00 34 stw 29, 52(1)
288: 3b a3 00 00 addi 29, 3, 0 288: 3b a3 00 00 addi 29, 3, 0
28c: 80 7d 00 10 lwz 3, 16(29) 28c: 80 7d 00 10 lwz 3, 16(29)
290: 93 81 00 30 stw 28, 48(1) 290: 93 81 00 30 stw 28, 48(1)
294: 1c 63 00 18 mulli 3, 3, 24 294: 1c 63 00 18 mulli 3, 3, 24
298: 83 9d 00 20 lwz 28, 32(29) 298: 83 9d 00 20 lwz 28, 32(29)
29c: 7c 7c 1a 14 add 3, 28, 3 29c: 7c 7c 1a 14 add 3, 28, 3
2a0: 92 a1 00 14 stw 21, 20(1) 2a0: 92 a1 00 14 stw 21, 20(1)
2a4: 7c 1c 18 40 cmplw 28, 3 2a4: 7c 1c 18 40 cmplw 28, 3
2a8: 92 c1 00 18 stw 22, 24(1) 2a8: 92 c1 00 18 stw 22, 24(1)
2ac: 92 e1 00 1c stw 23, 28(1) 2ac: 92 e1 00 1c stw 23, 28(1)
2b0: 93 01 00 20 stw 24, 32(1) 2b0: 93 01 00 20 stw 24, 32(1)
2b4: 93 21 00 24 stw 25, 36(1) 2b4: 93 21 00 24 stw 25, 36(1)
2b8: 93 41 00 28 stw 26, 40(1) 2b8: 93 41 00 28 stw 26, 40(1)
2bc: 93 61 00 2c stw 27, 44(1) 2bc: 93 61 00 2c stw 27, 44(1)
2c0: 93 c1 00 38 stw 30, 56(1) 2c0: 93 c1 00 38 stw 30, 56(1)
2c4: 40 80 00 ac bf 0, .+172 2c4: 40 80 00 ac bf 0, .+172
2c8: 3c 60 00 00 lis 3, 0 2c8: 3c 60 00 00 lis 3, 0
2cc: 3c 80 00 00 lis 4, 0 2cc: 3c 80 00 00 lis 4, 0
2d0: 3c a0 81 00 lis 5, -32512 2d0: 3c a0 81 00 lis 5, -32512
2d4: 3c c0 00 00 lis 6, 0 2d4: 3c c0 00 00 lis 6, 0
2d8: 3b 7c ff e8 addi 27, 28, -24 2d8: 3b 7c ff e8 addi 27, 28, -24
2dc: 3b 40 00 00 li 26, 0 2dc: 3b 40 00 00 li 26, 0
2e0: 3b 23 00 00 addi 25, 3, 0 2e0: 3b 23 00 00 addi 25, 3, 0
2e4: 3b 04 00 00 addi 24, 4, 0 2e4: 3b 04 00 00 addi 24, 4, 0
2e8: 60 b7 02 00 ori 23, 5, 512 2e8: 60 b7 02 00 ori 23, 5, 512
2ec: 3b c6 00 00 addi 30, 6, 0 2ec: 3b c6 00 00 addi 30, 6, 0
2f0: 80 79 00 18 lwz 3, 24(25) 2f0: 80 79 00 18 lwz 3, 24(25)
2f4: 38 80 0d c0 li 4, 3520 2f4: 38 80 0d c0 li 4, 3520
2f8: 38 a0 00 28 li 5, 40 2f8: 38 a0 00 28 li 5, 40
2fc: 82 db 00 1c lwz 22, 28(27) 2fc: 82 db 00 1c lwz 22, 28(27)
300: 82 bb 00 24 lwz 21, 36(27) 300: 82 bb 00 24 lwz 21, 36(27)
304: 48 00 00 01 bl .+0 304: 48 00 00 01 bl .+0
308: 7c 64 1b 78 mr 4, 3 308: 7c 64 1b 78 mr 4, 3
30c: 7c 63 00 34 cntlzw 3, 3 30c: 7c 63 00 34 cntlzw 3, 3
310: 28 04 00 00 cmplwi 4, 0 310: 28 04 00 00 cmplwi 4, 0
314: 54 63 df fe rlwinm 3, 3, 27, 31, 314: 54 63 df fe rlwinm 3, 3, 27, 31,
318: 0f 03 00 00 twnei 3, 0 318: 0f 03 00 00 twnei 3, 0
31c: 41 82 00 34 bt 2, .+52 31c: 41 82 00 34 bt 2, .+52
320: 7c 76 aa 14 add 3, 22, 21 320: 7c 76 aa 14 add 3, 22, 21
324: 93 04 00 10 stw 24, 16(4) 324: 93 04 00 10 stw 24, 16(4)
328: 38 63 ff ff addi 3, 3, -1 328: 38 63 ff ff addi 3, 3, -1
32c: 90 64 00 0c stw 3, 12(4) 32c: 90 64 00 0c stw 3, 12(4)
330: 7f c3 f3 78 mr 3, 30 330: 7f c3 f3 78 mr 3, 30
334: 93 44 00 00 stw 26, 0(4) 334: 93 44 00 00 stw 26, 0(4)
338: 92 c4 00 04 stw 22, 4(4) 338: 92 c4 00 04 stw 22, 4(4)
33c: 93 44 00 08 stw 26, 8(4) 33c: 93 44 00 08 stw 26, 8(4)
340: 92 e4 00 14 stw 23, 20(4) 340: 92 e4 00 14 stw 23, 20(4)
344: 48 00 00 01 bl .+0 344: 48 00 00 01 bl .+0
348: 54 63 0f fe srwi 3, 3, 31 348: 54 63 0f fe srwi 3, 3, 31
34c: 0f 03 00 00 twnei 3, 0 34c: 0f 03 00 00 twnei 3, 0
350: 80 7d 00 10 lwz 3, 16(29) 350: 80 7d 00 10 lwz 3, 16(29)
354: 3b 9c 00 18 addi 28, 28, 24 354: 3b 9c 00 18 addi 28, 28, 24
358: 3b 7b 00 18 addi 27, 27, 24 358: 3b 7b 00 18 addi 27, 27, 24
35c: 80 9d 00 20 lwz 4, 32(29) 35c: 80 9d 00 20 lwz 4, 32(29)
360: 1c 63 00 18 mulli 3, 3, 24 360: 1c 63 00 18 mulli 3, 3, 24
364: 7c 64 1a 14 add 3, 4, 3 364: 7c 64 1a 14 add 3, 4, 3
368: 7c 1c 18 40 cmplw 28, 3 368: 7c 1c 18 40 cmplw 28, 3
36c: 41 80 ff 84 bt 0, .+65412 36c: 41 80 ff 84 bt 0, .+65412
370: 38 60 00 00 li 3, 0 370: 38 60 00 00 li 3, 0
374: 83 c1 00 38 lwz 30, 56(1) 374: 83 c1 00 38 lwz 30, 56(1)
378: 83 a1 00 34 lwz 29, 52(1) 378: 83 a1 00 34 lwz 29, 52(1)
37c: 83 81 00 30 lwz 28, 48(1) 37c: 83 81 00 30 lwz 28, 48(1)
380: 83 61 00 2c lwz 27, 44(1) 380: 83 61 00 2c lwz 27, 44(1)
384: 83 41 00 28 lwz 26, 40(1) 384: 83 41 00 28 lwz 26, 40(1)
388: 83 21 00 24 lwz 25, 36(1) 388: 83 21 00 24 lwz 25, 36(1)
38c: 83 01 00 20 lwz 24, 32(1) 38c: 83 01 00 20 lwz 24, 32(1)
390: 82 e1 00 1c lwz 23, 28(1) 390: 82 e1 00 1c lwz 23, 28(1)
394: 82 c1 00 18 lwz 22, 24(1) 394: 82 c1 00 18 lwz 22, 24(1)
398: 82 a1 00 14 lwz 21, 20(1) 398: 82 a1 00 14 lwz 21, 20(1)
39c: 80 01 00 44 lwz 0, 68(1) 39c: 80 01 00 44 lwz 0, 68(1)
3a0: 38 21 00 40 addi 1, 1, 64 3a0: 38 21 00 40 addi 1, 1, 64
3a4: 7c 08 03 a6 mtlr 0 3a4: 7c 08 03 a6 mtlr 0
3a8: 4e 80 00 20 blr 3a8: 4e 80 00 20 blr
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-21 7:58 ` Nathan Chancellor
@ 2019-07-21 18:01 ` Segher Boessenkool
2019-07-22 2:41 ` Nathan Chancellor
2019-07-22 10:15 ` Michael Ellerman
2019-07-22 0:53 ` [PATCH] powerpc: Test broken dcbz kbuild test robot
1 sibling, 2 replies; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-21 18:01 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> I have attached the disassembly of arch/powerpc/kernel/mem.o with
> clear_page (working) and broken_clear_page (broken), along with the side
> by side diff. My assembly knowledge is fairly limited as it stands and
> it is certainly not up to snuff on PowerPC so I have no idea what I am
> looking for. Please let me know if anything immediately looks off or if
> there is anything else I can do to help out.
You might want to use a disassembler that shows most simplified mnemonics,
and you crucially should show the relocations. "objdump -dr" works nicely.
> 0000017c clear_user_page:
> 17c: 38 80 00 80 li 4, 128
> 180: 7c 89 03 a6 mtctr 4
> 184: 7c 00 1f ec dcbz 0, 3
> 188: 38 63 00 20 addi 3, 3, 32
> 18c: 42 00 ff f8 bdnz .+65528
That offset is incorrectly disassembled, btw (it's a signed field, not
unsigned).
> 0000017c clear_user_page:
> 17c: 94 21 ff f0 stwu 1, -16(1)
> 180: 38 80 00 80 li 4, 128
> 184: 38 63 ff e0 addi 3, 3, -32
> 188: 7c 89 03 a6 mtctr 4
> 18c: 38 81 00 0f addi 4, 1, 15
> 190: 8c c3 00 20 lbzu 6, 32(3)
> 194: 98 c1 00 0f stb 6, 15(1)
> 198: 7c 00 27 ec dcbz 0, 4
> 19c: 42 00 ff f4 bdnz .+65524
Uh, yeah, well, I have no idea what clang tried here, but that won't
work. It's copying a byte from each target cache line to the stack,
and then does clears the cache line containing that byte on the stack.
I *guess* this is about "Z" and not about "%y", but you'll have to ask
the clang people.
Or it may be that they do not treat inline asm operands as lvalues
properly? That rings some bells. Yeah that looks like it.
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] powerpc: Test broken dcbz
2019-07-21 7:58 ` Nathan Chancellor
2019-07-21 18:01 ` Segher Boessenkool
@ 2019-07-22 0:53 ` kbuild test robot
1 sibling, 0 replies; 22+ messages in thread
From: kbuild test robot @ 2019-07-22 0:53 UTC (permalink / raw)
To: Nathan Chancellor
Cc: kbuild-all, Segher Boessenkool, Christophe Leroy,
Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
linuxppc-dev, linux-kernel, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 1368 bytes --]
Hi Nathan,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc1 next-20190719]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Nathan-Chancellor/powerpc-Test-broken-dcbz/20190722-051054
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arch/powerpc/mm/mem.c: In function 'clear_user_page':
>> arch/powerpc/mm/mem.c:364:2: error: implicit declaration of function 'broken_clear_page'; did you mean 'bdev_read_page'? [-Werror=implicit-function-declaration]
broken_clear_page(page);
^~~~~~~~~~~~~~~~~
bdev_read_page
cc1: all warnings being treated as errors
vim +364 arch/powerpc/mm/mem.c
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25327 bytes --]
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-21 18:01 ` Segher Boessenkool
@ 2019-07-22 2:41 ` Nathan Chancellor
2019-07-22 6:19 ` Segher Boessenkool
2019-07-22 10:15 ` Michael Ellerman
1 sibling, 1 reply; 22+ messages in thread
From: Nathan Chancellor @ 2019-07-22 2:41 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
[-- Attachment #1: Type: text/plain, Size: 2413 bytes --]
Hi Segher,
On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > I have attached the disassembly of arch/powerpc/kernel/mem.o with
> > clear_page (working) and broken_clear_page (broken), along with the side
> > by side diff. My assembly knowledge is fairly limited as it stands and
> > it is certainly not up to snuff on PowerPC so I have no idea what I am
> > looking for. Please let me know if anything immediately looks off or if
> > there is anything else I can do to help out.
>
> You might want to use a disassembler that shows most simplified mnemonics,
> and you crucially should show the relocations. "objdump -dr" works nicely.
Copy, those are attached below if you want to take a further look at
them.
> > 0000017c clear_user_page:
> > 17c: 38 80 00 80 li 4, 128
> > 180: 7c 89 03 a6 mtctr 4
> > 184: 7c 00 1f ec dcbz 0, 3
> > 188: 38 63 00 20 addi 3, 3, 32
> > 18c: 42 00 ff f8 bdnz .+65528
>
> That offset is incorrectly disassembled, btw (it's a signed field, not
> unsigned).
>
> > 0000017c clear_user_page:
> > 17c: 94 21 ff f0 stwu 1, -16(1)
> > 180: 38 80 00 80 li 4, 128
> > 184: 38 63 ff e0 addi 3, 3, -32
> > 188: 7c 89 03 a6 mtctr 4
> > 18c: 38 81 00 0f addi 4, 1, 15
> > 190: 8c c3 00 20 lbzu 6, 32(3)
> > 194: 98 c1 00 0f stb 6, 15(1)
> > 198: 7c 00 27 ec dcbz 0, 4
> > 19c: 42 00 ff f4 bdnz .+65524
>
> Uh, yeah, well, I have no idea what clang tried here, but that won't
> work. It's copying a byte from each target cache line to the stack,
> and then does clears the cache line containing that byte on the stack.
>
> I *guess* this is about "Z" and not about "%y", but you'll have to ask
> the clang people.
>
> Or it may be that they do not treat inline asm operands as lvalues
> properly? That rings some bells. Yeah that looks like it.
>
>
> Segher
Okay, I think I understand... I think this is enough to bring up an LLVM
bug report but I'll ask some of the LLVM folks I know before doing so.
Thank you for all of the input, I really appreciate it,
Nathan
[-- Attachment #2: mem-working.txt --]
[-- Type: text/plain, Size: 19428 bytes --]
mem-working.o: file format elf32-powerpc
Disassembly of section .text:
00000000 <phys_mem_access_prot>:
0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff e0 stwu r1,-32(r1)
c: 93 a1 00 14 stw r29,20(r1)
10: 7c fd 3b 78 mr r29,r7
14: 3c e0 00 00 lis r7,0
16: R_PPC_ADDR16_HA ppc_md
18: 38 e7 00 00 addi r7,r7,0
1a: R_PPC_ADDR16_LO ppc_md
1c: 81 07 00 a0 lwz r8,160(r7)
20: 93 c1 00 18 stw r30,24(r1)
24: 28 08 00 00 cmplwi r8,0
28: 7c 7e 1b 78 mr r30,r3
2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c>
30: 80 7d 00 00 lwz r3,0(r29)
34: 38 e1 00 08 addi r7,r1,8
38: 7d 09 03 a6 mtctr r8
3c: 90 61 00 08 stw r3,8(r1)
40: 7f c3 f3 78 mr r3,r30
44: 4e 80 04 21 bctrl
48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70>
4c: 7c a3 2b 78 mr r3,r5
50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50>
50: R_PPC_PLTREL24 page_is_ram
54: 28 03 00 00 cmplwi r3,0
58: 80 7d 00 00 lwz r3,0(r29)
5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c>
60: 54 63 06 26 rlwinm r3,r3,0,24,19
64: 60 63 05 00 ori r3,r3,1280
68: 90 7d 00 00 stw r3,0(r29)
6c: 90 7e 00 00 stw r3,0(r30)
70: 83 c1 00 18 lwz r30,24(r1)
74: 83 a1 00 14 lwz r29,20(r1)
78: 80 01 00 24 lwz r0,36(r1)
7c: 38 21 00 20 addi r1,r1,32
80: 7c 08 03 a6 mtlr r0
84: 4e 80 00 20 blr
00000088 <free_initmem>:
88: 7c 08 02 a6 mflr r0
8c: 90 01 00 04 stw r0,4(r1)
90: 94 21 ff f0 stwu r1,-16(r1)
94: 3c 60 00 00 lis r3,0
96: R_PPC_ADDR16_HA ppc_md
98: 3c 80 00 00 lis r4,0
9a: R_PPC_ADDR16_HA ppc_printk_progress
9c: 38 63 00 00 addi r3,r3,0
9e: R_PPC_ADDR16_LO ppc_md
a0: 38 84 00 00 addi r4,r4,0
a2: R_PPC_ADDR16_LO ppc_printk_progress
a4: 90 83 00 60 stw r4,96(r3)
a8: 48 00 00 01 bl a8 <free_initmem+0x20>
a8: R_PPC_PLTREL24 mark_initmem_nx
ac: 3c 60 00 00 lis r3,0
ae: R_PPC_ADDR16_HA init_mem_is_free
b0: 38 80 00 01 li r4,1
b4: 98 83 00 00 stb r4,0(r3)
b6: R_PPC_ADDR16_LO init_mem_is_free
b8: 3c 60 00 00 lis r3,0
ba: R_PPC_ADDR16_HA __init_begin
bc: 3c 80 00 00 lis r4,0
be: R_PPC_ADDR16_HA __init_end
c0: 3c a0 00 00 lis r5,0
c2: R_PPC_ADDR16_HA .rodata.str1.1+0x107
c4: 38 63 00 00 addi r3,r3,0
c6: R_PPC_ADDR16_LO __init_begin
c8: 38 84 00 00 addi r4,r4,0
ca: R_PPC_ADDR16_LO __init_end
cc: 38 c5 00 00 addi r6,r5,0
ce: R_PPC_ADDR16_LO .rodata.str1.1+0x107
d0: 38 a0 00 cc li r5,204
d4: 48 00 00 01 bl d4 <free_initmem+0x4c>
d4: R_PPC_PLTREL24 free_reserved_area
d8: 80 01 00 14 lwz r0,20(r1)
dc: 38 21 00 10 addi r1,r1,16
e0: 7c 08 03 a6 mtlr r0
e4: 4e 80 00 20 blr
000000e8 <flush_dcache_page>:
e8: 80 83 00 00 lwz r4,0(r3)
ec: 70 84 08 00 andi. r4,r4,2048
f0: 4d 82 00 20 beqlr
f4: 38 80 08 00 li r4,2048
f8: 7c a0 18 28 lwarx r5,0,r3
fc: 7c a5 20 78 andc r5,r5,r4
100: 7c a0 19 2d stwcx. r5,0,r3
104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10>
108: 4e 80 00 20 blr
0000010c <flush_dcache_icache_page>:
10c: 7c 08 02 a6 mflr r0
110: 90 01 00 04 stw r0,4(r1)
114: 94 21 ff f0 stwu r1,-16(r1)
118: 80 82 00 00 lwz r4,0(r2)
11c: 38 84 00 01 addi r4,r4,1
120: 90 82 00 00 stw r4,0(r2)
124: 80 82 0a e4 lwz r4,2788(r2)
128: 38 84 00 01 addi r4,r4,1
12c: 90 82 0a e4 stw r4,2788(r2)
130: 3c 80 00 00 lis r4,0
132: R_PPC_ADDR16_HA mem_map
134: 80 84 00 00 lwz r4,0(r4)
136: R_PPC_ADDR16_LO mem_map
138: 7c 64 18 50 subf r3,r4,r3
13c: 3c 80 cc cc lis r4,-13108
140: 54 63 e8 fe rlwinm r3,r3,29,3,31
144: 60 84 d0 00 ori r4,r4,53248
148: 7c 63 21 d6 mullw r3,r3,r4
14c: 3c 63 c0 00 addis r3,r3,-16384
150: 48 00 00 01 bl 150 <flush_dcache_icache_page+0x44>
150: R_PPC_PLTREL24 __flush_dcache_icache
154: 80 62 0a e4 lwz r3,2788(r2)
158: 38 63 ff ff addi r3,r3,-1
15c: 90 62 0a e4 stw r3,2788(r2)
160: 80 62 00 00 lwz r3,0(r2)
164: 38 63 ff ff addi r3,r3,-1
168: 90 62 00 00 stw r3,0(r2)
16c: 80 01 00 14 lwz r0,20(r1)
170: 38 21 00 10 addi r1,r1,16
174: 7c 08 03 a6 mtlr r0
178: 4e 80 00 20 blr
0000017c <clear_user_page>:
17c: 38 80 00 80 li r4,128
180: 7c 89 03 a6 mtctr r4
184: 7c 00 1f ec dcbz 0,r3
188: 38 63 00 20 addi r3,r3,32
18c: 42 00 ff f8 bdnz 184 <clear_user_page+0x8>
190: 80 65 00 00 lwz r3,0(r5)
194: 70 63 08 00 andi. r3,r3,2048
198: 4d 82 00 20 beqlr
19c: 38 60 08 00 li r3,2048
1a0: 7c 80 28 28 lwarx r4,0,r5
1a4: 7c 84 18 78 andc r4,r4,r3
1a8: 7c 80 29 2d stwcx. r4,0,r5
1ac: 40 a2 ff f4 bne 1a0 <clear_user_page+0x24>
1b0: 4e 80 00 20 blr
000001b4 <copy_user_page>:
1b4: 7c 08 02 a6 mflr r0
1b8: 90 01 00 04 stw r0,4(r1)
1bc: 94 21 ff f0 stwu r1,-16(r1)
1c0: 93 c1 00 08 stw r30,8(r1)
1c4: 7c de 33 78 mr r30,r6
1c8: 48 00 00 01 bl 1c8 <copy_user_page+0x14>
1c8: R_PPC_PLTREL24 copy_page
1cc: 80 7e 00 00 lwz r3,0(r30)
1d0: 70 63 08 00 andi. r3,r3,2048
1d4: 41 82 00 18 beq 1ec <copy_user_page+0x38>
1d8: 38 60 08 00 li r3,2048
1dc: 7c 80 f0 28 lwarx r4,0,r30
1e0: 7c 84 18 78 andc r4,r4,r3
1e4: 7c 80 f1 2d stwcx. r4,0,r30
1e8: 40 a2 ff f4 bne 1dc <copy_user_page+0x28>
1ec: 83 c1 00 08 lwz r30,8(r1)
1f0: 80 01 00 14 lwz r0,20(r1)
1f4: 38 21 00 10 addi r1,r1,16
1f8: 7c 08 03 a6 mtlr r0
1fc: 4e 80 00 20 blr
00000200 <flush_icache_user_range>:
200: 7c 08 02 a6 mflr r0
204: 90 01 00 04 stw r0,4(r1)
208: 94 21 ff e0 stwu r1,-32(r1)
20c: 3c 60 00 00 lis r3,0
20e: R_PPC_ADDR16_HA .rodata.str1.1+0x115
210: 93 81 00 10 stw r28,16(r1)
214: 7c 9c 23 78 mr r28,r4
218: 38 63 00 00 addi r3,r3,0
21a: R_PPC_ADDR16_LO .rodata.str1.1+0x115
21c: 38 80 00 53 li r4,83
220: 93 a1 00 14 stw r29,20(r1)
224: 7c bd 2b 78 mr r29,r5
228: 38 a0 00 00 li r5,0
22c: 93 c1 00 18 stw r30,24(r1)
230: 7c de 33 78 mr r30,r6
234: 48 00 00 01 bl 234 <flush_icache_user_range+0x34>
234: R_PPC_PLTREL24 __might_sleep
238: 3c 60 00 00 lis r3,0
23a: R_PPC_ADDR16_HA mem_map
23c: 3c 80 cc cc lis r4,-13108
240: 80 63 00 00 lwz r3,0(r3)
242: R_PPC_ADDR16_LO mem_map
244: 60 84 d0 00 ori r4,r4,53248
248: 7c 63 e0 50 subf r3,r3,r28
24c: 54 63 e8 fe rlwinm r3,r3,29,3,31
250: 7c 63 21 d6 mullw r3,r3,r4
254: 57 a4 05 3e clrlwi r4,r29,20
258: 50 64 00 26 rlwimi r4,r3,0,0,19
25c: 3c 64 c0 00 addis r3,r4,-16384
260: 7c 83 f2 14 add r4,r3,r30
264: 48 00 00 01 bl 264 <flush_icache_user_range+0x64>
264: R_PPC_PLTREL24 flush_icache_range
268: 83 c1 00 18 lwz r30,24(r1)
26c: 83 a1 00 14 lwz r29,20(r1)
270: 83 81 00 10 lwz r28,16(r1)
274: 80 01 00 24 lwz r0,36(r1)
278: 38 21 00 20 addi r1,r1,32
27c: 7c 08 03 a6 mtlr r0
280: 4e 80 00 20 blr
00000284 <update_mmu_cache>:
284: 4e 80 00 20 blr
00000288 <devmem_is_allowed>:
288: 7c 08 02 a6 mflr r0
28c: 90 01 00 04 stw r0,4(r1)
290: 94 21 ff f0 stwu r1,-16(r1)
294: 93 c1 00 08 stw r30,8(r1)
298: 7c 7e 1b 78 mr r30,r3
29c: 54 63 65 3e rlwinm r3,r3,12,20,31
2a0: 57 c4 60 26 rlwinm r4,r30,12,0,19
2a4: 48 00 00 01 bl 2a4 <devmem_is_allowed+0x1c>
2a4: R_PPC_PLTREL24 iomem_is_exclusive
2a8: 70 63 00 01 andi. r3,r3,1
2ac: 38 60 00 00 li r3,0
2b0: 41 81 00 14 bgt 2c4 <devmem_is_allowed+0x3c>
2b4: 7f c3 f3 78 mr r3,r30
2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x30>
2b8: R_PPC_PLTREL24 page_is_ram
2bc: 7c 63 00 34 cntlzw r3,r3
2c0: 54 63 df fe rlwinm r3,r3,27,31,31
2c4: 83 c1 00 08 lwz r30,8(r1)
2c8: 80 01 00 14 lwz r0,20(r1)
2cc: 38 21 00 10 addi r1,r1,16
2d0: 7c 08 03 a6 mtlr r0
2d4: 4e 80 00 20 blr
Disassembly of section .init.text:
00000000 <mem_topology_setup>:
0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff f0 stwu r1,-16(r1)
c: 48 00 00 01 bl c <mem_topology_setup+0xc>
c: R_PPC_PLTREL24 memblock_end_of_DRAM
10: 54 84 a0 3e rotlwi r4,r4,20
14: 3c a0 00 00 lis r5,0
16: R_PPC_ADDR16_HA max_pfn
18: 50 64 a0 16 rlwimi r4,r3,20,0,11
1c: 3c 60 00 00 lis r3,0
1e: R_PPC_ADDR16_HA max_low_pfn
20: 90 85 00 00 stw r4,0(r5)
22: R_PPC_ADDR16_LO max_pfn
24: 38 a0 ff ff li r5,-1
28: 90 83 00 00 stw r4,0(r3)
2a: R_PPC_ADDR16_LO max_low_pfn
2c: 3c 60 00 00 lis r3,0
2e: R_PPC_ADDR16_HA min_low_pfn
30: 38 80 00 00 li r4,0
34: 38 c0 ff ff li r6,-1
38: 39 00 00 00 li r8,0
3c: 90 83 00 00 stw r4,0(r3)
3e: R_PPC_ADDR16_LO min_low_pfn
40: 3c 60 00 00 lis r3,0
42: R_PPC_ADDR16_HA memblock
44: 38 80 00 00 li r4,0
48: 38 63 00 00 addi r3,r3,0
4a: R_PPC_ADDR16_LO memblock
4c: 38 e3 00 10 addi r7,r3,16
50: 38 60 00 00 li r3,0
54: 48 00 00 01 bl 54 <mem_topology_setup+0x54>
54: R_PPC_PLTREL24 memblock_set_node
58: 80 01 00 14 lwz r0,20(r1)
5c: 38 21 00 10 addi r1,r1,16
60: 7c 08 03 a6 mtlr r0
64: 4e 80 00 20 blr
00000068 <initmem_init>:
68: 7c 08 02 a6 mflr r0
6c: 90 01 00 04 stw r0,4(r1)
70: 94 21 ff f0 stwu r1,-16(r1)
74: 38 60 00 00 li r3,0
78: 48 00 00 01 bl 78 <initmem_init+0x10>
78: R_PPC_PLTREL24 sparse_memory_present_with_active_regions
7c: 80 01 00 14 lwz r0,20(r1)
80: 38 21 00 10 addi r1,r1,16
84: 7c 08 03 a6 mtlr r0
88: 4e 80 00 20 blr
0000008c <paging_init>:
8c: 7c 08 02 a6 mflr r0
90: 90 01 00 04 stw r0,4(r1)
94: 94 21 ff d0 stwu r1,-48(r1)
98: 93 21 00 14 stw r25,20(r1)
9c: 93 41 00 18 stw r26,24(r1)
a0: 93 61 00 1c stw r27,28(r1)
a4: 93 81 00 20 stw r28,32(r1)
a8: 93 a1 00 24 stw r29,36(r1)
ac: 93 c1 00 28 stw r30,40(r1)
b0: 48 00 00 01 bl b0 <paging_init+0x24>
b0: R_PPC_PLTREL24 memblock_phys_mem_size
b4: 7c 7e 1b 78 mr r30,r3
b8: 7c 9d 23 78 mr r29,r4
bc: 3f 40 ff fe lis r26,-2
c0: 48 00 00 01 bl c0 <paging_init+0x34>
c0: R_PPC_PLTREL24 memblock_end_of_DRAM
c4: 7c 7c 1b 78 mr r28,r3
c8: 7c 9b 23 78 mr r27,r4
cc: 3b 20 00 00 li r25,0
d0: 38 e1 00 08 addi r7,r1,8
d4: 7f 43 d3 78 mr r3,r26
d8: 93 21 00 10 stw r25,16(r1)
dc: 38 a0 00 00 li r5,0
e0: 38 c0 00 00 li r6,0
e4: 93 21 00 08 stw r25,8(r1)
e8: 48 00 00 01 bl e8 <paging_init+0x5c>
e8: R_PPC_PLTREL24 map_kernel_page
ec: 3b 5a 10 00 addi r26,r26,4096
f0: 2c 1a f0 00 cmpwi r26,-4096
f4: 40 82 ff dc bne d0 <paging_init+0x44>
f8: 3c 60 00 00 lis r3,0
fa: R_PPC_ADDR16_HA .rodata.str1.1
fc: 4c c6 31 82 crclr 4*cr1+eq
100: 7f 85 e3 78 mr r5,r28
104: 38 63 00 00 addi r3,r3,0
106: R_PPC_ADDR16_LO .rodata.str1.1
108: 7f 66 db 78 mr r6,r27
10c: 7f c7 f3 78 mr r7,r30
110: 7f a8 eb 78 mr r8,r29
114: 48 00 00 01 bl 114 <paging_init+0x88>
114: R_PPC_PLTREL24 printk
118: 7c 7d d8 10 subfc r3,r29,r27
11c: 4c c6 31 82 crclr 4*cr1+eq
120: 7c be e1 10 subfe r5,r30,r28
124: 54 64 60 3e rotlwi r4,r3,12
128: 3c 60 00 00 lis r3,0
12a: R_PPC_ADDR16_HA .rodata.str1.1+0x29
12c: 50 a4 60 26 rlwimi r4,r5,12,0,19
130: 38 63 00 00 addi r3,r3,0
132: R_PPC_ADDR16_LO .rodata.str1.1+0x29
134: 48 00 00 01 bl 134 <paging_init+0xa8>
134: R_PPC_PLTREL24 printk
138: 3c 60 00 00 lis r3,0
13a: R_PPC_ADDR16_HA max_low_pfn
13c: 80 83 00 00 lwz r4,0(r3)
13e: R_PPC_ADDR16_LO max_low_pfn
140: 3c 60 00 00 lis r3,0
142: R_PPC_ADDR16_HA .bss+0x10
144: 94 83 00 00 stwu r4,0(r3)
146: R_PPC_ADDR16_LO .bss+0x10
148: 48 00 00 01 bl 148 <paging_init+0xbc>
148: R_PPC_PLTREL24 free_area_init_nodes
14c: 83 c1 00 28 lwz r30,40(r1)
150: 83 a1 00 24 lwz r29,36(r1)
154: 83 81 00 20 lwz r28,32(r1)
158: 83 61 00 1c lwz r27,28(r1)
15c: 83 41 00 18 lwz r26,24(r1)
160: 83 21 00 14 lwz r25,20(r1)
164: 80 01 00 34 lwz r0,52(r1)
168: 38 21 00 30 addi r1,r1,48
16c: 7c 08 03 a6 mtlr r0
170: 4e 80 00 20 blr
00000174 <mem_init>:
174: 7c 08 02 a6 mflr r0
178: 90 01 00 04 stw r0,4(r1)
17c: 94 21 ff e0 stwu r1,-32(r1)
180: 3c 60 00 00 lis r3,0
182: R_PPC_ADDR16_HA max_low_pfn
184: 3c 80 00 00 lis r4,0
186: R_PPC_ADDR16_HA max_pfn
188: 93 81 00 10 stw r28,16(r1)
18c: 3f 80 00 00 lis r28,0
18e: R_PPC_ADDR16_HA high_memory
190: 80 63 00 00 lwz r3,0(r3)
192: R_PPC_ADDR16_LO max_low_pfn
194: 80 84 00 00 lwz r4,0(r4)
196: R_PPC_ADDR16_LO max_pfn
198: 54 63 60 26 rlwinm r3,r3,12,0,19
19c: 3c 63 c0 00 addis r3,r3,-16384
1a0: 90 7c 00 00 stw r3,0(r28)
1a2: R_PPC_ADDR16_LO high_memory
1a4: 3c 60 00 00 lis r3,0
1a6: R_PPC_ADDR16_HA max_mapnr
1a8: 93 a1 00 14 stw r29,20(r1)
1ac: 93 c1 00 18 stw r30,24(r1)
1b0: 90 83 00 00 stw r4,0(r3)
1b2: R_PPC_ADDR16_LO max_mapnr
1b4: 48 00 00 01 bl 1b4 <mem_init+0x40>
1b4: R_PPC_PLTREL24 memblock_free_all
1b8: 38 60 00 00 li r3,0
1bc: 48 00 00 01 bl 1bc <mem_init+0x48>
1bc: R_PPC_PLTREL24 mem_init_print_info
1c0: 3c 60 00 00 lis r3,0
1c2: R_PPC_ADDR16_HA .rodata.str1.1+0x44
1c4: 4c c6 31 82 crclr 4*cr1+eq
1c8: 38 63 00 00 addi r3,r3,0
1ca: R_PPC_ADDR16_LO .rodata.str1.1+0x44
1cc: 48 00 00 01 bl 1cc <mem_init+0x58>
1cc: R_PPC_PLTREL24 printk
1d0: 3c 80 ff fd lis r4,-3
1d4: 3c 60 00 00 lis r3,0
1d6: R_PPC_ADDR16_HA .rodata.str1.1+0x65
1d8: 4c c6 31 82 crclr 4*cr1+eq
1dc: 60 9e f0 00 ori r30,r4,61440
1e0: 38 63 00 00 addi r3,r3,0
1e2: R_PPC_ADDR16_LO .rodata.str1.1+0x65
1e4: 7f c4 f3 78 mr r4,r30
1e8: 38 a0 f0 00 li r5,-4096
1ec: 48 00 00 01 bl 1ec <mem_init+0x78>
1ec: R_PPC_PLTREL24 printk
1f0: 3c 80 ff dd lis r4,-35
1f4: 3c 60 00 00 lis r3,0
1f6: R_PPC_ADDR16_HA .rodata.str1.1+0x87
1f8: 4c c6 31 82 crclr 4*cr1+eq
1fc: 60 9d f0 00 ori r29,r4,61440
200: 38 63 00 00 addi r3,r3,0
202: R_PPC_ADDR16_LO .rodata.str1.1+0x87
204: 7f a4 eb 78 mr r4,r29
208: 7f c5 f3 78 mr r5,r30
20c: 48 00 00 01 bl 20c <mem_init+0x98>
20c: R_PPC_PLTREL24 printk
210: 3f c0 00 00 lis r30,0
212: R_PPC_ADDR16_HA ioremap_bot
214: 3c 60 00 00 lis r3,0
216: R_PPC_ADDR16_HA .rodata.str1.1+0xb1
218: 4c c6 31 82 crclr 4*cr1+eq
21c: 80 9e 00 00 lwz r4,0(r30)
21e: R_PPC_ADDR16_LO ioremap_bot
220: 38 63 00 00 addi r3,r3,0
222: R_PPC_ADDR16_LO .rodata.str1.1+0xb1
224: 7f a5 eb 78 mr r5,r29
228: 48 00 00 01 bl 228 <mem_init+0xb4>
228: R_PPC_PLTREL24 printk
22c: 80 7c 00 00 lwz r3,0(r28)
22e: R_PPC_ADDR16_LO high_memory
230: 3c 80 01 00 lis r4,256
234: 4c c6 31 82 crclr 4*cr1+eq
238: 38 63 ff ff addi r3,r3,-1
23c: 80 be 00 00 lwz r5,0(r30)
23e: R_PPC_ADDR16_LO ioremap_bot
240: 3c 63 10 00 addis r3,r3,4096
244: 54 63 00 06 rlwinm r3,r3,0,0,3
248: 50 64 02 0c rlwimi r4,r3,0,8,6
24c: 3c 60 00 00 lis r3,0
24e: R_PPC_ADDR16_HA .rodata.str1.1+0xda
250: 38 63 00 00 addi r3,r3,0
252: R_PPC_ADDR16_LO .rodata.str1.1+0xda
254: 48 00 00 01 bl 254 <mem_init+0xe0>
254: R_PPC_PLTREL24 printk
258: 83 c1 00 18 lwz r30,24(r1)
25c: 83 a1 00 14 lwz r29,20(r1)
260: 83 81 00 10 lwz r28,16(r1)
264: 80 01 00 24 lwz r0,36(r1)
268: 38 21 00 20 addi r1,r1,32
26c: 7c 08 03 a6 mtlr r0
270: 4e 80 00 20 blr
00000274 <add_system_ram_resources>:
274: 7c 08 02 a6 mflr r0
278: 90 01 00 04 stw r0,4(r1)
27c: 94 21 ff c0 stwu r1,-64(r1)
280: 3c 60 00 00 lis r3,0
282: R_PPC_ADDR16_HA memblock
284: 93 a1 00 34 stw r29,52(r1)
288: 3b a3 00 00 addi r29,r3,0
28a: R_PPC_ADDR16_LO memblock
28c: 80 7d 00 10 lwz r3,16(r29)
290: 93 81 00 30 stw r28,48(r1)
294: 1c 63 00 18 mulli r3,r3,24
298: 83 9d 00 20 lwz r28,32(r29)
29c: 7c 7c 1a 14 add r3,r28,r3
2a0: 92 a1 00 14 stw r21,20(r1)
2a4: 7c 1c 18 40 cmplw r28,r3
2a8: 92 c1 00 18 stw r22,24(r1)
2ac: 92 e1 00 1c stw r23,28(r1)
2b0: 93 01 00 20 stw r24,32(r1)
2b4: 93 21 00 24 stw r25,36(r1)
2b8: 93 41 00 28 stw r26,40(r1)
2bc: 93 61 00 2c stw r27,44(r1)
2c0: 93 c1 00 38 stw r30,56(r1)
2c4: 40 80 00 ac bge 370 <add_system_ram_resources+0xfc>
2c8: 3c 60 00 00 lis r3,0
2ca: R_PPC_ADDR16_HA kmalloc_caches
2cc: 3c 80 00 00 lis r4,0
2ce: R_PPC_ADDR16_HA .rodata.str1.1+0x199
2d0: 3c a0 81 00 lis r5,-32512
2d4: 3c c0 00 00 lis r6,0
2d6: R_PPC_ADDR16_HA iomem_resource
2d8: 3b 7c ff e8 addi r27,r28,-24
2dc: 3b 40 00 00 li r26,0
2e0: 3b 23 00 00 addi r25,r3,0
2e2: R_PPC_ADDR16_LO kmalloc_caches
2e4: 3b 04 00 00 addi r24,r4,0
2e6: R_PPC_ADDR16_LO .rodata.str1.1+0x199
2e8: 60 b7 02 00 ori r23,r5,512
2ec: 3b c6 00 00 addi r30,r6,0
2ee: R_PPC_ADDR16_LO iomem_resource
2f0: 80 79 00 18 lwz r3,24(r25)
2f4: 38 80 0d c0 li r4,3520
2f8: 38 a0 00 28 li r5,40
2fc: 82 db 00 1c lwz r22,28(r27)
300: 82 bb 00 24 lwz r21,36(r27)
304: 48 00 00 01 bl 304 <add_system_ram_resources+0x90>
304: R_PPC_PLTREL24 kmem_cache_alloc_trace
308: 7c 64 1b 78 mr r4,r3
30c: 7c 63 00 34 cntlzw r3,r3
310: 28 04 00 00 cmplwi r4,0
314: 54 63 df fe rlwinm r3,r3,27,31,31
318: 0f 03 00 00 twnei r3,0
31c: 41 82 00 34 beq 350 <add_system_ram_resources+0xdc>
320: 7c 76 aa 14 add r3,r22,r21
324: 93 04 00 10 stw r24,16(r4)
328: 38 63 ff ff addi r3,r3,-1
32c: 90 64 00 0c stw r3,12(r4)
330: 7f c3 f3 78 mr r3,r30
334: 93 44 00 00 stw r26,0(r4)
338: 92 c4 00 04 stw r22,4(r4)
33c: 93 44 00 08 stw r26,8(r4)
340: 92 e4 00 14 stw r23,20(r4)
344: 48 00 00 01 bl 344 <add_system_ram_resources+0xd0>
344: R_PPC_PLTREL24 request_resource
348: 54 63 0f fe rlwinm r3,r3,1,31,31
34c: 0f 03 00 00 twnei r3,0
350: 80 7d 00 10 lwz r3,16(r29)
354: 3b 9c 00 18 addi r28,r28,24
358: 3b 7b 00 18 addi r27,r27,24
35c: 80 9d 00 20 lwz r4,32(r29)
360: 1c 63 00 18 mulli r3,r3,24
364: 7c 64 1a 14 add r3,r4,r3
368: 7c 1c 18 40 cmplw r28,r3
36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources+0x7c>
370: 38 60 00 00 li r3,0
374: 83 c1 00 38 lwz r30,56(r1)
378: 83 a1 00 34 lwz r29,52(r1)
37c: 83 81 00 30 lwz r28,48(r1)
380: 83 61 00 2c lwz r27,44(r1)
384: 83 41 00 28 lwz r26,40(r1)
388: 83 21 00 24 lwz r25,36(r1)
38c: 83 01 00 20 lwz r24,32(r1)
390: 82 e1 00 1c lwz r23,28(r1)
394: 82 c1 00 18 lwz r22,24(r1)
398: 82 a1 00 14 lwz r21,20(r1)
39c: 80 01 00 44 lwz r0,68(r1)
3a0: 38 21 00 40 addi r1,r1,64
3a4: 7c 08 03 a6 mtlr r0
3a8: 4e 80 00 20 blr
[-- Attachment #3: mem-broken.txt --]
[-- Type: text/plain, Size: 19642 bytes --]
mem-broken.o: file format elf32-powerpc
Disassembly of section .text:
00000000 <phys_mem_access_prot>:
0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff e0 stwu r1,-32(r1)
c: 93 a1 00 14 stw r29,20(r1)
10: 7c fd 3b 78 mr r29,r7
14: 3c e0 00 00 lis r7,0
16: R_PPC_ADDR16_HA ppc_md
18: 38 e7 00 00 addi r7,r7,0
1a: R_PPC_ADDR16_LO ppc_md
1c: 81 07 00 a0 lwz r8,160(r7)
20: 93 c1 00 18 stw r30,24(r1)
24: 28 08 00 00 cmplwi r8,0
28: 7c 7e 1b 78 mr r30,r3
2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c>
30: 80 7d 00 00 lwz r3,0(r29)
34: 38 e1 00 08 addi r7,r1,8
38: 7d 09 03 a6 mtctr r8
3c: 90 61 00 08 stw r3,8(r1)
40: 7f c3 f3 78 mr r3,r30
44: 4e 80 04 21 bctrl
48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70>
4c: 7c a3 2b 78 mr r3,r5
50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50>
50: R_PPC_PLTREL24 page_is_ram
54: 28 03 00 00 cmplwi r3,0
58: 80 7d 00 00 lwz r3,0(r29)
5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c>
60: 54 63 06 26 rlwinm r3,r3,0,24,19
64: 60 63 05 00 ori r3,r3,1280
68: 90 7d 00 00 stw r3,0(r29)
6c: 90 7e 00 00 stw r3,0(r30)
70: 83 c1 00 18 lwz r30,24(r1)
74: 83 a1 00 14 lwz r29,20(r1)
78: 80 01 00 24 lwz r0,36(r1)
7c: 38 21 00 20 addi r1,r1,32
80: 7c 08 03 a6 mtlr r0
84: 4e 80 00 20 blr
00000088 <free_initmem>:
88: 7c 08 02 a6 mflr r0
8c: 90 01 00 04 stw r0,4(r1)
90: 94 21 ff f0 stwu r1,-16(r1)
94: 3c 60 00 00 lis r3,0
96: R_PPC_ADDR16_HA ppc_md
98: 3c 80 00 00 lis r4,0
9a: R_PPC_ADDR16_HA ppc_printk_progress
9c: 38 63 00 00 addi r3,r3,0
9e: R_PPC_ADDR16_LO ppc_md
a0: 38 84 00 00 addi r4,r4,0
a2: R_PPC_ADDR16_LO ppc_printk_progress
a4: 90 83 00 60 stw r4,96(r3)
a8: 48 00 00 01 bl a8 <free_initmem+0x20>
a8: R_PPC_PLTREL24 mark_initmem_nx
ac: 3c 60 00 00 lis r3,0
ae: R_PPC_ADDR16_HA init_mem_is_free
b0: 38 80 00 01 li r4,1
b4: 98 83 00 00 stb r4,0(r3)
b6: R_PPC_ADDR16_LO init_mem_is_free
b8: 3c 60 00 00 lis r3,0
ba: R_PPC_ADDR16_HA __init_begin
bc: 3c 80 00 00 lis r4,0
be: R_PPC_ADDR16_HA __init_end
c0: 3c a0 00 00 lis r5,0
c2: R_PPC_ADDR16_HA .rodata.str1.1+0x107
c4: 38 63 00 00 addi r3,r3,0
c6: R_PPC_ADDR16_LO __init_begin
c8: 38 84 00 00 addi r4,r4,0
ca: R_PPC_ADDR16_LO __init_end
cc: 38 c5 00 00 addi r6,r5,0
ce: R_PPC_ADDR16_LO .rodata.str1.1+0x107
d0: 38 a0 00 cc li r5,204
d4: 48 00 00 01 bl d4 <free_initmem+0x4c>
d4: R_PPC_PLTREL24 free_reserved_area
d8: 80 01 00 14 lwz r0,20(r1)
dc: 38 21 00 10 addi r1,r1,16
e0: 7c 08 03 a6 mtlr r0
e4: 4e 80 00 20 blr
000000e8 <flush_dcache_page>:
e8: 80 83 00 00 lwz r4,0(r3)
ec: 70 84 08 00 andi. r4,r4,2048
f0: 4d 82 00 20 beqlr
f4: 38 80 08 00 li r4,2048
f8: 7c a0 18 28 lwarx r5,0,r3
fc: 7c a5 20 78 andc r5,r5,r4
100: 7c a0 19 2d stwcx. r5,0,r3
104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10>
108: 4e 80 00 20 blr
0000010c <flush_dcache_icache_page>:
10c: 7c 08 02 a6 mflr r0
110: 90 01 00 04 stw r0,4(r1)
114: 94 21 ff f0 stwu r1,-16(r1)
118: 80 82 00 00 lwz r4,0(r2)
11c: 38 84 00 01 addi r4,r4,1
120: 90 82 00 00 stw r4,0(r2)
124: 80 82 0a e4 lwz r4,2788(r2)
128: 38 84 00 01 addi r4,r4,1
12c: 90 82 0a e4 stw r4,2788(r2)
130: 3c 80 00 00 lis r4,0
132: R_PPC_ADDR16_HA mem_map
134: 80 84 00 00 lwz r4,0(r4)
136: R_PPC_ADDR16_LO mem_map
138: 7c 64 18 50 subf r3,r4,r3
13c: 3c 80 cc cc lis r4,-13108
140: 54 63 e8 fe rlwinm r3,r3,29,3,31
144: 60 84 d0 00 ori r4,r4,53248
148: 7c 63 21 d6 mullw r3,r3,r4
14c: 3c 63 c0 00 addis r3,r3,-16384
150: 48 00 00 01 bl 150 <flush_dcache_icache_page+0x44>
150: R_PPC_PLTREL24 __flush_dcache_icache
154: 80 62 0a e4 lwz r3,2788(r2)
158: 38 63 ff ff addi r3,r3,-1
15c: 90 62 0a e4 stw r3,2788(r2)
160: 80 62 00 00 lwz r3,0(r2)
164: 38 63 ff ff addi r3,r3,-1
168: 90 62 00 00 stw r3,0(r2)
16c: 80 01 00 14 lwz r0,20(r1)
170: 38 21 00 10 addi r1,r1,16
174: 7c 08 03 a6 mtlr r0
178: 4e 80 00 20 blr
0000017c <clear_user_page>:
17c: 94 21 ff f0 stwu r1,-16(r1)
180: 38 80 00 80 li r4,128
184: 38 63 ff e0 addi r3,r3,-32
188: 7c 89 03 a6 mtctr r4
18c: 38 81 00 0f addi r4,r1,15
190: 8c c3 00 20 lbzu r6,32(r3)
194: 98 c1 00 0f stb r6,15(r1)
198: 7c 00 27 ec dcbz 0,r4
19c: 42 00 ff f4 bdnz 190 <clear_user_page+0x14>
1a0: 80 65 00 00 lwz r3,0(r5)
1a4: 70 63 08 00 andi. r3,r3,2048
1a8: 41 82 00 18 beq 1c0 <clear_user_page+0x44>
1ac: 38 60 08 00 li r3,2048
1b0: 7c 80 28 28 lwarx r4,0,r5
1b4: 7c 84 18 78 andc r4,r4,r3
1b8: 7c 80 29 2d stwcx. r4,0,r5
1bc: 40 a2 ff f4 bne 1b0 <clear_user_page+0x34>
1c0: 38 21 00 10 addi r1,r1,16
1c4: 4e 80 00 20 blr
000001c8 <copy_user_page>:
1c8: 7c 08 02 a6 mflr r0
1cc: 90 01 00 04 stw r0,4(r1)
1d0: 94 21 ff f0 stwu r1,-16(r1)
1d4: 93 c1 00 08 stw r30,8(r1)
1d8: 7c de 33 78 mr r30,r6
1dc: 48 00 00 01 bl 1dc <copy_user_page+0x14>
1dc: R_PPC_PLTREL24 copy_page
1e0: 80 7e 00 00 lwz r3,0(r30)
1e4: 70 63 08 00 andi. r3,r3,2048
1e8: 41 82 00 18 beq 200 <copy_user_page+0x38>
1ec: 38 60 08 00 li r3,2048
1f0: 7c 80 f0 28 lwarx r4,0,r30
1f4: 7c 84 18 78 andc r4,r4,r3
1f8: 7c 80 f1 2d stwcx. r4,0,r30
1fc: 40 a2 ff f4 bne 1f0 <copy_user_page+0x28>
200: 83 c1 00 08 lwz r30,8(r1)
204: 80 01 00 14 lwz r0,20(r1)
208: 38 21 00 10 addi r1,r1,16
20c: 7c 08 03 a6 mtlr r0
210: 4e 80 00 20 blr
00000214 <flush_icache_user_range>:
214: 7c 08 02 a6 mflr r0
218: 90 01 00 04 stw r0,4(r1)
21c: 94 21 ff e0 stwu r1,-32(r1)
220: 3c 60 00 00 lis r3,0
222: R_PPC_ADDR16_HA .rodata.str1.1+0x115
224: 93 81 00 10 stw r28,16(r1)
228: 7c 9c 23 78 mr r28,r4
22c: 38 63 00 00 addi r3,r3,0
22e: R_PPC_ADDR16_LO .rodata.str1.1+0x115
230: 38 80 00 53 li r4,83
234: 93 a1 00 14 stw r29,20(r1)
238: 7c bd 2b 78 mr r29,r5
23c: 38 a0 00 00 li r5,0
240: 93 c1 00 18 stw r30,24(r1)
244: 7c de 33 78 mr r30,r6
248: 48 00 00 01 bl 248 <flush_icache_user_range+0x34>
248: R_PPC_PLTREL24 __might_sleep
24c: 3c 60 00 00 lis r3,0
24e: R_PPC_ADDR16_HA mem_map
250: 3c 80 cc cc lis r4,-13108
254: 80 63 00 00 lwz r3,0(r3)
256: R_PPC_ADDR16_LO mem_map
258: 60 84 d0 00 ori r4,r4,53248
25c: 7c 63 e0 50 subf r3,r3,r28
260: 54 63 e8 fe rlwinm r3,r3,29,3,31
264: 7c 63 21 d6 mullw r3,r3,r4
268: 57 a4 05 3e clrlwi r4,r29,20
26c: 50 64 00 26 rlwimi r4,r3,0,0,19
270: 3c 64 c0 00 addis r3,r4,-16384
274: 7c 83 f2 14 add r4,r3,r30
278: 48 00 00 01 bl 278 <flush_icache_user_range+0x64>
278: R_PPC_PLTREL24 flush_icache_range
27c: 83 c1 00 18 lwz r30,24(r1)
280: 83 a1 00 14 lwz r29,20(r1)
284: 83 81 00 10 lwz r28,16(r1)
288: 80 01 00 24 lwz r0,36(r1)
28c: 38 21 00 20 addi r1,r1,32
290: 7c 08 03 a6 mtlr r0
294: 4e 80 00 20 blr
00000298 <update_mmu_cache>:
298: 4e 80 00 20 blr
0000029c <devmem_is_allowed>:
29c: 7c 08 02 a6 mflr r0
2a0: 90 01 00 04 stw r0,4(r1)
2a4: 94 21 ff f0 stwu r1,-16(r1)
2a8: 93 c1 00 08 stw r30,8(r1)
2ac: 7c 7e 1b 78 mr r30,r3
2b0: 54 63 65 3e rlwinm r3,r3,12,20,31
2b4: 57 c4 60 26 rlwinm r4,r30,12,0,19
2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x1c>
2b8: R_PPC_PLTREL24 iomem_is_exclusive
2bc: 70 63 00 01 andi. r3,r3,1
2c0: 38 60 00 00 li r3,0
2c4: 41 81 00 14 bgt 2d8 <devmem_is_allowed+0x3c>
2c8: 7f c3 f3 78 mr r3,r30
2cc: 48 00 00 01 bl 2cc <devmem_is_allowed+0x30>
2cc: R_PPC_PLTREL24 page_is_ram
2d0: 7c 63 00 34 cntlzw r3,r3
2d4: 54 63 df fe rlwinm r3,r3,27,31,31
2d8: 83 c1 00 08 lwz r30,8(r1)
2dc: 80 01 00 14 lwz r0,20(r1)
2e0: 38 21 00 10 addi r1,r1,16
2e4: 7c 08 03 a6 mtlr r0
2e8: 4e 80 00 20 blr
Disassembly of section .init.text:
00000000 <mem_topology_setup>:
0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff f0 stwu r1,-16(r1)
c: 48 00 00 01 bl c <mem_topology_setup+0xc>
c: R_PPC_PLTREL24 memblock_end_of_DRAM
10: 54 84 a0 3e rotlwi r4,r4,20
14: 3c a0 00 00 lis r5,0
16: R_PPC_ADDR16_HA max_pfn
18: 50 64 a0 16 rlwimi r4,r3,20,0,11
1c: 3c 60 00 00 lis r3,0
1e: R_PPC_ADDR16_HA max_low_pfn
20: 90 85 00 00 stw r4,0(r5)
22: R_PPC_ADDR16_LO max_pfn
24: 38 a0 ff ff li r5,-1
28: 90 83 00 00 stw r4,0(r3)
2a: R_PPC_ADDR16_LO max_low_pfn
2c: 3c 60 00 00 lis r3,0
2e: R_PPC_ADDR16_HA min_low_pfn
30: 38 80 00 00 li r4,0
34: 38 c0 ff ff li r6,-1
38: 39 00 00 00 li r8,0
3c: 90 83 00 00 stw r4,0(r3)
3e: R_PPC_ADDR16_LO min_low_pfn
40: 3c 60 00 00 lis r3,0
42: R_PPC_ADDR16_HA memblock
44: 38 80 00 00 li r4,0
48: 38 63 00 00 addi r3,r3,0
4a: R_PPC_ADDR16_LO memblock
4c: 38 e3 00 10 addi r7,r3,16
50: 38 60 00 00 li r3,0
54: 48 00 00 01 bl 54 <mem_topology_setup+0x54>
54: R_PPC_PLTREL24 memblock_set_node
58: 80 01 00 14 lwz r0,20(r1)
5c: 38 21 00 10 addi r1,r1,16
60: 7c 08 03 a6 mtlr r0
64: 4e 80 00 20 blr
00000068 <initmem_init>:
68: 7c 08 02 a6 mflr r0
6c: 90 01 00 04 stw r0,4(r1)
70: 94 21 ff f0 stwu r1,-16(r1)
74: 38 60 00 00 li r3,0
78: 48 00 00 01 bl 78 <initmem_init+0x10>
78: R_PPC_PLTREL24 sparse_memory_present_with_active_regions
7c: 80 01 00 14 lwz r0,20(r1)
80: 38 21 00 10 addi r1,r1,16
84: 7c 08 03 a6 mtlr r0
88: 4e 80 00 20 blr
0000008c <paging_init>:
8c: 7c 08 02 a6 mflr r0
90: 90 01 00 04 stw r0,4(r1)
94: 94 21 ff d0 stwu r1,-48(r1)
98: 93 21 00 14 stw r25,20(r1)
9c: 93 41 00 18 stw r26,24(r1)
a0: 93 61 00 1c stw r27,28(r1)
a4: 93 81 00 20 stw r28,32(r1)
a8: 93 a1 00 24 stw r29,36(r1)
ac: 93 c1 00 28 stw r30,40(r1)
b0: 48 00 00 01 bl b0 <paging_init+0x24>
b0: R_PPC_PLTREL24 memblock_phys_mem_size
b4: 7c 7e 1b 78 mr r30,r3
b8: 7c 9d 23 78 mr r29,r4
bc: 3f 40 ff fe lis r26,-2
c0: 48 00 00 01 bl c0 <paging_init+0x34>
c0: R_PPC_PLTREL24 memblock_end_of_DRAM
c4: 7c 7c 1b 78 mr r28,r3
c8: 7c 9b 23 78 mr r27,r4
cc: 3b 20 00 00 li r25,0
d0: 38 e1 00 08 addi r7,r1,8
d4: 7f 43 d3 78 mr r3,r26
d8: 93 21 00 10 stw r25,16(r1)
dc: 38 a0 00 00 li r5,0
e0: 38 c0 00 00 li r6,0
e4: 93 21 00 08 stw r25,8(r1)
e8: 48 00 00 01 bl e8 <paging_init+0x5c>
e8: R_PPC_PLTREL24 map_kernel_page
ec: 3b 5a 10 00 addi r26,r26,4096
f0: 2c 1a f0 00 cmpwi r26,-4096
f4: 40 82 ff dc bne d0 <paging_init+0x44>
f8: 3c 60 00 00 lis r3,0
fa: R_PPC_ADDR16_HA .rodata.str1.1
fc: 4c c6 31 82 crclr 4*cr1+eq
100: 7f 85 e3 78 mr r5,r28
104: 38 63 00 00 addi r3,r3,0
106: R_PPC_ADDR16_LO .rodata.str1.1
108: 7f 66 db 78 mr r6,r27
10c: 7f c7 f3 78 mr r7,r30
110: 7f a8 eb 78 mr r8,r29
114: 48 00 00 01 bl 114 <paging_init+0x88>
114: R_PPC_PLTREL24 printk
118: 7c 7d d8 10 subfc r3,r29,r27
11c: 4c c6 31 82 crclr 4*cr1+eq
120: 7c be e1 10 subfe r5,r30,r28
124: 54 64 60 3e rotlwi r4,r3,12
128: 3c 60 00 00 lis r3,0
12a: R_PPC_ADDR16_HA .rodata.str1.1+0x29
12c: 50 a4 60 26 rlwimi r4,r5,12,0,19
130: 38 63 00 00 addi r3,r3,0
132: R_PPC_ADDR16_LO .rodata.str1.1+0x29
134: 48 00 00 01 bl 134 <paging_init+0xa8>
134: R_PPC_PLTREL24 printk
138: 3c 60 00 00 lis r3,0
13a: R_PPC_ADDR16_HA max_low_pfn
13c: 80 83 00 00 lwz r4,0(r3)
13e: R_PPC_ADDR16_LO max_low_pfn
140: 3c 60 00 00 lis r3,0
142: R_PPC_ADDR16_HA .bss+0x10
144: 94 83 00 00 stwu r4,0(r3)
146: R_PPC_ADDR16_LO .bss+0x10
148: 48 00 00 01 bl 148 <paging_init+0xbc>
148: R_PPC_PLTREL24 free_area_init_nodes
14c: 83 c1 00 28 lwz r30,40(r1)
150: 83 a1 00 24 lwz r29,36(r1)
154: 83 81 00 20 lwz r28,32(r1)
158: 83 61 00 1c lwz r27,28(r1)
15c: 83 41 00 18 lwz r26,24(r1)
160: 83 21 00 14 lwz r25,20(r1)
164: 80 01 00 34 lwz r0,52(r1)
168: 38 21 00 30 addi r1,r1,48
16c: 7c 08 03 a6 mtlr r0
170: 4e 80 00 20 blr
00000174 <mem_init>:
174: 7c 08 02 a6 mflr r0
178: 90 01 00 04 stw r0,4(r1)
17c: 94 21 ff e0 stwu r1,-32(r1)
180: 3c 60 00 00 lis r3,0
182: R_PPC_ADDR16_HA max_low_pfn
184: 3c 80 00 00 lis r4,0
186: R_PPC_ADDR16_HA max_pfn
188: 93 81 00 10 stw r28,16(r1)
18c: 3f 80 00 00 lis r28,0
18e: R_PPC_ADDR16_HA high_memory
190: 80 63 00 00 lwz r3,0(r3)
192: R_PPC_ADDR16_LO max_low_pfn
194: 80 84 00 00 lwz r4,0(r4)
196: R_PPC_ADDR16_LO max_pfn
198: 54 63 60 26 rlwinm r3,r3,12,0,19
19c: 3c 63 c0 00 addis r3,r3,-16384
1a0: 90 7c 00 00 stw r3,0(r28)
1a2: R_PPC_ADDR16_LO high_memory
1a4: 3c 60 00 00 lis r3,0
1a6: R_PPC_ADDR16_HA max_mapnr
1a8: 93 a1 00 14 stw r29,20(r1)
1ac: 93 c1 00 18 stw r30,24(r1)
1b0: 90 83 00 00 stw r4,0(r3)
1b2: R_PPC_ADDR16_LO max_mapnr
1b4: 48 00 00 01 bl 1b4 <mem_init+0x40>
1b4: R_PPC_PLTREL24 memblock_free_all
1b8: 38 60 00 00 li r3,0
1bc: 48 00 00 01 bl 1bc <mem_init+0x48>
1bc: R_PPC_PLTREL24 mem_init_print_info
1c0: 3c 60 00 00 lis r3,0
1c2: R_PPC_ADDR16_HA .rodata.str1.1+0x44
1c4: 4c c6 31 82 crclr 4*cr1+eq
1c8: 38 63 00 00 addi r3,r3,0
1ca: R_PPC_ADDR16_LO .rodata.str1.1+0x44
1cc: 48 00 00 01 bl 1cc <mem_init+0x58>
1cc: R_PPC_PLTREL24 printk
1d0: 3c 80 ff fd lis r4,-3
1d4: 3c 60 00 00 lis r3,0
1d6: R_PPC_ADDR16_HA .rodata.str1.1+0x65
1d8: 4c c6 31 82 crclr 4*cr1+eq
1dc: 60 9e f0 00 ori r30,r4,61440
1e0: 38 63 00 00 addi r3,r3,0
1e2: R_PPC_ADDR16_LO .rodata.str1.1+0x65
1e4: 7f c4 f3 78 mr r4,r30
1e8: 38 a0 f0 00 li r5,-4096
1ec: 48 00 00 01 bl 1ec <mem_init+0x78>
1ec: R_PPC_PLTREL24 printk
1f0: 3c 80 ff dd lis r4,-35
1f4: 3c 60 00 00 lis r3,0
1f6: R_PPC_ADDR16_HA .rodata.str1.1+0x87
1f8: 4c c6 31 82 crclr 4*cr1+eq
1fc: 60 9d f0 00 ori r29,r4,61440
200: 38 63 00 00 addi r3,r3,0
202: R_PPC_ADDR16_LO .rodata.str1.1+0x87
204: 7f a4 eb 78 mr r4,r29
208: 7f c5 f3 78 mr r5,r30
20c: 48 00 00 01 bl 20c <mem_init+0x98>
20c: R_PPC_PLTREL24 printk
210: 3f c0 00 00 lis r30,0
212: R_PPC_ADDR16_HA ioremap_bot
214: 3c 60 00 00 lis r3,0
216: R_PPC_ADDR16_HA .rodata.str1.1+0xb1
218: 4c c6 31 82 crclr 4*cr1+eq
21c: 80 9e 00 00 lwz r4,0(r30)
21e: R_PPC_ADDR16_LO ioremap_bot
220: 38 63 00 00 addi r3,r3,0
222: R_PPC_ADDR16_LO .rodata.str1.1+0xb1
224: 7f a5 eb 78 mr r5,r29
228: 48 00 00 01 bl 228 <mem_init+0xb4>
228: R_PPC_PLTREL24 printk
22c: 80 7c 00 00 lwz r3,0(r28)
22e: R_PPC_ADDR16_LO high_memory
230: 3c 80 01 00 lis r4,256
234: 4c c6 31 82 crclr 4*cr1+eq
238: 38 63 ff ff addi r3,r3,-1
23c: 80 be 00 00 lwz r5,0(r30)
23e: R_PPC_ADDR16_LO ioremap_bot
240: 3c 63 10 00 addis r3,r3,4096
244: 54 63 00 06 rlwinm r3,r3,0,0,3
248: 50 64 02 0c rlwimi r4,r3,0,8,6
24c: 3c 60 00 00 lis r3,0
24e: R_PPC_ADDR16_HA .rodata.str1.1+0xda
250: 38 63 00 00 addi r3,r3,0
252: R_PPC_ADDR16_LO .rodata.str1.1+0xda
254: 48 00 00 01 bl 254 <mem_init+0xe0>
254: R_PPC_PLTREL24 printk
258: 83 c1 00 18 lwz r30,24(r1)
25c: 83 a1 00 14 lwz r29,20(r1)
260: 83 81 00 10 lwz r28,16(r1)
264: 80 01 00 24 lwz r0,36(r1)
268: 38 21 00 20 addi r1,r1,32
26c: 7c 08 03 a6 mtlr r0
270: 4e 80 00 20 blr
00000274 <add_system_ram_resources>:
274: 7c 08 02 a6 mflr r0
278: 90 01 00 04 stw r0,4(r1)
27c: 94 21 ff c0 stwu r1,-64(r1)
280: 3c 60 00 00 lis r3,0
282: R_PPC_ADDR16_HA memblock
284: 93 a1 00 34 stw r29,52(r1)
288: 3b a3 00 00 addi r29,r3,0
28a: R_PPC_ADDR16_LO memblock
28c: 80 7d 00 10 lwz r3,16(r29)
290: 93 81 00 30 stw r28,48(r1)
294: 1c 63 00 18 mulli r3,r3,24
298: 83 9d 00 20 lwz r28,32(r29)
29c: 7c 7c 1a 14 add r3,r28,r3
2a0: 92 a1 00 14 stw r21,20(r1)
2a4: 7c 1c 18 40 cmplw r28,r3
2a8: 92 c1 00 18 stw r22,24(r1)
2ac: 92 e1 00 1c stw r23,28(r1)
2b0: 93 01 00 20 stw r24,32(r1)
2b4: 93 21 00 24 stw r25,36(r1)
2b8: 93 41 00 28 stw r26,40(r1)
2bc: 93 61 00 2c stw r27,44(r1)
2c0: 93 c1 00 38 stw r30,56(r1)
2c4: 40 80 00 ac bge 370 <add_system_ram_resources+0xfc>
2c8: 3c 60 00 00 lis r3,0
2ca: R_PPC_ADDR16_HA kmalloc_caches
2cc: 3c 80 00 00 lis r4,0
2ce: R_PPC_ADDR16_HA .rodata.str1.1+0x199
2d0: 3c a0 81 00 lis r5,-32512
2d4: 3c c0 00 00 lis r6,0
2d6: R_PPC_ADDR16_HA iomem_resource
2d8: 3b 7c ff e8 addi r27,r28,-24
2dc: 3b 40 00 00 li r26,0
2e0: 3b 23 00 00 addi r25,r3,0
2e2: R_PPC_ADDR16_LO kmalloc_caches
2e4: 3b 04 00 00 addi r24,r4,0
2e6: R_PPC_ADDR16_LO .rodata.str1.1+0x199
2e8: 60 b7 02 00 ori r23,r5,512
2ec: 3b c6 00 00 addi r30,r6,0
2ee: R_PPC_ADDR16_LO iomem_resource
2f0: 80 79 00 18 lwz r3,24(r25)
2f4: 38 80 0d c0 li r4,3520
2f8: 38 a0 00 28 li r5,40
2fc: 82 db 00 1c lwz r22,28(r27)
300: 82 bb 00 24 lwz r21,36(r27)
304: 48 00 00 01 bl 304 <add_system_ram_resources+0x90>
304: R_PPC_PLTREL24 kmem_cache_alloc_trace
308: 7c 64 1b 78 mr r4,r3
30c: 7c 63 00 34 cntlzw r3,r3
310: 28 04 00 00 cmplwi r4,0
314: 54 63 df fe rlwinm r3,r3,27,31,31
318: 0f 03 00 00 twnei r3,0
31c: 41 82 00 34 beq 350 <add_system_ram_resources+0xdc>
320: 7c 76 aa 14 add r3,r22,r21
324: 93 04 00 10 stw r24,16(r4)
328: 38 63 ff ff addi r3,r3,-1
32c: 90 64 00 0c stw r3,12(r4)
330: 7f c3 f3 78 mr r3,r30
334: 93 44 00 00 stw r26,0(r4)
338: 92 c4 00 04 stw r22,4(r4)
33c: 93 44 00 08 stw r26,8(r4)
340: 92 e4 00 14 stw r23,20(r4)
344: 48 00 00 01 bl 344 <add_system_ram_resources+0xd0>
344: R_PPC_PLTREL24 request_resource
348: 54 63 0f fe rlwinm r3,r3,1,31,31
34c: 0f 03 00 00 twnei r3,0
350: 80 7d 00 10 lwz r3,16(r29)
354: 3b 9c 00 18 addi r28,r28,24
358: 3b 7b 00 18 addi r27,r27,24
35c: 80 9d 00 20 lwz r4,32(r29)
360: 1c 63 00 18 mulli r3,r3,24
364: 7c 64 1a 14 add r3,r4,r3
368: 7c 1c 18 40 cmplw r28,r3
36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources+0x7c>
370: 38 60 00 00 li r3,0
374: 83 c1 00 38 lwz r30,56(r1)
378: 83 a1 00 34 lwz r29,52(r1)
37c: 83 81 00 30 lwz r28,48(r1)
380: 83 61 00 2c lwz r27,44(r1)
384: 83 41 00 28 lwz r26,40(r1)
388: 83 21 00 24 lwz r25,36(r1)
38c: 83 01 00 20 lwz r24,32(r1)
390: 82 e1 00 1c lwz r23,28(r1)
394: 82 c1 00 18 lwz r22,24(r1)
398: 82 a1 00 14 lwz r21,20(r1)
39c: 80 01 00 44 lwz r0,68(r1)
3a0: 38 21 00 40 addi r1,r1,64
3a4: 7c 08 03 a6 mtlr r0
3a8: 4e 80 00 20 blr
[-- Attachment #4: mem-diff.txt --]
[-- Type: text/plain, Size: 40265 bytes --]
mem-working.o: file format elf32-powerpc | mem-broken.o: file format elf32-powerpc
Disassembly of section .text: Disassembly of section .text:
00000000 <phys_mem_access_prot>: 00000000 <phys_mem_access_prot>:
0: 7c 08 02 a6 mflr r0 0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1) 4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff e0 stwu r1,-32(r1) 8: 94 21 ff e0 stwu r1,-32(r1)
c: 93 a1 00 14 stw r29,20(r1) c: 93 a1 00 14 stw r29,20(r1)
10: 7c fd 3b 78 mr r29,r7 10: 7c fd 3b 78 mr r29,r7
14: 3c e0 00 00 lis r7,0 14: 3c e0 00 00 lis r7,0
16: R_PPC_ADDR16_HA ppc_md 16: R_PPC_ADDR16_HA ppc_md
18: 38 e7 00 00 addi r7,r7,0 18: 38 e7 00 00 addi r7,r7,0
1a: R_PPC_ADDR16_LO ppc_md 1a: R_PPC_ADDR16_LO ppc_md
1c: 81 07 00 a0 lwz r8,160(r7) 1c: 81 07 00 a0 lwz r8,160(r7)
20: 93 c1 00 18 stw r30,24(r1) 20: 93 c1 00 18 stw r30,24(r1)
24: 28 08 00 00 cmplwi r8,0 24: 28 08 00 00 cmplwi r8,0
28: 7c 7e 1b 78 mr r30,r3 28: 7c 7e 1b 78 mr r30,r3
2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c 2c: 41 82 00 20 beq 4c <phys_mem_access_prot+0x4c
30: 80 7d 00 00 lwz r3,0(r29) 30: 80 7d 00 00 lwz r3,0(r29)
34: 38 e1 00 08 addi r7,r1,8 34: 38 e1 00 08 addi r7,r1,8
38: 7d 09 03 a6 mtctr r8 38: 7d 09 03 a6 mtctr r8
3c: 90 61 00 08 stw r3,8(r1) 3c: 90 61 00 08 stw r3,8(r1)
40: 7f c3 f3 78 mr r3,r30 40: 7f c3 f3 78 mr r3,r30
44: 4e 80 04 21 bctrl 44: 4e 80 04 21 bctrl
48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70 48: 48 00 00 28 b 70 <phys_mem_access_prot+0x70
4c: 7c a3 2b 78 mr r3,r5 4c: 7c a3 2b 78 mr r3,r5
50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50 50: 48 00 00 01 bl 50 <phys_mem_access_prot+0x50
50: R_PPC_PLTREL24 page_is_ram 50: R_PPC_PLTREL24 page_is_ram
54: 28 03 00 00 cmplwi r3,0 54: 28 03 00 00 cmplwi r3,0
58: 80 7d 00 00 lwz r3,0(r29) 58: 80 7d 00 00 lwz r3,0(r29)
5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c 5c: 40 82 00 10 bne 6c <phys_mem_access_prot+0x6c
60: 54 63 06 26 rlwinm r3,r3,0,24,19 60: 54 63 06 26 rlwinm r3,r3,0,24,19
64: 60 63 05 00 ori r3,r3,1280 64: 60 63 05 00 ori r3,r3,1280
68: 90 7d 00 00 stw r3,0(r29) 68: 90 7d 00 00 stw r3,0(r29)
6c: 90 7e 00 00 stw r3,0(r30) 6c: 90 7e 00 00 stw r3,0(r30)
70: 83 c1 00 18 lwz r30,24(r1) 70: 83 c1 00 18 lwz r30,24(r1)
74: 83 a1 00 14 lwz r29,20(r1) 74: 83 a1 00 14 lwz r29,20(r1)
78: 80 01 00 24 lwz r0,36(r1) 78: 80 01 00 24 lwz r0,36(r1)
7c: 38 21 00 20 addi r1,r1,32 7c: 38 21 00 20 addi r1,r1,32
80: 7c 08 03 a6 mtlr r0 80: 7c 08 03 a6 mtlr r0
84: 4e 80 00 20 blr 84: 4e 80 00 20 blr
00000088 <free_initmem>: 00000088 <free_initmem>:
88: 7c 08 02 a6 mflr r0 88: 7c 08 02 a6 mflr r0
8c: 90 01 00 04 stw r0,4(r1) 8c: 90 01 00 04 stw r0,4(r1)
90: 94 21 ff f0 stwu r1,-16(r1) 90: 94 21 ff f0 stwu r1,-16(r1)
94: 3c 60 00 00 lis r3,0 94: 3c 60 00 00 lis r3,0
96: R_PPC_ADDR16_HA ppc_md 96: R_PPC_ADDR16_HA ppc_md
98: 3c 80 00 00 lis r4,0 98: 3c 80 00 00 lis r4,0
9a: R_PPC_ADDR16_HA ppc_printk_pr 9a: R_PPC_ADDR16_HA ppc_printk_pr
9c: 38 63 00 00 addi r3,r3,0 9c: 38 63 00 00 addi r3,r3,0
9e: R_PPC_ADDR16_LO ppc_md 9e: R_PPC_ADDR16_LO ppc_md
a0: 38 84 00 00 addi r4,r4,0 a0: 38 84 00 00 addi r4,r4,0
a2: R_PPC_ADDR16_LO ppc_printk_pr a2: R_PPC_ADDR16_LO ppc_printk_pr
a4: 90 83 00 60 stw r4,96(r3) a4: 90 83 00 60 stw r4,96(r3)
a8: 48 00 00 01 bl a8 <free_initmem+0x20> a8: 48 00 00 01 bl a8 <free_initmem+0x20>
a8: R_PPC_PLTREL24 mark_initmem_ a8: R_PPC_PLTREL24 mark_initmem_
ac: 3c 60 00 00 lis r3,0 ac: 3c 60 00 00 lis r3,0
ae: R_PPC_ADDR16_HA init_mem_is_f ae: R_PPC_ADDR16_HA init_mem_is_f
b0: 38 80 00 01 li r4,1 b0: 38 80 00 01 li r4,1
b4: 98 83 00 00 stb r4,0(r3) b4: 98 83 00 00 stb r4,0(r3)
b6: R_PPC_ADDR16_LO init_mem_is_f b6: R_PPC_ADDR16_LO init_mem_is_f
b8: 3c 60 00 00 lis r3,0 b8: 3c 60 00 00 lis r3,0
ba: R_PPC_ADDR16_HA __init_begin ba: R_PPC_ADDR16_HA __init_begin
bc: 3c 80 00 00 lis r4,0 bc: 3c 80 00 00 lis r4,0
be: R_PPC_ADDR16_HA __init_end be: R_PPC_ADDR16_HA __init_end
c0: 3c a0 00 00 lis r5,0 c0: 3c a0 00 00 lis r5,0
c2: R_PPC_ADDR16_HA .rodata.str1. c2: R_PPC_ADDR16_HA .rodata.str1.
c4: 38 63 00 00 addi r3,r3,0 c4: 38 63 00 00 addi r3,r3,0
c6: R_PPC_ADDR16_LO __init_begin c6: R_PPC_ADDR16_LO __init_begin
c8: 38 84 00 00 addi r4,r4,0 c8: 38 84 00 00 addi r4,r4,0
ca: R_PPC_ADDR16_LO __init_end ca: R_PPC_ADDR16_LO __init_end
cc: 38 c5 00 00 addi r6,r5,0 cc: 38 c5 00 00 addi r6,r5,0
ce: R_PPC_ADDR16_LO .rodata.str1. ce: R_PPC_ADDR16_LO .rodata.str1.
d0: 38 a0 00 cc li r5,204 d0: 38 a0 00 cc li r5,204
d4: 48 00 00 01 bl d4 <free_initmem+0x4c> d4: 48 00 00 01 bl d4 <free_initmem+0x4c>
d4: R_PPC_PLTREL24 free_reserved d4: R_PPC_PLTREL24 free_reserved
d8: 80 01 00 14 lwz r0,20(r1) d8: 80 01 00 14 lwz r0,20(r1)
dc: 38 21 00 10 addi r1,r1,16 dc: 38 21 00 10 addi r1,r1,16
e0: 7c 08 03 a6 mtlr r0 e0: 7c 08 03 a6 mtlr r0
e4: 4e 80 00 20 blr e4: 4e 80 00 20 blr
000000e8 <flush_dcache_page>: 000000e8 <flush_dcache_page>:
e8: 80 83 00 00 lwz r4,0(r3) e8: 80 83 00 00 lwz r4,0(r3)
ec: 70 84 08 00 andi. r4,r4,2048 ec: 70 84 08 00 andi. r4,r4,2048
f0: 4d 82 00 20 beqlr f0: 4d 82 00 20 beqlr
f4: 38 80 08 00 li r4,2048 f4: 38 80 08 00 li r4,2048
f8: 7c a0 18 28 lwarx r5,0,r3 f8: 7c a0 18 28 lwarx r5,0,r3
fc: 7c a5 20 78 andc r5,r5,r4 fc: 7c a5 20 78 andc r5,r5,r4
100: 7c a0 19 2d stwcx. r5,0,r3 100: 7c a0 19 2d stwcx. r5,0,r3
104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10> 104: 40 a2 ff f4 bne f8 <flush_dcache_page+0x10>
108: 4e 80 00 20 blr 108: 4e 80 00 20 blr
0000010c <flush_dcache_icache_page>: 0000010c <flush_dcache_icache_page>:
10c: 7c 08 02 a6 mflr r0 10c: 7c 08 02 a6 mflr r0
110: 90 01 00 04 stw r0,4(r1) 110: 90 01 00 04 stw r0,4(r1)
114: 94 21 ff f0 stwu r1,-16(r1) 114: 94 21 ff f0 stwu r1,-16(r1)
118: 80 82 00 00 lwz r4,0(r2) 118: 80 82 00 00 lwz r4,0(r2)
11c: 38 84 00 01 addi r4,r4,1 11c: 38 84 00 01 addi r4,r4,1
120: 90 82 00 00 stw r4,0(r2) 120: 90 82 00 00 stw r4,0(r2)
124: 80 82 0a e4 lwz r4,2788(r2) 124: 80 82 0a e4 lwz r4,2788(r2)
128: 38 84 00 01 addi r4,r4,1 128: 38 84 00 01 addi r4,r4,1
12c: 90 82 0a e4 stw r4,2788(r2) 12c: 90 82 0a e4 stw r4,2788(r2)
130: 3c 80 00 00 lis r4,0 130: 3c 80 00 00 lis r4,0
132: R_PPC_ADDR16_HA mem_map 132: R_PPC_ADDR16_HA mem_map
134: 80 84 00 00 lwz r4,0(r4) 134: 80 84 00 00 lwz r4,0(r4)
136: R_PPC_ADDR16_LO mem_map 136: R_PPC_ADDR16_LO mem_map
138: 7c 64 18 50 subf r3,r4,r3 138: 7c 64 18 50 subf r3,r4,r3
13c: 3c 80 cc cc lis r4,-13108 13c: 3c 80 cc cc lis r4,-13108
140: 54 63 e8 fe rlwinm r3,r3,29,3,31 140: 54 63 e8 fe rlwinm r3,r3,29,3,31
144: 60 84 d0 00 ori r4,r4,53248 144: 60 84 d0 00 ori r4,r4,53248
148: 7c 63 21 d6 mullw r3,r3,r4 148: 7c 63 21 d6 mullw r3,r3,r4
14c: 3c 63 c0 00 addis r3,r3,-16384 14c: 3c 63 c0 00 addis r3,r3,-16384
150: 48 00 00 01 bl 150 <flush_dcache_icache_page 150: 48 00 00 01 bl 150 <flush_dcache_icache_page
150: R_PPC_PLTREL24 __flush_dcach 150: R_PPC_PLTREL24 __flush_dcach
154: 80 62 0a e4 lwz r3,2788(r2) 154: 80 62 0a e4 lwz r3,2788(r2)
158: 38 63 ff ff addi r3,r3,-1 158: 38 63 ff ff addi r3,r3,-1
15c: 90 62 0a e4 stw r3,2788(r2) 15c: 90 62 0a e4 stw r3,2788(r2)
160: 80 62 00 00 lwz r3,0(r2) 160: 80 62 00 00 lwz r3,0(r2)
164: 38 63 ff ff addi r3,r3,-1 164: 38 63 ff ff addi r3,r3,-1
168: 90 62 00 00 stw r3,0(r2) 168: 90 62 00 00 stw r3,0(r2)
16c: 80 01 00 14 lwz r0,20(r1) 16c: 80 01 00 14 lwz r0,20(r1)
170: 38 21 00 10 addi r1,r1,16 170: 38 21 00 10 addi r1,r1,16
174: 7c 08 03 a6 mtlr r0 174: 7c 08 03 a6 mtlr r0
178: 4e 80 00 20 blr 178: 4e 80 00 20 blr
0000017c <clear_user_page>: 0000017c <clear_user_page>:
17c: 38 80 00 80 li r4,128 | 17c: 94 21 ff f0 stwu r1,-16(r1)
180: 7c 89 03 a6 mtctr r4 | 180: 38 80 00 80 li r4,128
184: 7c 00 1f ec dcbz 0,r3 | 184: 38 63 ff e0 addi r3,r3,-32
188: 38 63 00 20 addi r3,r3,32 | 188: 7c 89 03 a6 mtctr r4
18c: 42 00 ff f8 bdnz 184 <clear_user_page+0x8> | 18c: 38 81 00 0f addi r4,r1,15
190: 80 65 00 00 lwz r3,0(r5) | 190: 8c c3 00 20 lbzu r6,32(r3)
194: 70 63 08 00 andi. r3,r3,2048 | 194: 98 c1 00 0f stb r6,15(r1)
198: 4d 82 00 20 beqlr | 198: 7c 00 27 ec dcbz 0,r4
19c: 38 60 08 00 li r3,2048 | 19c: 42 00 ff f4 bdnz 190 <clear_user_page+0x14>
1a0: 7c 80 28 28 lwarx r4,0,r5 | 1a0: 80 65 00 00 lwz r3,0(r5)
1a4: 7c 84 18 78 andc r4,r4,r3 | 1a4: 70 63 08 00 andi. r3,r3,2048
1a8: 7c 80 29 2d stwcx. r4,0,r5 | 1a8: 41 82 00 18 beq 1c0 <clear_user_page+0x44>
1ac: 40 a2 ff f4 bne 1a0 <clear_user_page+0x24> | 1ac: 38 60 08 00 li r3,2048
1b0: 4e 80 00 20 blr | 1b0: 7c 80 28 28 lwarx r4,0,r5
| 1b4: 7c 84 18 78 andc r4,r4,r3
000001b4 <copy_user_page>: | 1b8: 7c 80 29 2d stwcx. r4,0,r5
1b4: 7c 08 02 a6 mflr r0 | 1bc: 40 a2 ff f4 bne 1b0 <clear_user_page+0x34>
1b8: 90 01 00 04 stw r0,4(r1) | 1c0: 38 21 00 10 addi r1,r1,16
1bc: 94 21 ff f0 stwu r1,-16(r1) | 1c4: 4e 80 00 20 blr
1c0: 93 c1 00 08 stw r30,8(r1) |
1c4: 7c de 33 78 mr r30,r6 | 000001c8 <copy_user_page>:
1c8: 48 00 00 01 bl 1c8 <copy_user_page+0x14> | 1c8: 7c 08 02 a6 mflr r0
1c8: R_PPC_PLTREL24 copy_page | 1cc: 90 01 00 04 stw r0,4(r1)
1cc: 80 7e 00 00 lwz r3,0(r30) | 1d0: 94 21 ff f0 stwu r1,-16(r1)
1d0: 70 63 08 00 andi. r3,r3,2048 | 1d4: 93 c1 00 08 stw r30,8(r1)
1d4: 41 82 00 18 beq 1ec <copy_user_page+0x38> | 1d8: 7c de 33 78 mr r30,r6
1d8: 38 60 08 00 li r3,2048 | 1dc: 48 00 00 01 bl 1dc <copy_user_page+0x14>
1dc: 7c 80 f0 28 lwarx r4,0,r30 | 1dc: R_PPC_PLTREL24 copy_page
1e0: 7c 84 18 78 andc r4,r4,r3 | 1e0: 80 7e 00 00 lwz r3,0(r30)
1e4: 7c 80 f1 2d stwcx. r4,0,r30 | 1e4: 70 63 08 00 andi. r3,r3,2048
1e8: 40 a2 ff f4 bne 1dc <copy_user_page+0x28> | 1e8: 41 82 00 18 beq 200 <copy_user_page+0x38>
1ec: 83 c1 00 08 lwz r30,8(r1) | 1ec: 38 60 08 00 li r3,2048
1f0: 80 01 00 14 lwz r0,20(r1) | 1f0: 7c 80 f0 28 lwarx r4,0,r30
1f4: 38 21 00 10 addi r1,r1,16 | 1f4: 7c 84 18 78 andc r4,r4,r3
1f8: 7c 08 03 a6 mtlr r0 | 1f8: 7c 80 f1 2d stwcx. r4,0,r30
1fc: 4e 80 00 20 blr | 1fc: 40 a2 ff f4 bne 1f0 <copy_user_page+0x28>
| 200: 83 c1 00 08 lwz r30,8(r1)
00000200 <flush_icache_user_range>: | 204: 80 01 00 14 lwz r0,20(r1)
200: 7c 08 02 a6 mflr r0 | 208: 38 21 00 10 addi r1,r1,16
204: 90 01 00 04 stw r0,4(r1) | 20c: 7c 08 03 a6 mtlr r0
208: 94 21 ff e0 stwu r1,-32(r1) | 210: 4e 80 00 20 blr
20c: 3c 60 00 00 lis r3,0 |
20e: R_PPC_ADDR16_HA .rodata.str1. | 00000214 <flush_icache_user_range>:
210: 93 81 00 10 stw r28,16(r1) | 214: 7c 08 02 a6 mflr r0
214: 7c 9c 23 78 mr r28,r4 | 218: 90 01 00 04 stw r0,4(r1)
218: 38 63 00 00 addi r3,r3,0 | 21c: 94 21 ff e0 stwu r1,-32(r1)
21a: R_PPC_ADDR16_LO .rodata.str1. | 220: 3c 60 00 00 lis r3,0
21c: 38 80 00 53 li r4,83 | 222: R_PPC_ADDR16_HA .rodata.str1.
220: 93 a1 00 14 stw r29,20(r1) | 224: 93 81 00 10 stw r28,16(r1)
224: 7c bd 2b 78 mr r29,r5 | 228: 7c 9c 23 78 mr r28,r4
228: 38 a0 00 00 li r5,0 | 22c: 38 63 00 00 addi r3,r3,0
22c: 93 c1 00 18 stw r30,24(r1) | 22e: R_PPC_ADDR16_LO .rodata.str1.
230: 7c de 33 78 mr r30,r6 | 230: 38 80 00 53 li r4,83
234: 48 00 00 01 bl 234 <flush_icache_user_range+ | 234: 93 a1 00 14 stw r29,20(r1)
234: R_PPC_PLTREL24 __might_sleep | 238: 7c bd 2b 78 mr r29,r5
238: 3c 60 00 00 lis r3,0 | 23c: 38 a0 00 00 li r5,0
23a: R_PPC_ADDR16_HA mem_map | 240: 93 c1 00 18 stw r30,24(r1)
23c: 3c 80 cc cc lis r4,-13108 | 244: 7c de 33 78 mr r30,r6
240: 80 63 00 00 lwz r3,0(r3) | 248: 48 00 00 01 bl 248 <flush_icache_user_range+
242: R_PPC_ADDR16_LO mem_map | 248: R_PPC_PLTREL24 __might_sleep
244: 60 84 d0 00 ori r4,r4,53248 | 24c: 3c 60 00 00 lis r3,0
248: 7c 63 e0 50 subf r3,r3,r28 | 24e: R_PPC_ADDR16_HA mem_map
24c: 54 63 e8 fe rlwinm r3,r3,29,3,31 | 250: 3c 80 cc cc lis r4,-13108
250: 7c 63 21 d6 mullw r3,r3,r4 | 254: 80 63 00 00 lwz r3,0(r3)
254: 57 a4 05 3e clrlwi r4,r29,20 | 256: R_PPC_ADDR16_LO mem_map
258: 50 64 00 26 rlwimi r4,r3,0,0,19 | 258: 60 84 d0 00 ori r4,r4,53248
25c: 3c 64 c0 00 addis r3,r4,-16384 | 25c: 7c 63 e0 50 subf r3,r3,r28
260: 7c 83 f2 14 add r4,r3,r30 | 260: 54 63 e8 fe rlwinm r3,r3,29,3,31
264: 48 00 00 01 bl 264 <flush_icache_user_range+ | 264: 7c 63 21 d6 mullw r3,r3,r4
264: R_PPC_PLTREL24 flush_icache_ | 268: 57 a4 05 3e clrlwi r4,r29,20
268: 83 c1 00 18 lwz r30,24(r1) | 26c: 50 64 00 26 rlwimi r4,r3,0,0,19
26c: 83 a1 00 14 lwz r29,20(r1) | 270: 3c 64 c0 00 addis r3,r4,-16384
270: 83 81 00 10 lwz r28,16(r1) | 274: 7c 83 f2 14 add r4,r3,r30
274: 80 01 00 24 lwz r0,36(r1) | 278: 48 00 00 01 bl 278 <flush_icache_user_range+
278: 38 21 00 20 addi r1,r1,32 | 278: R_PPC_PLTREL24 flush_icache_
27c: 7c 08 03 a6 mtlr r0 | 27c: 83 c1 00 18 lwz r30,24(r1)
280: 4e 80 00 20 blr | 280: 83 a1 00 14 lwz r29,20(r1)
| 284: 83 81 00 10 lwz r28,16(r1)
00000284 <update_mmu_cache>: | 288: 80 01 00 24 lwz r0,36(r1)
284: 4e 80 00 20 blr | 28c: 38 21 00 20 addi r1,r1,32
| 290: 7c 08 03 a6 mtlr r0
00000288 <devmem_is_allowed>: | 294: 4e 80 00 20 blr
288: 7c 08 02 a6 mflr r0 |
28c: 90 01 00 04 stw r0,4(r1) | 00000298 <update_mmu_cache>:
290: 94 21 ff f0 stwu r1,-16(r1) | 298: 4e 80 00 20 blr
294: 93 c1 00 08 stw r30,8(r1) |
298: 7c 7e 1b 78 mr r30,r3 | 0000029c <devmem_is_allowed>:
29c: 54 63 65 3e rlwinm r3,r3,12,20,31 | 29c: 7c 08 02 a6 mflr r0
2a0: 57 c4 60 26 rlwinm r4,r30,12,0,19 | 2a0: 90 01 00 04 stw r0,4(r1)
2a4: 48 00 00 01 bl 2a4 <devmem_is_allowed+0x1c> | 2a4: 94 21 ff f0 stwu r1,-16(r1)
2a4: R_PPC_PLTREL24 iomem_is_excl | 2a8: 93 c1 00 08 stw r30,8(r1)
2a8: 70 63 00 01 andi. r3,r3,1 | 2ac: 7c 7e 1b 78 mr r30,r3
2ac: 38 60 00 00 li r3,0 | 2b0: 54 63 65 3e rlwinm r3,r3,12,20,31
2b0: 41 81 00 14 bgt 2c4 <devmem_is_allowed+0x3c> | 2b4: 57 c4 60 26 rlwinm r4,r30,12,0,19
2b4: 7f c3 f3 78 mr r3,r30 | 2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x1c>
2b8: 48 00 00 01 bl 2b8 <devmem_is_allowed+0x30> | 2b8: R_PPC_PLTREL24 iomem_is_excl
2b8: R_PPC_PLTREL24 page_is_ram | 2bc: 70 63 00 01 andi. r3,r3,1
2bc: 7c 63 00 34 cntlzw r3,r3 | 2c0: 38 60 00 00 li r3,0
2c0: 54 63 df fe rlwinm r3,r3,27,31,31 | 2c4: 41 81 00 14 bgt 2d8 <devmem_is_allowed+0x3c>
2c4: 83 c1 00 08 lwz r30,8(r1) | 2c8: 7f c3 f3 78 mr r3,r30
2c8: 80 01 00 14 lwz r0,20(r1) | 2cc: 48 00 00 01 bl 2cc <devmem_is_allowed+0x30>
2cc: 38 21 00 10 addi r1,r1,16 | 2cc: R_PPC_PLTREL24 page_is_ram
2d0: 7c 08 03 a6 mtlr r0 | 2d0: 7c 63 00 34 cntlzw r3,r3
2d4: 4e 80 00 20 blr | 2d4: 54 63 df fe rlwinm r3,r3,27,31,31
> 2d8: 83 c1 00 08 lwz r30,8(r1)
> 2dc: 80 01 00 14 lwz r0,20(r1)
> 2e0: 38 21 00 10 addi r1,r1,16
> 2e4: 7c 08 03 a6 mtlr r0
> 2e8: 4e 80 00 20 blr
Disassembly of section .init.text: Disassembly of section .init.text:
00000000 <mem_topology_setup>: 00000000 <mem_topology_setup>:
0: 7c 08 02 a6 mflr r0 0: 7c 08 02 a6 mflr r0
4: 90 01 00 04 stw r0,4(r1) 4: 90 01 00 04 stw r0,4(r1)
8: 94 21 ff f0 stwu r1,-16(r1) 8: 94 21 ff f0 stwu r1,-16(r1)
c: 48 00 00 01 bl c <mem_topology_setup+0xc> c: 48 00 00 01 bl c <mem_topology_setup+0xc>
c: R_PPC_PLTREL24 memblock_end_ c: R_PPC_PLTREL24 memblock_end_
10: 54 84 a0 3e rotlwi r4,r4,20 10: 54 84 a0 3e rotlwi r4,r4,20
14: 3c a0 00 00 lis r5,0 14: 3c a0 00 00 lis r5,0
16: R_PPC_ADDR16_HA max_pfn 16: R_PPC_ADDR16_HA max_pfn
18: 50 64 a0 16 rlwimi r4,r3,20,0,11 18: 50 64 a0 16 rlwimi r4,r3,20,0,11
1c: 3c 60 00 00 lis r3,0 1c: 3c 60 00 00 lis r3,0
1e: R_PPC_ADDR16_HA max_low_pfn 1e: R_PPC_ADDR16_HA max_low_pfn
20: 90 85 00 00 stw r4,0(r5) 20: 90 85 00 00 stw r4,0(r5)
22: R_PPC_ADDR16_LO max_pfn 22: R_PPC_ADDR16_LO max_pfn
24: 38 a0 ff ff li r5,-1 24: 38 a0 ff ff li r5,-1
28: 90 83 00 00 stw r4,0(r3) 28: 90 83 00 00 stw r4,0(r3)
2a: R_PPC_ADDR16_LO max_low_pfn 2a: R_PPC_ADDR16_LO max_low_pfn
2c: 3c 60 00 00 lis r3,0 2c: 3c 60 00 00 lis r3,0
2e: R_PPC_ADDR16_HA min_low_pfn 2e: R_PPC_ADDR16_HA min_low_pfn
30: 38 80 00 00 li r4,0 30: 38 80 00 00 li r4,0
34: 38 c0 ff ff li r6,-1 34: 38 c0 ff ff li r6,-1
38: 39 00 00 00 li r8,0 38: 39 00 00 00 li r8,0
3c: 90 83 00 00 stw r4,0(r3) 3c: 90 83 00 00 stw r4,0(r3)
3e: R_PPC_ADDR16_LO min_low_pfn 3e: R_PPC_ADDR16_LO min_low_pfn
40: 3c 60 00 00 lis r3,0 40: 3c 60 00 00 lis r3,0
42: R_PPC_ADDR16_HA memblock 42: R_PPC_ADDR16_HA memblock
44: 38 80 00 00 li r4,0 44: 38 80 00 00 li r4,0
48: 38 63 00 00 addi r3,r3,0 48: 38 63 00 00 addi r3,r3,0
4a: R_PPC_ADDR16_LO memblock 4a: R_PPC_ADDR16_LO memblock
4c: 38 e3 00 10 addi r7,r3,16 4c: 38 e3 00 10 addi r7,r3,16
50: 38 60 00 00 li r3,0 50: 38 60 00 00 li r3,0
54: 48 00 00 01 bl 54 <mem_topology_setup+0x54> 54: 48 00 00 01 bl 54 <mem_topology_setup+0x54>
54: R_PPC_PLTREL24 memblock_set_ 54: R_PPC_PLTREL24 memblock_set_
58: 80 01 00 14 lwz r0,20(r1) 58: 80 01 00 14 lwz r0,20(r1)
5c: 38 21 00 10 addi r1,r1,16 5c: 38 21 00 10 addi r1,r1,16
60: 7c 08 03 a6 mtlr r0 60: 7c 08 03 a6 mtlr r0
64: 4e 80 00 20 blr 64: 4e 80 00 20 blr
00000068 <initmem_init>: 00000068 <initmem_init>:
68: 7c 08 02 a6 mflr r0 68: 7c 08 02 a6 mflr r0
6c: 90 01 00 04 stw r0,4(r1) 6c: 90 01 00 04 stw r0,4(r1)
70: 94 21 ff f0 stwu r1,-16(r1) 70: 94 21 ff f0 stwu r1,-16(r1)
74: 38 60 00 00 li r3,0 74: 38 60 00 00 li r3,0
78: 48 00 00 01 bl 78 <initmem_init+0x10> 78: 48 00 00 01 bl 78 <initmem_init+0x10>
78: R_PPC_PLTREL24 sparse_memory 78: R_PPC_PLTREL24 sparse_memory
7c: 80 01 00 14 lwz r0,20(r1) 7c: 80 01 00 14 lwz r0,20(r1)
80: 38 21 00 10 addi r1,r1,16 80: 38 21 00 10 addi r1,r1,16
84: 7c 08 03 a6 mtlr r0 84: 7c 08 03 a6 mtlr r0
88: 4e 80 00 20 blr 88: 4e 80 00 20 blr
0000008c <paging_init>: 0000008c <paging_init>:
8c: 7c 08 02 a6 mflr r0 8c: 7c 08 02 a6 mflr r0
90: 90 01 00 04 stw r0,4(r1) 90: 90 01 00 04 stw r0,4(r1)
94: 94 21 ff d0 stwu r1,-48(r1) 94: 94 21 ff d0 stwu r1,-48(r1)
98: 93 21 00 14 stw r25,20(r1) 98: 93 21 00 14 stw r25,20(r1)
9c: 93 41 00 18 stw r26,24(r1) 9c: 93 41 00 18 stw r26,24(r1)
a0: 93 61 00 1c stw r27,28(r1) a0: 93 61 00 1c stw r27,28(r1)
a4: 93 81 00 20 stw r28,32(r1) a4: 93 81 00 20 stw r28,32(r1)
a8: 93 a1 00 24 stw r29,36(r1) a8: 93 a1 00 24 stw r29,36(r1)
ac: 93 c1 00 28 stw r30,40(r1) ac: 93 c1 00 28 stw r30,40(r1)
b0: 48 00 00 01 bl b0 <paging_init+0x24> b0: 48 00 00 01 bl b0 <paging_init+0x24>
b0: R_PPC_PLTREL24 memblock_phys b0: R_PPC_PLTREL24 memblock_phys
b4: 7c 7e 1b 78 mr r30,r3 b4: 7c 7e 1b 78 mr r30,r3
b8: 7c 9d 23 78 mr r29,r4 b8: 7c 9d 23 78 mr r29,r4
bc: 3f 40 ff fe lis r26,-2 bc: 3f 40 ff fe lis r26,-2
c0: 48 00 00 01 bl c0 <paging_init+0x34> c0: 48 00 00 01 bl c0 <paging_init+0x34>
c0: R_PPC_PLTREL24 memblock_end_ c0: R_PPC_PLTREL24 memblock_end_
c4: 7c 7c 1b 78 mr r28,r3 c4: 7c 7c 1b 78 mr r28,r3
c8: 7c 9b 23 78 mr r27,r4 c8: 7c 9b 23 78 mr r27,r4
cc: 3b 20 00 00 li r25,0 cc: 3b 20 00 00 li r25,0
d0: 38 e1 00 08 addi r7,r1,8 d0: 38 e1 00 08 addi r7,r1,8
d4: 7f 43 d3 78 mr r3,r26 d4: 7f 43 d3 78 mr r3,r26
d8: 93 21 00 10 stw r25,16(r1) d8: 93 21 00 10 stw r25,16(r1)
dc: 38 a0 00 00 li r5,0 dc: 38 a0 00 00 li r5,0
e0: 38 c0 00 00 li r6,0 e0: 38 c0 00 00 li r6,0
e4: 93 21 00 08 stw r25,8(r1) e4: 93 21 00 08 stw r25,8(r1)
e8: 48 00 00 01 bl e8 <paging_init+0x5c> e8: 48 00 00 01 bl e8 <paging_init+0x5c>
e8: R_PPC_PLTREL24 map_kernel_pa e8: R_PPC_PLTREL24 map_kernel_pa
ec: 3b 5a 10 00 addi r26,r26,4096 ec: 3b 5a 10 00 addi r26,r26,4096
f0: 2c 1a f0 00 cmpwi r26,-4096 f0: 2c 1a f0 00 cmpwi r26,-4096
f4: 40 82 ff dc bne d0 <paging_init+0x44> f4: 40 82 ff dc bne d0 <paging_init+0x44>
f8: 3c 60 00 00 lis r3,0 f8: 3c 60 00 00 lis r3,0
fa: R_PPC_ADDR16_HA .rodata.str1. fa: R_PPC_ADDR16_HA .rodata.str1.
fc: 4c c6 31 82 crclr 4*cr1+eq fc: 4c c6 31 82 crclr 4*cr1+eq
100: 7f 85 e3 78 mr r5,r28 100: 7f 85 e3 78 mr r5,r28
104: 38 63 00 00 addi r3,r3,0 104: 38 63 00 00 addi r3,r3,0
106: R_PPC_ADDR16_LO .rodata.str1. 106: R_PPC_ADDR16_LO .rodata.str1.
108: 7f 66 db 78 mr r6,r27 108: 7f 66 db 78 mr r6,r27
10c: 7f c7 f3 78 mr r7,r30 10c: 7f c7 f3 78 mr r7,r30
110: 7f a8 eb 78 mr r8,r29 110: 7f a8 eb 78 mr r8,r29
114: 48 00 00 01 bl 114 <paging_init+0x88> 114: 48 00 00 01 bl 114 <paging_init+0x88>
114: R_PPC_PLTREL24 printk 114: R_PPC_PLTREL24 printk
118: 7c 7d d8 10 subfc r3,r29,r27 118: 7c 7d d8 10 subfc r3,r29,r27
11c: 4c c6 31 82 crclr 4*cr1+eq 11c: 4c c6 31 82 crclr 4*cr1+eq
120: 7c be e1 10 subfe r5,r30,r28 120: 7c be e1 10 subfe r5,r30,r28
124: 54 64 60 3e rotlwi r4,r3,12 124: 54 64 60 3e rotlwi r4,r3,12
128: 3c 60 00 00 lis r3,0 128: 3c 60 00 00 lis r3,0
12a: R_PPC_ADDR16_HA .rodata.str1. 12a: R_PPC_ADDR16_HA .rodata.str1.
12c: 50 a4 60 26 rlwimi r4,r5,12,0,19 12c: 50 a4 60 26 rlwimi r4,r5,12,0,19
130: 38 63 00 00 addi r3,r3,0 130: 38 63 00 00 addi r3,r3,0
132: R_PPC_ADDR16_LO .rodata.str1. 132: R_PPC_ADDR16_LO .rodata.str1.
134: 48 00 00 01 bl 134 <paging_init+0xa8> 134: 48 00 00 01 bl 134 <paging_init+0xa8>
134: R_PPC_PLTREL24 printk 134: R_PPC_PLTREL24 printk
138: 3c 60 00 00 lis r3,0 138: 3c 60 00 00 lis r3,0
13a: R_PPC_ADDR16_HA max_low_pfn 13a: R_PPC_ADDR16_HA max_low_pfn
13c: 80 83 00 00 lwz r4,0(r3) 13c: 80 83 00 00 lwz r4,0(r3)
13e: R_PPC_ADDR16_LO max_low_pfn 13e: R_PPC_ADDR16_LO max_low_pfn
140: 3c 60 00 00 lis r3,0 140: 3c 60 00 00 lis r3,0
142: R_PPC_ADDR16_HA .bss+0x10 142: R_PPC_ADDR16_HA .bss+0x10
144: 94 83 00 00 stwu r4,0(r3) 144: 94 83 00 00 stwu r4,0(r3)
146: R_PPC_ADDR16_LO .bss+0x10 146: R_PPC_ADDR16_LO .bss+0x10
148: 48 00 00 01 bl 148 <paging_init+0xbc> 148: 48 00 00 01 bl 148 <paging_init+0xbc>
148: R_PPC_PLTREL24 free_area_ini 148: R_PPC_PLTREL24 free_area_ini
14c: 83 c1 00 28 lwz r30,40(r1) 14c: 83 c1 00 28 lwz r30,40(r1)
150: 83 a1 00 24 lwz r29,36(r1) 150: 83 a1 00 24 lwz r29,36(r1)
154: 83 81 00 20 lwz r28,32(r1) 154: 83 81 00 20 lwz r28,32(r1)
158: 83 61 00 1c lwz r27,28(r1) 158: 83 61 00 1c lwz r27,28(r1)
15c: 83 41 00 18 lwz r26,24(r1) 15c: 83 41 00 18 lwz r26,24(r1)
160: 83 21 00 14 lwz r25,20(r1) 160: 83 21 00 14 lwz r25,20(r1)
164: 80 01 00 34 lwz r0,52(r1) 164: 80 01 00 34 lwz r0,52(r1)
168: 38 21 00 30 addi r1,r1,48 168: 38 21 00 30 addi r1,r1,48
16c: 7c 08 03 a6 mtlr r0 16c: 7c 08 03 a6 mtlr r0
170: 4e 80 00 20 blr 170: 4e 80 00 20 blr
00000174 <mem_init>: 00000174 <mem_init>:
174: 7c 08 02 a6 mflr r0 174: 7c 08 02 a6 mflr r0
178: 90 01 00 04 stw r0,4(r1) 178: 90 01 00 04 stw r0,4(r1)
17c: 94 21 ff e0 stwu r1,-32(r1) 17c: 94 21 ff e0 stwu r1,-32(r1)
180: 3c 60 00 00 lis r3,0 180: 3c 60 00 00 lis r3,0
182: R_PPC_ADDR16_HA max_low_pfn 182: R_PPC_ADDR16_HA max_low_pfn
184: 3c 80 00 00 lis r4,0 184: 3c 80 00 00 lis r4,0
186: R_PPC_ADDR16_HA max_pfn 186: R_PPC_ADDR16_HA max_pfn
188: 93 81 00 10 stw r28,16(r1) 188: 93 81 00 10 stw r28,16(r1)
18c: 3f 80 00 00 lis r28,0 18c: 3f 80 00 00 lis r28,0
18e: R_PPC_ADDR16_HA high_memory 18e: R_PPC_ADDR16_HA high_memory
190: 80 63 00 00 lwz r3,0(r3) 190: 80 63 00 00 lwz r3,0(r3)
192: R_PPC_ADDR16_LO max_low_pfn 192: R_PPC_ADDR16_LO max_low_pfn
194: 80 84 00 00 lwz r4,0(r4) 194: 80 84 00 00 lwz r4,0(r4)
196: R_PPC_ADDR16_LO max_pfn 196: R_PPC_ADDR16_LO max_pfn
198: 54 63 60 26 rlwinm r3,r3,12,0,19 198: 54 63 60 26 rlwinm r3,r3,12,0,19
19c: 3c 63 c0 00 addis r3,r3,-16384 19c: 3c 63 c0 00 addis r3,r3,-16384
1a0: 90 7c 00 00 stw r3,0(r28) 1a0: 90 7c 00 00 stw r3,0(r28)
1a2: R_PPC_ADDR16_LO high_memory 1a2: R_PPC_ADDR16_LO high_memory
1a4: 3c 60 00 00 lis r3,0 1a4: 3c 60 00 00 lis r3,0
1a6: R_PPC_ADDR16_HA max_mapnr 1a6: R_PPC_ADDR16_HA max_mapnr
1a8: 93 a1 00 14 stw r29,20(r1) 1a8: 93 a1 00 14 stw r29,20(r1)
1ac: 93 c1 00 18 stw r30,24(r1) 1ac: 93 c1 00 18 stw r30,24(r1)
1b0: 90 83 00 00 stw r4,0(r3) 1b0: 90 83 00 00 stw r4,0(r3)
1b2: R_PPC_ADDR16_LO max_mapnr 1b2: R_PPC_ADDR16_LO max_mapnr
1b4: 48 00 00 01 bl 1b4 <mem_init+0x40> 1b4: 48 00 00 01 bl 1b4 <mem_init+0x40>
1b4: R_PPC_PLTREL24 memblock_free 1b4: R_PPC_PLTREL24 memblock_free
1b8: 38 60 00 00 li r3,0 1b8: 38 60 00 00 li r3,0
1bc: 48 00 00 01 bl 1bc <mem_init+0x48> 1bc: 48 00 00 01 bl 1bc <mem_init+0x48>
1bc: R_PPC_PLTREL24 mem_init_prin 1bc: R_PPC_PLTREL24 mem_init_prin
1c0: 3c 60 00 00 lis r3,0 1c0: 3c 60 00 00 lis r3,0
1c2: R_PPC_ADDR16_HA .rodata.str1. 1c2: R_PPC_ADDR16_HA .rodata.str1.
1c4: 4c c6 31 82 crclr 4*cr1+eq 1c4: 4c c6 31 82 crclr 4*cr1+eq
1c8: 38 63 00 00 addi r3,r3,0 1c8: 38 63 00 00 addi r3,r3,0
1ca: R_PPC_ADDR16_LO .rodata.str1. 1ca: R_PPC_ADDR16_LO .rodata.str1.
1cc: 48 00 00 01 bl 1cc <mem_init+0x58> 1cc: 48 00 00 01 bl 1cc <mem_init+0x58>
1cc: R_PPC_PLTREL24 printk 1cc: R_PPC_PLTREL24 printk
1d0: 3c 80 ff fd lis r4,-3 1d0: 3c 80 ff fd lis r4,-3
1d4: 3c 60 00 00 lis r3,0 1d4: 3c 60 00 00 lis r3,0
1d6: R_PPC_ADDR16_HA .rodata.str1. 1d6: R_PPC_ADDR16_HA .rodata.str1.
1d8: 4c c6 31 82 crclr 4*cr1+eq 1d8: 4c c6 31 82 crclr 4*cr1+eq
1dc: 60 9e f0 00 ori r30,r4,61440 1dc: 60 9e f0 00 ori r30,r4,61440
1e0: 38 63 00 00 addi r3,r3,0 1e0: 38 63 00 00 addi r3,r3,0
1e2: R_PPC_ADDR16_LO .rodata.str1. 1e2: R_PPC_ADDR16_LO .rodata.str1.
1e4: 7f c4 f3 78 mr r4,r30 1e4: 7f c4 f3 78 mr r4,r30
1e8: 38 a0 f0 00 li r5,-4096 1e8: 38 a0 f0 00 li r5,-4096
1ec: 48 00 00 01 bl 1ec <mem_init+0x78> 1ec: 48 00 00 01 bl 1ec <mem_init+0x78>
1ec: R_PPC_PLTREL24 printk 1ec: R_PPC_PLTREL24 printk
1f0: 3c 80 ff dd lis r4,-35 1f0: 3c 80 ff dd lis r4,-35
1f4: 3c 60 00 00 lis r3,0 1f4: 3c 60 00 00 lis r3,0
1f6: R_PPC_ADDR16_HA .rodata.str1. 1f6: R_PPC_ADDR16_HA .rodata.str1.
1f8: 4c c6 31 82 crclr 4*cr1+eq 1f8: 4c c6 31 82 crclr 4*cr1+eq
1fc: 60 9d f0 00 ori r29,r4,61440 1fc: 60 9d f0 00 ori r29,r4,61440
200: 38 63 00 00 addi r3,r3,0 200: 38 63 00 00 addi r3,r3,0
202: R_PPC_ADDR16_LO .rodata.str1. 202: R_PPC_ADDR16_LO .rodata.str1.
204: 7f a4 eb 78 mr r4,r29 204: 7f a4 eb 78 mr r4,r29
208: 7f c5 f3 78 mr r5,r30 208: 7f c5 f3 78 mr r5,r30
20c: 48 00 00 01 bl 20c <mem_init+0x98> 20c: 48 00 00 01 bl 20c <mem_init+0x98>
20c: R_PPC_PLTREL24 printk 20c: R_PPC_PLTREL24 printk
210: 3f c0 00 00 lis r30,0 210: 3f c0 00 00 lis r30,0
212: R_PPC_ADDR16_HA ioremap_bot 212: R_PPC_ADDR16_HA ioremap_bot
214: 3c 60 00 00 lis r3,0 214: 3c 60 00 00 lis r3,0
216: R_PPC_ADDR16_HA .rodata.str1. 216: R_PPC_ADDR16_HA .rodata.str1.
218: 4c c6 31 82 crclr 4*cr1+eq 218: 4c c6 31 82 crclr 4*cr1+eq
21c: 80 9e 00 00 lwz r4,0(r30) 21c: 80 9e 00 00 lwz r4,0(r30)
21e: R_PPC_ADDR16_LO ioremap_bot 21e: R_PPC_ADDR16_LO ioremap_bot
220: 38 63 00 00 addi r3,r3,0 220: 38 63 00 00 addi r3,r3,0
222: R_PPC_ADDR16_LO .rodata.str1. 222: R_PPC_ADDR16_LO .rodata.str1.
224: 7f a5 eb 78 mr r5,r29 224: 7f a5 eb 78 mr r5,r29
228: 48 00 00 01 bl 228 <mem_init+0xb4> 228: 48 00 00 01 bl 228 <mem_init+0xb4>
228: R_PPC_PLTREL24 printk 228: R_PPC_PLTREL24 printk
22c: 80 7c 00 00 lwz r3,0(r28) 22c: 80 7c 00 00 lwz r3,0(r28)
22e: R_PPC_ADDR16_LO high_memory 22e: R_PPC_ADDR16_LO high_memory
230: 3c 80 01 00 lis r4,256 230: 3c 80 01 00 lis r4,256
234: 4c c6 31 82 crclr 4*cr1+eq 234: 4c c6 31 82 crclr 4*cr1+eq
238: 38 63 ff ff addi r3,r3,-1 238: 38 63 ff ff addi r3,r3,-1
23c: 80 be 00 00 lwz r5,0(r30) 23c: 80 be 00 00 lwz r5,0(r30)
23e: R_PPC_ADDR16_LO ioremap_bot 23e: R_PPC_ADDR16_LO ioremap_bot
240: 3c 63 10 00 addis r3,r3,4096 240: 3c 63 10 00 addis r3,r3,4096
244: 54 63 00 06 rlwinm r3,r3,0,0,3 244: 54 63 00 06 rlwinm r3,r3,0,0,3
248: 50 64 02 0c rlwimi r4,r3,0,8,6 248: 50 64 02 0c rlwimi r4,r3,0,8,6
24c: 3c 60 00 00 lis r3,0 24c: 3c 60 00 00 lis r3,0
24e: R_PPC_ADDR16_HA .rodata.str1. 24e: R_PPC_ADDR16_HA .rodata.str1.
250: 38 63 00 00 addi r3,r3,0 250: 38 63 00 00 addi r3,r3,0
252: R_PPC_ADDR16_LO .rodata.str1. 252: R_PPC_ADDR16_LO .rodata.str1.
254: 48 00 00 01 bl 254 <mem_init+0xe0> 254: 48 00 00 01 bl 254 <mem_init+0xe0>
254: R_PPC_PLTREL24 printk 254: R_PPC_PLTREL24 printk
258: 83 c1 00 18 lwz r30,24(r1) 258: 83 c1 00 18 lwz r30,24(r1)
25c: 83 a1 00 14 lwz r29,20(r1) 25c: 83 a1 00 14 lwz r29,20(r1)
260: 83 81 00 10 lwz r28,16(r1) 260: 83 81 00 10 lwz r28,16(r1)
264: 80 01 00 24 lwz r0,36(r1) 264: 80 01 00 24 lwz r0,36(r1)
268: 38 21 00 20 addi r1,r1,32 268: 38 21 00 20 addi r1,r1,32
26c: 7c 08 03 a6 mtlr r0 26c: 7c 08 03 a6 mtlr r0
270: 4e 80 00 20 blr 270: 4e 80 00 20 blr
00000274 <add_system_ram_resources>: 00000274 <add_system_ram_resources>:
274: 7c 08 02 a6 mflr r0 274: 7c 08 02 a6 mflr r0
278: 90 01 00 04 stw r0,4(r1) 278: 90 01 00 04 stw r0,4(r1)
27c: 94 21 ff c0 stwu r1,-64(r1) 27c: 94 21 ff c0 stwu r1,-64(r1)
280: 3c 60 00 00 lis r3,0 280: 3c 60 00 00 lis r3,0
282: R_PPC_ADDR16_HA memblock 282: R_PPC_ADDR16_HA memblock
284: 93 a1 00 34 stw r29,52(r1) 284: 93 a1 00 34 stw r29,52(r1)
288: 3b a3 00 00 addi r29,r3,0 288: 3b a3 00 00 addi r29,r3,0
28a: R_PPC_ADDR16_LO memblock 28a: R_PPC_ADDR16_LO memblock
28c: 80 7d 00 10 lwz r3,16(r29) 28c: 80 7d 00 10 lwz r3,16(r29)
290: 93 81 00 30 stw r28,48(r1) 290: 93 81 00 30 stw r28,48(r1)
294: 1c 63 00 18 mulli r3,r3,24 294: 1c 63 00 18 mulli r3,r3,24
298: 83 9d 00 20 lwz r28,32(r29) 298: 83 9d 00 20 lwz r28,32(r29)
29c: 7c 7c 1a 14 add r3,r28,r3 29c: 7c 7c 1a 14 add r3,r28,r3
2a0: 92 a1 00 14 stw r21,20(r1) 2a0: 92 a1 00 14 stw r21,20(r1)
2a4: 7c 1c 18 40 cmplw r28,r3 2a4: 7c 1c 18 40 cmplw r28,r3
2a8: 92 c1 00 18 stw r22,24(r1) 2a8: 92 c1 00 18 stw r22,24(r1)
2ac: 92 e1 00 1c stw r23,28(r1) 2ac: 92 e1 00 1c stw r23,28(r1)
2b0: 93 01 00 20 stw r24,32(r1) 2b0: 93 01 00 20 stw r24,32(r1)
2b4: 93 21 00 24 stw r25,36(r1) 2b4: 93 21 00 24 stw r25,36(r1)
2b8: 93 41 00 28 stw r26,40(r1) 2b8: 93 41 00 28 stw r26,40(r1)
2bc: 93 61 00 2c stw r27,44(r1) 2bc: 93 61 00 2c stw r27,44(r1)
2c0: 93 c1 00 38 stw r30,56(r1) 2c0: 93 c1 00 38 stw r30,56(r1)
2c4: 40 80 00 ac bge 370 <add_system_ram_resources 2c4: 40 80 00 ac bge 370 <add_system_ram_resources
2c8: 3c 60 00 00 lis r3,0 2c8: 3c 60 00 00 lis r3,0
2ca: R_PPC_ADDR16_HA kmalloc_cache 2ca: R_PPC_ADDR16_HA kmalloc_cache
2cc: 3c 80 00 00 lis r4,0 2cc: 3c 80 00 00 lis r4,0
2ce: R_PPC_ADDR16_HA .rodata.str1. 2ce: R_PPC_ADDR16_HA .rodata.str1.
2d0: 3c a0 81 00 lis r5,-32512 2d0: 3c a0 81 00 lis r5,-32512
2d4: 3c c0 00 00 lis r6,0 2d4: 3c c0 00 00 lis r6,0
2d6: R_PPC_ADDR16_HA iomem_resourc 2d6: R_PPC_ADDR16_HA iomem_resourc
2d8: 3b 7c ff e8 addi r27,r28,-24 2d8: 3b 7c ff e8 addi r27,r28,-24
2dc: 3b 40 00 00 li r26,0 2dc: 3b 40 00 00 li r26,0
2e0: 3b 23 00 00 addi r25,r3,0 2e0: 3b 23 00 00 addi r25,r3,0
2e2: R_PPC_ADDR16_LO kmalloc_cache 2e2: R_PPC_ADDR16_LO kmalloc_cache
2e4: 3b 04 00 00 addi r24,r4,0 2e4: 3b 04 00 00 addi r24,r4,0
2e6: R_PPC_ADDR16_LO .rodata.str1. 2e6: R_PPC_ADDR16_LO .rodata.str1.
2e8: 60 b7 02 00 ori r23,r5,512 2e8: 60 b7 02 00 ori r23,r5,512
2ec: 3b c6 00 00 addi r30,r6,0 2ec: 3b c6 00 00 addi r30,r6,0
2ee: R_PPC_ADDR16_LO iomem_resourc 2ee: R_PPC_ADDR16_LO iomem_resourc
2f0: 80 79 00 18 lwz r3,24(r25) 2f0: 80 79 00 18 lwz r3,24(r25)
2f4: 38 80 0d c0 li r4,3520 2f4: 38 80 0d c0 li r4,3520
2f8: 38 a0 00 28 li r5,40 2f8: 38 a0 00 28 li r5,40
2fc: 82 db 00 1c lwz r22,28(r27) 2fc: 82 db 00 1c lwz r22,28(r27)
300: 82 bb 00 24 lwz r21,36(r27) 300: 82 bb 00 24 lwz r21,36(r27)
304: 48 00 00 01 bl 304 <add_system_ram_resources 304: 48 00 00 01 bl 304 <add_system_ram_resources
304: R_PPC_PLTREL24 kmem_cache_al 304: R_PPC_PLTREL24 kmem_cache_al
308: 7c 64 1b 78 mr r4,r3 308: 7c 64 1b 78 mr r4,r3
30c: 7c 63 00 34 cntlzw r3,r3 30c: 7c 63 00 34 cntlzw r3,r3
310: 28 04 00 00 cmplwi r4,0 310: 28 04 00 00 cmplwi r4,0
314: 54 63 df fe rlwinm r3,r3,27,31,31 314: 54 63 df fe rlwinm r3,r3,27,31,31
318: 0f 03 00 00 twnei r3,0 318: 0f 03 00 00 twnei r3,0
31c: 41 82 00 34 beq 350 <add_system_ram_resources 31c: 41 82 00 34 beq 350 <add_system_ram_resources
320: 7c 76 aa 14 add r3,r22,r21 320: 7c 76 aa 14 add r3,r22,r21
324: 93 04 00 10 stw r24,16(r4) 324: 93 04 00 10 stw r24,16(r4)
328: 38 63 ff ff addi r3,r3,-1 328: 38 63 ff ff addi r3,r3,-1
32c: 90 64 00 0c stw r3,12(r4) 32c: 90 64 00 0c stw r3,12(r4)
330: 7f c3 f3 78 mr r3,r30 330: 7f c3 f3 78 mr r3,r30
334: 93 44 00 00 stw r26,0(r4) 334: 93 44 00 00 stw r26,0(r4)
338: 92 c4 00 04 stw r22,4(r4) 338: 92 c4 00 04 stw r22,4(r4)
33c: 93 44 00 08 stw r26,8(r4) 33c: 93 44 00 08 stw r26,8(r4)
340: 92 e4 00 14 stw r23,20(r4) 340: 92 e4 00 14 stw r23,20(r4)
344: 48 00 00 01 bl 344 <add_system_ram_resources 344: 48 00 00 01 bl 344 <add_system_ram_resources
344: R_PPC_PLTREL24 request_resou 344: R_PPC_PLTREL24 request_resou
348: 54 63 0f fe rlwinm r3,r3,1,31,31 348: 54 63 0f fe rlwinm r3,r3,1,31,31
34c: 0f 03 00 00 twnei r3,0 34c: 0f 03 00 00 twnei r3,0
350: 80 7d 00 10 lwz r3,16(r29) 350: 80 7d 00 10 lwz r3,16(r29)
354: 3b 9c 00 18 addi r28,r28,24 354: 3b 9c 00 18 addi r28,r28,24
358: 3b 7b 00 18 addi r27,r27,24 358: 3b 7b 00 18 addi r27,r27,24
35c: 80 9d 00 20 lwz r4,32(r29) 35c: 80 9d 00 20 lwz r4,32(r29)
360: 1c 63 00 18 mulli r3,r3,24 360: 1c 63 00 18 mulli r3,r3,24
364: 7c 64 1a 14 add r3,r4,r3 364: 7c 64 1a 14 add r3,r4,r3
368: 7c 1c 18 40 cmplw r28,r3 368: 7c 1c 18 40 cmplw r28,r3
36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources 36c: 41 80 ff 84 blt 2f0 <add_system_ram_resources
370: 38 60 00 00 li r3,0 370: 38 60 00 00 li r3,0
374: 83 c1 00 38 lwz r30,56(r1) 374: 83 c1 00 38 lwz r30,56(r1)
378: 83 a1 00 34 lwz r29,52(r1) 378: 83 a1 00 34 lwz r29,52(r1)
37c: 83 81 00 30 lwz r28,48(r1) 37c: 83 81 00 30 lwz r28,48(r1)
380: 83 61 00 2c lwz r27,44(r1) 380: 83 61 00 2c lwz r27,44(r1)
384: 83 41 00 28 lwz r26,40(r1) 384: 83 41 00 28 lwz r26,40(r1)
388: 83 21 00 24 lwz r25,36(r1) 388: 83 21 00 24 lwz r25,36(r1)
38c: 83 01 00 20 lwz r24,32(r1) 38c: 83 01 00 20 lwz r24,32(r1)
390: 82 e1 00 1c lwz r23,28(r1) 390: 82 e1 00 1c lwz r23,28(r1)
394: 82 c1 00 18 lwz r22,24(r1) 394: 82 c1 00 18 lwz r22,24(r1)
398: 82 a1 00 14 lwz r21,20(r1) 398: 82 a1 00 14 lwz r21,20(r1)
39c: 80 01 00 44 lwz r0,68(r1) 39c: 80 01 00 44 lwz r0,68(r1)
3a0: 38 21 00 40 addi r1,r1,64 3a0: 38 21 00 40 addi r1,r1,64
3a4: 7c 08 03 a6 mtlr r0 3a4: 7c 08 03 a6 mtlr r0
3a8: 4e 80 00 20 blr 3a8: 4e 80 00 20 blr
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 2:41 ` Nathan Chancellor
@ 2019-07-22 6:19 ` Segher Boessenkool
2019-07-22 17:21 ` Nick Desaulniers
0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-22 6:19 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Christophe Leroy, Michael Ellerman, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Sun, Jul 21, 2019 at 07:41:40PM -0700, Nathan Chancellor wrote:
> Hi Segher,
>
> On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > > 0000017c clear_user_page:
> > > 17c: 94 21 ff f0 stwu 1, -16(1)
> > > 180: 38 80 00 80 li 4, 128
> > > 184: 38 63 ff e0 addi 3, 3, -32
> > > 188: 7c 89 03 a6 mtctr 4
> > > 18c: 38 81 00 0f addi 4, 1, 15
> > > 190: 8c c3 00 20 lbzu 6, 32(3)
> > > 194: 98 c1 00 0f stb 6, 15(1)
> > > 198: 7c 00 27 ec dcbz 0, 4
> > > 19c: 42 00 ff f4 bdnz .+65524
> >
> > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > work. It's copying a byte from each target cache line to the stack,
> > and then does clears the cache line containing that byte on the stack.
> >
> > I *guess* this is about "Z" and not about "%y", but you'll have to ask
> > the clang people.
> >
> > Or it may be that they do not treat inline asm operands as lvalues
> > properly? That rings some bells. Yeah that looks like it.
The code is
__asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
so yeah it looks like clang took that *(u8 *)addr as rvalue, and
stored that in stack, and then used *that* as memory.
Maybe clang simply does not not to treat "Z" the same as "m"? (And "Y"
and "Q" and "es" and a whole bunch of "w*", what about those?)
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-21 18:01 ` Segher Boessenkool
2019-07-22 2:41 ` Nathan Chancellor
@ 2019-07-22 10:15 ` Michael Ellerman
2019-07-22 15:18 ` Segher Boessenkool
1 sibling, 1 reply; 22+ messages in thread
From: Michael Ellerman @ 2019-07-22 10:15 UTC (permalink / raw)
To: Segher Boessenkool, Nathan Chancellor
Cc: Christophe Leroy, Benjamin Herrenschmidt, Paul Mackerras,
linuxppc-dev, linux-kernel, clang-built-linux
Segher Boessenkool <segher@kernel.crashing.org> writes:
> On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
>> I have attached the disassembly of arch/powerpc/kernel/mem.o with
>> clear_page (working) and broken_clear_page (broken), along with the side
>> by side diff. My assembly knowledge is fairly limited as it stands and
>> it is certainly not up to snuff on PowerPC so I have no idea what I am
>> looking for. Please let me know if anything immediately looks off or if
>> there is anything else I can do to help out.
>
> You might want to use a disassembler that shows most simplified mnemonics,
> and you crucially should show the relocations. "objdump -dr" works nicely.
>
>> 0000017c clear_user_page:
>> 17c: 38 80 00 80 li 4, 128
>> 180: 7c 89 03 a6 mtctr 4
>> 184: 7c 00 1f ec dcbz 0, 3
>> 188: 38 63 00 20 addi 3, 3, 32
>> 18c: 42 00 ff f8 bdnz .+65528
>
> That offset is incorrectly disassembled, btw (it's a signed field, not
> unsigned).
>
>> 0000017c clear_user_page:
>> 17c: 94 21 ff f0 stwu 1, -16(1)
>> 180: 38 80 00 80 li 4, 128
>> 184: 38 63 ff e0 addi 3, 3, -32
>> 188: 7c 89 03 a6 mtctr 4
>> 18c: 38 81 00 0f addi 4, 1, 15
>> 190: 8c c3 00 20 lbzu 6, 32(3)
>> 194: 98 c1 00 0f stb 6, 15(1)
>> 198: 7c 00 27 ec dcbz 0, 4
>> 19c: 42 00 ff f4 bdnz .+65524
>
> Uh, yeah, well, I have no idea what clang tried here, but that won't
> work. It's copying a byte from each target cache line to the stack,
> and then does clears the cache line containing that byte on the stack.
So it seems like this is a clang bug.
None of the distros we support use clang, but we would still like to
keep it working if we can.
Looking at the original patch, the only upside is that the compiler
can use both RA and RB to compute the address, rather than us forcing RA
to 0.
But at least with my compiler here (GCC 8 vintage) I don't actually see
GCC ever using both GPRs even with the patch. Or at least, there's no
difference before/after the patch as far as I can see.
So my inclination is to revert the original patch. We can try again in a
few years :D
Thoughts?
cheers
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 10:15 ` Michael Ellerman
@ 2019-07-22 15:18 ` Segher Boessenkool
2019-07-22 23:21 ` Michael Ellerman
0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-22 15:18 UTC (permalink / raw)
To: Michael Ellerman
Cc: Nathan Chancellor, Christophe Leroy, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Mon, Jul 22, 2019 at 08:15:14PM +1000, Michael Ellerman wrote:
> Segher Boessenkool <segher@kernel.crashing.org> writes:
> > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> >> 0000017c clear_user_page:
> >> 17c: 94 21 ff f0 stwu 1, -16(1)
> >> 180: 38 80 00 80 li 4, 128
> >> 184: 38 63 ff e0 addi 3, 3, -32
> >> 188: 7c 89 03 a6 mtctr 4
> >> 18c: 38 81 00 0f addi 4, 1, 15
> >> 190: 8c c3 00 20 lbzu 6, 32(3)
> >> 194: 98 c1 00 0f stb 6, 15(1)
> >> 198: 7c 00 27 ec dcbz 0, 4
> >> 19c: 42 00 ff f4 bdnz .+65524
> >
> > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > work. It's copying a byte from each target cache line to the stack,
> > and then does clears the cache line containing that byte on the stack.
>
> So it seems like this is a clang bug.
>
> None of the distros we support use clang, but we would still like to
> keep it working if we can.
Which version? Which versions *are* broken?
> Looking at the original patch, the only upside is that the compiler
> can use both RA and RB to compute the address, rather than us forcing RA
> to 0.
>
> But at least with my compiler here (GCC 8 vintage) I don't actually see
> GCC ever using both GPRs even with the patch. Or at least, there's no
> difference before/after the patch as far as I can see.
The benefit is small, certainly.
> So my inclination is to revert the original patch. We can try again in a
> few years :D
>
> Thoughts?
I think you should give the clang people time to figure out what is
going on.
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 6:19 ` Segher Boessenkool
@ 2019-07-22 17:21 ` Nick Desaulniers
2019-07-22 17:58 ` Segher Boessenkool
0 siblings, 1 reply; 22+ messages in thread
From: Nick Desaulniers @ 2019-07-22 17:21 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Nathan Chancellor, Christophe Leroy, Michael Ellerman,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML,
clang-built-linux
On Sun, Jul 21, 2019 at 11:19 PM Segher Boessenkool
<segher@kernel.crashing.org> wrote:
>
> On Sun, Jul 21, 2019 at 07:41:40PM -0700, Nathan Chancellor wrote:
> > Hi Segher,
> >
> > On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> > > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > > > 0000017c clear_user_page:
> > > > 17c: 94 21 ff f0 stwu 1, -16(1)
> > > > 180: 38 80 00 80 li 4, 128
> > > > 184: 38 63 ff e0 addi 3, 3, -32
> > > > 188: 7c 89 03 a6 mtctr 4
> > > > 18c: 38 81 00 0f addi 4, 1, 15
> > > > 190: 8c c3 00 20 lbzu 6, 32(3)
> > > > 194: 98 c1 00 0f stb 6, 15(1)
> > > > 198: 7c 00 27 ec dcbz 0, 4
> > > > 19c: 42 00 ff f4 bdnz .+65524
> > >
> > > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > > work. It's copying a byte from each target cache line to the stack,
> > > and then does clears the cache line containing that byte on the stack.
> > >
> > > I *guess* this is about "Z" and not about "%y", but you'll have to ask
> > > the clang people.
> > >
> > > Or it may be that they do not treat inline asm operands as lvalues
> > > properly? That rings some bells. Yeah that looks like it.
>
> The code is
> __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
>
> so yeah it looks like clang took that *(u8 *)addr as rvalue, and
> stored that in stack, and then used *that* as memory.
What's the %y modifier supposed to mean here? addr is in the list of
inputs, so what's wrong with using it as an rvalue?
>
> Maybe clang simply does not not to treat "Z" the same as "m"? (And "Y"
> and "Q" and "es" and a whole bunch of "w*", what about those?)
--
Thanks,
~Nick Desaulniers
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 17:21 ` Nick Desaulniers
@ 2019-07-22 17:58 ` Segher Boessenkool
2019-07-25 21:30 ` Nick Desaulniers
0 siblings, 1 reply; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-22 17:58 UTC (permalink / raw)
To: Nick Desaulniers
Cc: Nathan Chancellor, Christophe Leroy, Michael Ellerman,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML,
clang-built-linux
On Mon, Jul 22, 2019 at 10:21:07AM -0700, Nick Desaulniers wrote:
> On Sun, Jul 21, 2019 at 11:19 PM Segher Boessenkool
> <segher@kernel.crashing.org> wrote:
> > On Sun, Jul 21, 2019 at 07:41:40PM -0700, Nathan Chancellor wrote:
> > > On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> > > > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > > > > 0000017c clear_user_page:
> > > > > 17c: 94 21 ff f0 stwu 1, -16(1)
> > > > > 180: 38 80 00 80 li 4, 128
> > > > > 184: 38 63 ff e0 addi 3, 3, -32
> > > > > 188: 7c 89 03 a6 mtctr 4
> > > > > 18c: 38 81 00 0f addi 4, 1, 15
> > > > > 190: 8c c3 00 20 lbzu 6, 32(3)
> > > > > 194: 98 c1 00 0f stb 6, 15(1)
> > > > > 198: 7c 00 27 ec dcbz 0, 4
> > > > > 19c: 42 00 ff f4 bdnz .+65524
> > > >
> > > > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > > > work. It's copying a byte from each target cache line to the stack,
> > > > and then does clears the cache line containing that byte on the stack.
> > > >
> > > > I *guess* this is about "Z" and not about "%y", but you'll have to ask
> > > > the clang people.
> > > >
> > > > Or it may be that they do not treat inline asm operands as lvalues
> > > > properly? That rings some bells. Yeah that looks like it.
> >
> > The code is
> > __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
> >
> > so yeah it looks like clang took that *(u8 *)addr as rvalue, and
> > stored that in stack, and then used *that* as memory.
>
> What's the %y modifier supposed to mean here?
It prints a memory address for an indexed operand.
If you write just "%0" it prints addresses that are a single register
as "0(r3)" instead of "0,r3". Some instructions do not allow offset
form.
> addr is in the list of
> inputs, so what's wrong with using it as an rvalue?
It seems to use *(u8 *)addr as rvalue. Asm operands are lvalues. It
matters a lot for memory operands.
> > Maybe clang simply does not not to treat "Z" the same as "m"? (And "Y"
> > and "Q" and "es" and a whole bunch of "w*", what about those?)
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 15:18 ` Segher Boessenkool
@ 2019-07-22 23:21 ` Michael Ellerman
2019-07-25 13:22 ` Segher Boessenkool
0 siblings, 1 reply; 22+ messages in thread
From: Michael Ellerman @ 2019-07-22 23:21 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Nathan Chancellor, Christophe Leroy, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
Segher Boessenkool <segher@kernel.crashing.org> writes:
> On Mon, Jul 22, 2019 at 08:15:14PM +1000, Michael Ellerman wrote:
>> Segher Boessenkool <segher@kernel.crashing.org> writes:
>> > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
>> >> 0000017c clear_user_page:
>> >> 17c: 94 21 ff f0 stwu 1, -16(1)
>> >> 180: 38 80 00 80 li 4, 128
>> >> 184: 38 63 ff e0 addi 3, 3, -32
>> >> 188: 7c 89 03 a6 mtctr 4
>> >> 18c: 38 81 00 0f addi 4, 1, 15
>> >> 190: 8c c3 00 20 lbzu 6, 32(3)
>> >> 194: 98 c1 00 0f stb 6, 15(1)
>> >> 198: 7c 00 27 ec dcbz 0, 4
>> >> 19c: 42 00 ff f4 bdnz .+65524
>> >
>> > Uh, yeah, well, I have no idea what clang tried here, but that won't
>> > work. It's copying a byte from each target cache line to the stack,
>> > and then does clears the cache line containing that byte on the stack.
>>
>> So it seems like this is a clang bug.
>>
>> None of the distros we support use clang, but we would still like to
>> keep it working if we can.
>
> Which version? Which versions *are* broken?
AFAIK clang 8 is the first version that we could build with, without
hacks.
>> Looking at the original patch, the only upside is that the compiler
>> can use both RA and RB to compute the address, rather than us forcing RA
>> to 0.
>>
>> But at least with my compiler here (GCC 8 vintage) I don't actually see
>> GCC ever using both GPRs even with the patch. Or at least, there's no
>> difference before/after the patch as far as I can see.
>
> The benefit is small, certainly.
Zero is small, but I guess some things are smaller? :P
>> So my inclination is to revert the original patch. We can try again in a
>> few years :D
>>
>> Thoughts?
>
> I think you should give the clang people time to figure out what is
> going on.
Yeah fair enough, will wait and see what their diagnosis is.
cheers
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 23:21 ` Michael Ellerman
@ 2019-07-25 13:22 ` Segher Boessenkool
0 siblings, 0 replies; 22+ messages in thread
From: Segher Boessenkool @ 2019-07-25 13:22 UTC (permalink / raw)
To: Michael Ellerman
Cc: Nathan Chancellor, Christophe Leroy, Benjamin Herrenschmidt,
Paul Mackerras, linuxppc-dev, linux-kernel, clang-built-linux
On Tue, Jul 23, 2019 at 09:21:53AM +1000, Michael Ellerman wrote:
> Segher Boessenkool <segher@kernel.crashing.org> writes:
> >> can use both RA and RB to compute the address, rather than us forcing RA
> >> to 0.
> >>
> >> But at least with my compiler here (GCC 8 vintage) I don't actually see
> >> GCC ever using both GPRs even with the patch. Or at least, there's no
> >> difference before/after the patch as far as I can see.
> >
> > The benefit is small, certainly.
>
> Zero is small, but I guess some things are smaller? :P
Heh. 0 out of 12 is small.
It actually is quite easy to do trigger the macros to generate two-reg
dcb* instructions; but all the places where that is especially useful,
in loops for example, already use hand-written assembler code (and yes,
using two-reg forms).
You probably will not want to write those routines as plain C ever
given how important those are for performance (memset, clear-a-page),
so the dcb* macros won't ever be very hot, oh well.
> >> So my inclination is to revert the original patch. We can try again in a
> >> few years :D
> >>
> >> Thoughts?
> >
> > I think you should give the clang people time to figure out what is
> > going on.
>
> Yeah fair enough, will wait and see what their diagnosis is.
Thanks!
Segher
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-22 17:58 ` Segher Boessenkool
@ 2019-07-25 21:30 ` Nick Desaulniers
2019-07-29 20:28 ` Nick Desaulniers
0 siblings, 1 reply; 22+ messages in thread
From: Nick Desaulniers @ 2019-07-25 21:30 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Nathan Chancellor, Christophe Leroy, Michael Ellerman,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML,
clang-built-linux, James Y Knight, Joel Stanley, dja
On Mon, Jul 22, 2019 at 10:58 AM Segher Boessenkool
<segher@kernel.crashing.org> wrote:
>
> On Mon, Jul 22, 2019 at 10:21:07AM -0700, Nick Desaulniers wrote:
> > On Sun, Jul 21, 2019 at 11:19 PM Segher Boessenkool
> > <segher@kernel.crashing.org> wrote:
> > > On Sun, Jul 21, 2019 at 07:41:40PM -0700, Nathan Chancellor wrote:
> > > > On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> > > > > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > > > > > 0000017c clear_user_page:
> > > > > > 17c: 94 21 ff f0 stwu 1, -16(1)
> > > > > > 180: 38 80 00 80 li 4, 128
> > > > > > 184: 38 63 ff e0 addi 3, 3, -32
> > > > > > 188: 7c 89 03 a6 mtctr 4
> > > > > > 18c: 38 81 00 0f addi 4, 1, 15
> > > > > > 190: 8c c3 00 20 lbzu 6, 32(3)
> > > > > > 194: 98 c1 00 0f stb 6, 15(1)
> > > > > > 198: 7c 00 27 ec dcbz 0, 4
> > > > > > 19c: 42 00 ff f4 bdnz .+65524
> > > > >
> > > > > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > > > > work. It's copying a byte from each target cache line to the stack,
> > > > > and then does clears the cache line containing that byte on the stack.
> > > > >
> > > > > I *guess* this is about "Z" and not about "%y", but you'll have to ask
> > > > > the clang people.
> > > > >
> > > > > Or it may be that they do not treat inline asm operands as lvalues
> > > > > properly? That rings some bells. Yeah that looks like it.
> > >
> > > The code is
> > > __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
> > >
> > > so yeah it looks like clang took that *(u8 *)addr as rvalue, and
> > > stored that in stack, and then used *that* as memory.
> >
> > What's the %y modifier supposed to mean here?
>
> It prints a memory address for an indexed operand.
>
> If you write just "%0" it prints addresses that are a single register
> as "0(r3)" instead of "0,r3". Some instructions do not allow offset
> form.
>
> > addr is in the list of
> > inputs, so what's wrong with using it as an rvalue?
>
> It seems to use *(u8 *)addr as rvalue. Asm operands are lvalues. It
> matters a lot for memory operands.
Hmm...not sure that's specified behavior. Anyways, I've filed:
https://bugs.llvm.org/show_bug.cgi?id=42762
to see if folks more familiar with LLVM's ppc backend have some more thoughts.
I recommend considering reverting commit 6c5875843b87 ("powerpc:
slightly improve cache helpers") until the issue is resolved in clang,
otherwise I'll probably just turn off our CI builds of PPC32 for the
time being.
--
Thanks,
~Nick Desaulniers
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2] powerpc: slightly improve cache helpers
2019-07-25 21:30 ` Nick Desaulniers
@ 2019-07-29 20:28 ` Nick Desaulniers
0 siblings, 0 replies; 22+ messages in thread
From: Nick Desaulniers @ 2019-07-29 20:28 UTC (permalink / raw)
To: Segher Boessenkool
Cc: Nathan Chancellor, Christophe Leroy, Michael Ellerman,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML,
clang-built-linux, James Y Knight, Joel Stanley, dja
On Thu, Jul 25, 2019 at 2:30 PM Nick Desaulniers
<ndesaulniers@google.com> wrote:
>
> On Mon, Jul 22, 2019 at 10:58 AM Segher Boessenkool
> <segher@kernel.crashing.org> wrote:
> >
> > On Mon, Jul 22, 2019 at 10:21:07AM -0700, Nick Desaulniers wrote:
> > > On Sun, Jul 21, 2019 at 11:19 PM Segher Boessenkool
> > > <segher@kernel.crashing.org> wrote:
> > > > On Sun, Jul 21, 2019 at 07:41:40PM -0700, Nathan Chancellor wrote:
> > > > > On Sun, Jul 21, 2019 at 01:01:50PM -0500, Segher Boessenkool wrote:
> > > > > > On Sun, Jul 21, 2019 at 12:58:46AM -0700, Nathan Chancellor wrote:
> > > > > > > 0000017c clear_user_page:
> > > > > > > 17c: 94 21 ff f0 stwu 1, -16(1)
> > > > > > > 180: 38 80 00 80 li 4, 128
> > > > > > > 184: 38 63 ff e0 addi 3, 3, -32
> > > > > > > 188: 7c 89 03 a6 mtctr 4
> > > > > > > 18c: 38 81 00 0f addi 4, 1, 15
> > > > > > > 190: 8c c3 00 20 lbzu 6, 32(3)
> > > > > > > 194: 98 c1 00 0f stb 6, 15(1)
> > > > > > > 198: 7c 00 27 ec dcbz 0, 4
> > > > > > > 19c: 42 00 ff f4 bdnz .+65524
> > > > > >
> > > > > > Uh, yeah, well, I have no idea what clang tried here, but that won't
> > > > > > work. It's copying a byte from each target cache line to the stack,
> > > > > > and then does clears the cache line containing that byte on the stack.
> > > > > >
> > > > > > I *guess* this is about "Z" and not about "%y", but you'll have to ask
> > > > > > the clang people.
> > > > > >
> > > > > > Or it may be that they do not treat inline asm operands as lvalues
> > > > > > properly? That rings some bells. Yeah that looks like it.
> > > >
> > > > The code is
> > > > __asm__ __volatile__ ("dcbz %y0" : : "Z"(*(u8 *)addr) : "memory");
> > > >
> > > > so yeah it looks like clang took that *(u8 *)addr as rvalue, and
> > > > stored that in stack, and then used *that* as memory.
> > >
> > > What's the %y modifier supposed to mean here?
> >
> > It prints a memory address for an indexed operand.
> >
> > If you write just "%0" it prints addresses that are a single register
> > as "0(r3)" instead of "0,r3". Some instructions do not allow offset
> > form.
> >
> > > addr is in the list of
> > > inputs, so what's wrong with using it as an rvalue?
> >
> > It seems to use *(u8 *)addr as rvalue. Asm operands are lvalues. It
> > matters a lot for memory operands.
>
> Hmm...not sure that's specified behavior. Anyways, I've filed:
> https://bugs.llvm.org/show_bug.cgi?id=42762
> to see if folks more familiar with LLVM's ppc backend have some more thoughts.
>
> I recommend considering reverting commit 6c5875843b87 ("powerpc:
> slightly improve cache helpers") until the issue is resolved in clang,
> otherwise I'll probably just turn off our CI builds of PPC32 for the
> time being.
Started a new thread: https://lkml.org/lkml/2019/7/29/1483
--
Thanks,
~Nick Desaulniers
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2019-07-29 20:28 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-10 9:24 [PATCH v2] powerpc: slightly improve cache helpers Christophe Leroy
2019-07-08 1:19 ` Michael Ellerman
2019-07-08 19:14 ` Nathan Chancellor
2019-07-09 5:04 ` Christophe Leroy
2019-07-09 6:49 ` Nathan Chancellor
2019-07-19 3:24 ` Nathan Chancellor
2019-07-19 15:23 ` Segher Boessenkool
2019-07-19 16:04 ` Nathan Chancellor
2019-07-21 7:58 ` Nathan Chancellor
2019-07-21 18:01 ` Segher Boessenkool
2019-07-22 2:41 ` Nathan Chancellor
2019-07-22 6:19 ` Segher Boessenkool
2019-07-22 17:21 ` Nick Desaulniers
2019-07-22 17:58 ` Segher Boessenkool
2019-07-25 21:30 ` Nick Desaulniers
2019-07-29 20:28 ` Nick Desaulniers
2019-07-22 10:15 ` Michael Ellerman
2019-07-22 15:18 ` Segher Boessenkool
2019-07-22 23:21 ` Michael Ellerman
2019-07-25 13:22 ` Segher Boessenkool
2019-07-22 0:53 ` [PATCH] powerpc: Test broken dcbz kbuild test robot
2019-07-09 13:35 ` [PATCH v2] powerpc: slightly improve cache helpers Segher Boessenkool
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).