diff options
Diffstat (limited to 'mm/compaction.c')
-rw-r--r-- | mm/compaction.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mm/compaction.c b/mm/compaction.c index c6178bbd3e04..0aa2757399ee 100644 --- a/mm/compaction.c +++ b/mm/compaction.c | |||
@@ -1966,6 +1966,13 @@ void wakeup_kcompactd(pg_data_t *pgdat, int order, int classzone_idx) | |||
1966 | if (pgdat->kcompactd_max_order < order) | 1966 | if (pgdat->kcompactd_max_order < order) |
1967 | pgdat->kcompactd_max_order = order; | 1967 | pgdat->kcompactd_max_order = order; |
1968 | 1968 | ||
1969 | /* | ||
1970 | * Pairs with implicit barrier in wait_event_freezable() | ||
1971 | * such that wakeups are not missed in the lockless | ||
1972 | * waitqueue_active() call. | ||
1973 | */ | ||
1974 | smp_acquire__after_ctrl_dep(); | ||
1975 | |||
1969 | if (pgdat->kcompactd_classzone_idx > classzone_idx) | 1976 | if (pgdat->kcompactd_classzone_idx > classzone_idx) |
1970 | pgdat->kcompactd_classzone_idx = classzone_idx; | 1977 | pgdat->kcompactd_classzone_idx = classzone_idx; |
1971 | 1978 | ||