kernel_optimize_test/arch/mips/kernel
Jinyang He b1ce9716f3 MIPS: Fix unable to reserve memory for Crash kernel
Use 0 as the align parameter in memblock_find_in_range() is
incorrect when we reserve memory for Crash kernel.

The environment as follows:
[    0.000000] MIPS: machine is loongson,loongson64c-4core-rs780e
...
[    1.951016]     crashkernel=64M@128M

The warning as follows:
[    0.000000] Invalid memory region reserved for crash kernel

And the iomem as follows:
00200000-0effffff : System RAM
  04000000-0484009f : Kernel code
  048400a0-04ad7fff : Kernel data
  04b40000-05c4c6bf : Kernel bss
1a000000-1bffffff : pci@1a000000
...

The align parameter may be finally used by round_down() or round_up().
Like the following call tree:

mips-next: mm/memblock.c

memblock_find_in_range
└── memblock_find_in_range_node
    ├── __memblock_find_range_bottom_up
    │   └── round_up
    └── __memblock_find_range_top_down
        └── round_down
\#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
\#define round_down(x, y) ((x) & ~__round_mask(x, y))
\#define __round_mask(x, y) ((__typeof__(x))((y)-1))

The round_down(or round_up)'s second parameter must be a power of 2.
If the second parameter is 0, it both will return 0.

Use 1 as the parameter to fix the bug and the iomem as follows:
00200000-0effffff : System RAM
  04000000-0484009f : Kernel code
  048400a0-04ad7fff : Kernel data
  04b40000-05c4c6bf : Kernel bss
  08000000-0bffffff : Crash kernel
1a000000-1bffffff : pci@1a000000
...

Signed-off-by: Jinyang He <hejinyang@loongson.cn>
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2020-07-26 13:55:51 +02:00
..
syscalls vfs: add faccessat2 syscall 2020-05-14 16:44:25 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
asm-offsets.c
binfmt_elfn32.c
binfmt_elfo32.c
bmips_5xxx_init.S
bmips_vec.S
branch.c MIPS: Use fallthrough for arch/mips 2020-05-07 11:55:47 +02:00
cacheinfo.c
cevt-bcm1480.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
cevt-ds1287.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
cevt-gt641xx.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
cevt-r4k.c mips: cevt-r4k: Update the r4k-clockevent frequency in sync with CPU 2020-05-22 09:14:32 +02:00
cevt-sb1250.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
cevt-txx9.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
cmpxchg.c
cps-vec-ns16550.S mips: Add CPS_NS16550_WIDTH config 2020-05-22 09:12:52 +02:00
cps-vec.S
cpu-probe.c MIPS: X2000: Add X2000 system type. 2020-07-24 11:13:57 +02:00
crash_dump.c
crash.c
csrc-bcm1480.c
csrc-ioasic.c
csrc-r4k.c mips: csrc-r4k: Mark R4K timer as unstable if CPU freq changes 2020-05-22 09:14:06 +02:00
csrc-sb1250.c
early_printk_8250.c
early_printk.c
elf.c
entry.S mips: Add MIPS Release 5 support 2020-05-22 09:09:01 +02:00
ftrace.c
genex.S MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe() 2020-05-27 13:11:49 +02:00
gpio_txx9.c
head.S MIPS: Clear XContext at boot time 2020-04-24 18:37:23 +02:00
i8253.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
idle.c MIPS: Use fallthrough for arch/mips 2020-05-07 11:55:47 +02:00
irq_txx9.c
irq-gt641xx.c
irq-msc01.c
irq-rm7000.c
irq.c
jump_label.c
kgdb.c
kprobes.c
linux32.c
machine_kexec.c
Makefile MIPS: Remove not used 8250-platform.c 2020-05-17 10:25:26 +02:00
mcount.S
mips_machine.c
mips-cm.c mips: cm: Add L2 ECC/parity errors reporting 2020-05-07 13:11:38 +02:00
mips-cpc.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
mips-mt-fpaff.c
mips-mt.c
mips-r2-to-r6-emul.c MIPS: Use fallthrough for arch/mips 2020-05-07 11:55:47 +02:00
module.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
octeon_switch.S
perf_event_mipsxx.c MIPS: perf: Remove unnecessary "fallthrough" pseudo keywords 2020-05-02 13:21:09 +02:00
perf_event.c
pm-cps.c
pm.c
probes-common.h
proc.c mips: Add MIPS Release 5 support 2020-05-22 09:09:01 +02:00
process.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
prom.c
ptrace.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
ptrace32.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
r4k_fpu.S mips: Add MIPS Release 5 support 2020-05-22 09:09:01 +02:00
r4k_switch.S
r4k-bugs64.c
r2300_fpu.S
r2300_switch.S
relocate_kernel.S
relocate.c
reset.c
rtlx-cmp.c
rtlx-mt.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
rtlx.c
scall32-o32.S
scall64-n32.S
scall64-n64.S
scall64-o32.S MIPS: asm: Rename some macros to avoid build errors 2020-05-07 13:20:05 +02:00
segment.c
setup.c MIPS: Fix unable to reserve memory for Crash kernel 2020-07-26 13:55:51 +02:00
signal_n32.c
signal_o32.c
signal-common.h
signal.c MIPS: Replace zero-length array with flexible-array 2020-05-08 12:01:02 +02:00
signal32.c
smp-bmips.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
smp-cmp.c
smp-cps.c
smp-mt.c
smp-up.c
smp.c MIPS updates for v5.7: 2020-03-31 08:51:45 -07:00
spinlock_test.c
spram.c mips: Add CONFIG/CONFIG6/Cause reg fields macro 2020-05-22 09:12:22 +02:00
stacktrace.c
sync-r4k.c MIPS: sync-r4k: do slave counter synchronization with disabled HW interrupts 2020-01-22 10:16:18 -08:00
syscall.c
sysrq.c MIPS: constify sysrq_key_op 2020-05-15 14:53:19 +02:00
time.c mips: Add udelay lpj numbers adjustment 2020-05-22 09:13:32 +02:00
topology.c MIPS: CPU#0 is not hotpluggable 2020-07-26 10:18:35 +02:00
traps.c mips: traps, add __init to parity_protection_init 2020-07-24 12:07:36 +02:00
unaligned.c MIPS: Fix build warning about "PTR_STR" redefinition 2020-05-30 10:58:30 +02:00
uprobes.c
vdso.c mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
vmlinux.lds.S MIPS: Truncate link address into 32bit for 32bit kernel 2020-05-07 10:31:01 +02:00
vpe-cmp.c
vpe-mt.c
vpe.c MIPS: VPE: Fix a double free and a memory leak in 'release_vpe()' 2020-02-15 12:44:03 -08:00
watch.c MIPS: Use fallthrough for arch/mips 2020-05-07 11:55:47 +02:00