Merge branch 'akpm' (patches from Andrew)
Merge misc updates from Andrew Morton: - large KASAN update to use arm's "software tag-based mode" - a few misc things - sh updates - ocfs2 updates - just about all of MM * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (167 commits) kernel/fork.c: mark 'stack_vm_area' with __maybe_unused memcg, oom: notify on oom killer invocation from the charge path mm, swap: fix swapoff with KSM pages include/linux/gfp.h: fix typo mm/hmm: fix memremap.h, move dev_page_fault_t callback to hmm hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization memory_hotplug: add missing newlines to debugging output mm: remove __hugepage_set_anon_rmap() include/linux/vmstat.h: remove unused page state adjustment macro mm/page_alloc.c: allow error injection mm: migrate: drop unused argument of migrate_page_move_mapping() blkdev: avoid migration stalls for blkdev pages mm: migrate: provide buffer_migrate_page_norefs() mm: migrate: move migrate_page_lock_buffers() mm: migrate: lock buffers before migrate_page_move_mapping() mm: migration: factor out code to compute expected number of page references mm, page_alloc: enable pcpu_drain with zone capability kmemleak: add config to select auto scan mm/page_alloc.c: don't call kasan_free_pages() at deferred mem init ...
Этот коммит содержится в:
@@ -201,23 +201,18 @@ static void scif_mmu_notifier_release(struct mmu_notifier *mn,
|
||||
}
|
||||
|
||||
static int scif_mmu_notifier_invalidate_range_start(struct mmu_notifier *mn,
|
||||
struct mm_struct *mm,
|
||||
unsigned long start,
|
||||
unsigned long end,
|
||||
bool blockable)
|
||||
const struct mmu_notifier_range *range)
|
||||
{
|
||||
struct scif_mmu_notif *mmn;
|
||||
|
||||
mmn = container_of(mn, struct scif_mmu_notif, ep_mmu_notifier);
|
||||
scif_rma_destroy_tcw(mmn, start, end - start);
|
||||
scif_rma_destroy_tcw(mmn, range->start, range->end - range->start);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void scif_mmu_notifier_invalidate_range_end(struct mmu_notifier *mn,
|
||||
struct mm_struct *mm,
|
||||
unsigned long start,
|
||||
unsigned long end)
|
||||
const struct mmu_notifier_range *range)
|
||||
{
|
||||
/*
|
||||
* Nothing to do here, everything needed was done in
|
||||
|
@@ -220,9 +220,7 @@ void gru_flush_all_tlb(struct gru_state *gru)
|
||||
* MMUOPS notifier callout functions
|
||||
*/
|
||||
static int gru_invalidate_range_start(struct mmu_notifier *mn,
|
||||
struct mm_struct *mm,
|
||||
unsigned long start, unsigned long end,
|
||||
bool blockable)
|
||||
const struct mmu_notifier_range *range)
|
||||
{
|
||||
struct gru_mm_struct *gms = container_of(mn, struct gru_mm_struct,
|
||||
ms_notifier);
|
||||
@@ -230,15 +228,14 @@ static int gru_invalidate_range_start(struct mmu_notifier *mn,
|
||||
STAT(mmu_invalidate_range);
|
||||
atomic_inc(&gms->ms_range_active);
|
||||
gru_dbg(grudev, "gms %p, start 0x%lx, end 0x%lx, act %d\n", gms,
|
||||
start, end, atomic_read(&gms->ms_range_active));
|
||||
gru_flush_tlb_range(gms, start, end - start);
|
||||
range->start, range->end, atomic_read(&gms->ms_range_active));
|
||||
gru_flush_tlb_range(gms, range->start, range->end - range->start);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void gru_invalidate_range_end(struct mmu_notifier *mn,
|
||||
struct mm_struct *mm, unsigned long start,
|
||||
unsigned long end)
|
||||
const struct mmu_notifier_range *range)
|
||||
{
|
||||
struct gru_mm_struct *gms = container_of(mn, struct gru_mm_struct,
|
||||
ms_notifier);
|
||||
@@ -247,7 +244,8 @@ static void gru_invalidate_range_end(struct mmu_notifier *mn,
|
||||
(void)atomic_dec_and_test(&gms->ms_range_active);
|
||||
|
||||
wake_up_all(&gms->ms_wait_queue);
|
||||
gru_dbg(grudev, "gms %p, start 0x%lx, end 0x%lx\n", gms, start, end);
|
||||
gru_dbg(grudev, "gms %p, start 0x%lx, end 0x%lx\n",
|
||||
gms, range->start, range->end);
|
||||
}
|
||||
|
||||
static void gru_release(struct mmu_notifier *mn, struct mm_struct *mm)
|
||||
|
@@ -570,7 +570,7 @@ static int vmballoon_send_get_target(struct vmballoon *b)
|
||||
unsigned long status;
|
||||
unsigned long limit;
|
||||
|
||||
limit = totalram_pages;
|
||||
limit = totalram_pages();
|
||||
|
||||
/* Ensure limit fits in 32-bits */
|
||||
if (limit != (u32)limit)
|
||||
|
Ссылка в новой задаче
Block a user