linux/arch/mips/kernel
Mike Rapoport 7e1c4e2792 memblock: stop using implicit alignment to SMP_CACHE_BYTES
When a memblock allocation APIs are called with align = 0, the alignment
is implicitly set to SMP_CACHE_BYTES.

Implicit alignment is done deep in the memblock allocator and it can
come as a surprise.  Not that such an alignment would be wrong even
when used incorrectly but it is better to be explicit for the sake of
clarity and the prinicple of the least surprise.

Replace all such uses of memblock APIs with the 'align' parameter
explicitly set to SMP_CACHE_BYTES and stop implicit alignment assignment
in the memblock internal allocation functions.

For the case when memblock APIs are used via helper functions, e.g.  like
iommu_arena_new_node() in Alpha, the helper functions were detected with
Coccinelle's help and then manually examined and updated where
appropriate.

The direct memblock APIs users were updated using the semantic patch below:

@@
expression size, min_addr, max_addr, nid;
@@
(
|
- memblock_alloc_try_nid_raw(size, 0, min_addr, max_addr, nid)
+ memblock_alloc_try_nid_raw(size, SMP_CACHE_BYTES, min_addr, max_addr,
nid)
|
- memblock_alloc_try_nid_nopanic(size, 0, min_addr, max_addr, nid)
+ memblock_alloc_try_nid_nopanic(size, SMP_CACHE_BYTES, min_addr, max_addr,
nid)
|
- memblock_alloc_try_nid(size, 0, min_addr, max_addr, nid)
+ memblock_alloc_try_nid(size, SMP_CACHE_BYTES, min_addr, max_addr, nid)
|
- memblock_alloc(size, 0)
+ memblock_alloc(size, SMP_CACHE_BYTES)
|
- memblock_alloc_raw(size, 0)
+ memblock_alloc_raw(size, SMP_CACHE_BYTES)
|
- memblock_alloc_from(size, 0, min_addr)
+ memblock_alloc_from(size, SMP_CACHE_BYTES, min_addr)
|
- memblock_alloc_nopanic(size, 0)
+ memblock_alloc_nopanic(size, SMP_CACHE_BYTES)
|
- memblock_alloc_low(size, 0)
+ memblock_alloc_low(size, SMP_CACHE_BYTES)
|
- memblock_alloc_low_nopanic(size, 0)
+ memblock_alloc_low_nopanic(size, SMP_CACHE_BYTES)
|
- memblock_alloc_from_nopanic(size, 0, min_addr)
+ memblock_alloc_from_nopanic(size, SMP_CACHE_BYTES, min_addr)
|
- memblock_alloc_node(size, 0, nid)
+ memblock_alloc_node(size, SMP_CACHE_BYTES, nid)
)

[mhocko@suse.com: changelog update]
[akpm@linux-foundation.org: coding-style fixes]
[rppt@linux.ibm.com: fix missed uses of implicit alignment]
  Link: http://lkml.kernel.org/r/20181016133656.GA10925@rapoport-lnx
