Commit f957db4fcdd8f03e186aa8f041f4049e76ab741c
Committed by
Linus Torvalds
1 parent
7553e8f2d5
Exists in
master
and in
20 other branches
mm, hotplug: protect zonelist building with zonelists_mutex
Commit 959ecc48fc75 ("mm/memory_hotplug.c: fix building of node hotplug zonelist") does not protect the build_all_zonelists() call with zonelists_mutex as needed. This can lead to races in constructing zonelist ordering if a concurrent build is underway. Protecting this with lock_memory_hotplug() is insufficient since zonelists can be rebuild though sysfs as well. Signed-off-by: David Rientjes <rientjes@google.com> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 2 additions and 0 deletions Side-by-side Diff
mm/memory_hotplug.c
... | ... | @@ -498,7 +498,9 @@ |
498 | 498 | * The node we allocated has no zone fallback lists. For avoiding |
499 | 499 | * to access not-initialized zonelist, build here. |
500 | 500 | */ |
501 | + mutex_lock(&zonelists_mutex); | |
501 | 502 | build_all_zonelists(NULL); |
503 | + mutex_unlock(&zonelists_mutex); | |
502 | 504 | |
503 | 505 | return pgdat; |
504 | 506 | } |