[GIT PULL] percpu fixes for v4.14-rc3

From: Tejun Heo
Date: Tue Oct 03 2017 - 09:26:57 EST


Hello, Linus.

Rather important fixes this time.

* The new percpu area allocator had a subtle bug in how it iterates
the memory regions and could skip viable areas, which led to
allocation failures for module static percpu variables. Dennis
fixed the bug and another non-critical one in stat calculation.

* Mark noticed that the generic implementations of percpu local atomic
reads aren't properly protected against irqs and there's a (slim)
chance for split reads on some 32bit systems. Generic
implementations are updated to disable irq when read size is larger
than ulong size. This may have made some 32bit archs which can do
atomic local 64bit accesses generate sub-optimal code. We need to
find them out and implement arch-specific overrides.

Thanks.

The following changes since commit e365806ac289457263a133bd32df8df49897f612:

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs (2017-09-25 18:24:14 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git for-4.14-fixes

for you to fetch changes up to 1fa4df3e688902d033dfda796eb83ae6ad8d0488:

percpu: fix iteration to prevent skipping over block (2017-09-28 07:39:27 -0700)

----------------------------------------------------------------
Dennis Zhou (2):
percpu: fix starting offset for chunk statistics traversal
percpu: fix iteration to prevent skipping over block

Mark Rutland (1):
percpu: make this_cpu_generic_read() atomic w.r.t. interrupts

include/asm-generic/percpu.h | 24 ++++++++++++++++++++++--
mm/percpu-stats.c | 2 +-
mm/percpu.c | 4 ++++
3 files changed, 27 insertions(+), 3 deletions(-)

--
tejun