Link: http://lkml.kernel.org/r/1538687224-17535-1-git-send-email-rppt@linux.vnet.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Suggested-by: Michal Hocko <mhocko@suse.com>
Acked-by: Paul Burton <paul.burton@mips.com>	[MIPS]
Acked-by: Michael Ellerman <mpe@ellerman.id.au>	[powerpc]
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Richard Weinberger <richard@nod.at>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-10-31 08:54:16 -07:00
..
.gitignore
8250-platform.c
asm-offsets.c Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables 2018-06-14 12:21:18 +09:00
binfmt_elfn32.c y2038: globally rename compat_time to old_time32 2018-08-27 14:48:48 +02:00
binfmt_elfo32.c y2038: globally rename compat_time to old_time32 2018-08-27 14:48:48 +02:00
bmips_5xxx_init.S
bmips_vec.S
branch.c
cacheinfo.c
cevt-bcm1480.c
cevt-ds1287.c
cevt-gt641xx.c
cevt-r4k.c
cevt-sb1250.c
cevt-txx9.c
cmpxchg.c
cps-vec-ns16550.S
cps-vec.S MIPS: CPS: Fix MIPS_ISA_LEVEL_RAW fallout 2018-02-05 11:53:06 +00:00
cpu-bugs64.c
cpu-probe.c MIPS: Loongson: Add Loongson-3A R3.1 basic support 2018-07-23 17:53:34 -07:00
crash.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
crash_dump.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
csrc-bcm1480.c
csrc-ioasic.c
csrc-r4k.c
csrc-sb1250.c
early_printk.c mips: unify prom_putchar() declarations 2018-07-17 09:40:17 -07:00
early_printk_8250.c mips: unify prom_putchar() declarations 2018-07-17 09:40:17 -07:00
elf.c
entry.S MIPS: Add syscall detection for restartable sequences 2018-06-19 21:13:56 -07:00
ftrace.c
genex.S MIPS: Fix ejtag handler on SMP 2018-06-24 09:27:27 -07:00
gpio_txx9.c
head.S MIPS/head: Store ELF appended dtb in a global variable too 2018-09-25 16:27:24 -07:00
i8253.c
idle.c MIPS: Annotate cpu_wait implementations with __cpuidle 2018-06-28 14:18:54 -07:00
irq-gt641xx.c
irq-msc01.c
irq-rm7000.c
irq.c
irq_txx9.c
jump_label.c
kgdb.c
kprobes.c bpf/error-inject/kprobes: Clear current_kprobe and enable preempt in kprobe 2018-06-21 12:33:19 +02:00
linux32.c MIPS: Delete unused code in linux32.c 2018-08-01 13:20:27 -07:00
machine_kexec.c MIPS: kdump: Mark cpu back online before rebooting 2018-09-28 10:09:03 -07:00
Makefile MIPS: Cleanup DSP ASE detection 2018-10-16 15:30:21 -07:00
mcount.S mips: ftrace: fix static function graph tracing 2018-06-19 15:00:12 -07:00
mips-cm.c
mips-cpc.c MIPS: CPC: Map registers using DT in mips_cpc_default_phys_base() 2018-02-08 14:02:01 +00:00
mips-mt-fpaff.c
mips-mt.c MIPS: MT: Remove obsolete cache flush repeat code 2018-09-26 14:06:21 -07:00
mips-r2-to-r6-emul.c
mips_machine.c
module.c
octeon_switch.S Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables 2018-06-14 12:21:18 +09:00
perf_event.c
perf_event_mipsxx.c MIPS: perf: Fix perf with MT counting other threads 2018-05-15 15:53:44 +01:00
pm-cps.c MIPS: pm-cps: Block system suspend when a JTAG probe is present 2018-03-09 13:53:26 +00:00
pm.c
probes-common.h
proc.c
process.c MIPS: VDSO: Always map near top of user memory 2018-09-28 12:09:00 -07:00
prom.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
ptrace.c MIPS: Add FP_MODE regset support 2018-07-19 13:58:44 -07:00
ptrace32.c MIPS: Correct the 64-bit DSP accumulator register size 2018-07-19 13:47:21 -07:00
r4k_fpu.S
r4k_switch.S Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables 2018-06-14 12:21:18 +09:00
r2300_fpu.S
r2300_switch.S Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables 2018-06-14 12:21:18 +09:00
relocate.c MIPS: Remove no-op/identity casts 2018-08-31 11:49:20 -07:00
relocate_kernel.S MIPS: kexec: fix typos 2018-06-24 09:26:01 -07:00
reset.c MIPS: Hang more efficiently on halt/powerdown/restart 2018-03-09 11:22:43 +00:00
rtlx-cmp.c
rtlx-mt.c
rtlx.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
scall32-o32.S MIPS: Wire up io_pgetevents syscall 2018-06-19 21:14:29 -07:00
scall64-64.S MIPS: Wire up io_pgetevents syscall 2018-06-19 21:14:29 -07:00
scall64-n32.S MIPS: Wire up io_pgetevents syscall 2018-06-19 21:14:29 -07:00
scall64-o32.S MIPS: Wire up io_pgetevents syscall 2018-06-19 21:14:29 -07:00
segment.c
setup.c memblock: stop using implicit alignment to SMP_CACHE_BYTES 2018-10-31 08:54:16 -07:00
signal-common.h
signal.c Here are the main MIPS changes for 4.19. 2018-08-13 19:24:32 -07:00
signal32.c compat: Move compat_timespec/ timeval to compat_time.h 2018-04-19 13:29:54 +02:00
signal_n32.c MIPS: Remove nabi_no_regargs 2018-08-01 13:20:15 -07:00
signal_o32.c MIPS: Remove nabi_no_regargs 2018-08-01 13:20:15 -07:00
smp-bmips.c MIPS: kexec: Make a framework for both jumping and halting on nonboot CPUs 2018-09-22 10:31:50 -07:00
smp-cmp.c
smp-cps.c MIPS: kexec: CPS systems to halt nonboot CPUs 2018-09-22 10:32:33 -07:00
smp-mt.c
smp-up.c
smp.c
spinlock_test.c
spram.c
stacktrace.c
sync-r4k.c
syscall.c mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff() 2018-04-02 20:16:11 +02:00
sysrq.c
time.c MIPS: Convert update_persistent_clock() to update_persistent_clock64() 2018-05-14 23:58:23 +01:00
topology.c
traps.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
unaligned.c MIPS: Add Kconfig variable for CPUs with unaligned load/store instructions 2018-09-26 13:38:18 -07:00
uprobes.c Uprobe: Additional argument arch_uprobe to uprobe_write_opcode() 2018-08-13 20:08:33 -04:00
vdso.c MIPS: VDSO: Always map near top of user memory 2018-09-28 12:09:00 -07:00
vmlinux.lds.S
vpe-cmp.c
vpe-mt.c
vpe.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
watch.c