Lines Matching refs:flags
350 static int kill_proc(struct to_kill *tk, unsigned long pfn, int flags) in kill_proc() argument
359 if ((flags & MF_ACTION_REQUIRED) && (t == current)) in kill_proc()
527 unsigned long pfn, int flags) in kill_procs() argument
546 else if (kill_proc(tk, pfn, flags) < 0) in kill_procs()
569 if (t->flags & PF_MCE_PROCESS) { in find_early_kill_thread()
570 if (t->flags & PF_MCE_EARLY) in find_early_kill_thread()
746 int flags; member
876 int flags) in kill_accessing_process() argument
897 kill_proc(&priv.tk, pfn, flags); in kill_accessing_process()
1392 static inline bool HWPoisonHandlable(struct page *page, unsigned long flags) in HWPoisonHandlable() argument
1398 if ((flags & MF_SOFT_OFFLINE) && page_has_movable_ops(page)) in HWPoisonHandlable()
1404 static int __get_hwpoison_page(struct page *page, unsigned long flags) in __get_hwpoison_page() argument
1426 if (!HWPoisonHandlable(&folio->page, flags)) in __get_hwpoison_page()
1442 static int get_any_page(struct page *p, unsigned long flags) in get_any_page() argument
1447 if (flags & MF_COUNT_INCREASED) in get_any_page()
1452 ret = __get_hwpoison_page(p, flags); in get_any_page()
1480 if (PageHuge(p) || HWPoisonHandlable(p, flags)) { in get_any_page()
1556 static int get_hwpoison_page(struct page *p, unsigned long flags) in get_hwpoison_page() argument
1561 if (flags & MF_UNPOISON) in get_hwpoison_page()
1564 ret = get_any_page(p, flags); in get_hwpoison_page()
1631 unsigned long pfn, int flags) in hwpoison_user_mappings() argument
1660 collect_procs(folio, p, &tokill, flags & MF_ACTION_REQUIRED); in hwpoison_user_mappings()
1662 unmap_success = !unmap_poisoned_folio(folio, pfn, flags & MF_MUST_KILL); in hwpoison_user_mappings()
1684 forcekill = folio_test_dirty(folio) || (flags & MF_MUST_KILL) || in hwpoison_user_mappings()
1686 kill_procs(&tokill, forcekill, pfn, flags); in hwpoison_user_mappings()
1702 if ((p->flags & ps->mask) == ps->res) in identify_page_state()
1705 page_flags |= (p->flags & (1UL << PG_dirty)); in identify_page_state()
1734 struct address_space *mapping, pgoff_t index, int flags) in unmap_and_kill() argument
1755 kill_procs(to_kill, flags & MF_MUST_KILL, pfn, flags); in unmap_and_kill()
1767 static int mf_generic_kill_procs(unsigned long long pfn, int flags, in mf_generic_kill_procs() argument
1816 flags |= MF_ACTION_REQUIRED | MF_MUST_KILL; in mf_generic_kill_procs()
1819 unmap_and_kill(&to_kill, pfn, folio->mapping, folio->index, flags); in mf_generic_kill_procs()
2021 int __get_huge_page_for_hwpoison(unsigned long pfn, int flags, in __get_huge_page_for_hwpoison() argument
2032 if (flags & MF_COUNT_INCREASED) { in __get_huge_page_for_hwpoison()
2043 if (!(flags & MF_NO_RETRY)) in __get_huge_page_for_hwpoison()
2074 static int try_memory_failure_hugetlb(unsigned long pfn, int flags, int *hugetlb) in try_memory_failure_hugetlb() argument
2084 res = get_huge_page_for_hwpoison(pfn, flags, &migratable_cleared); in try_memory_failure_hugetlb()
2090 if (flags & MF_ACTION_REQUIRED) { in try_memory_failure_hugetlb()
2092 res = kill_accessing_process(current, folio_pfn(folio), flags); in try_memory_failure_hugetlb()
2097 if (!(flags & MF_NO_RETRY)) { in try_memory_failure_hugetlb()
2098 flags |= MF_NO_RETRY; in try_memory_failure_hugetlb()
2132 page_flags = folio->flags; in try_memory_failure_hugetlb()
2134 if (!hwpoison_user_mappings(folio, p, pfn, flags)) { in try_memory_failure_hugetlb()
2143 static inline int try_memory_failure_hugetlb(unsigned long pfn, int flags, int *hugetlb) in try_memory_failure_hugetlb() argument
2155 static void put_ref_page(unsigned long pfn, int flags) in put_ref_page() argument
2157 if (!(flags & MF_COUNT_INCREASED)) in put_ref_page()
2163 static int memory_failure_dev_pagemap(unsigned long pfn, int flags, in memory_failure_dev_pagemap() argument
2177 rc = pgmap->ops->memory_failure(pgmap, pfn, 1, flags); in memory_failure_dev_pagemap()
2186 rc = mf_generic_kill_procs(pfn, flags, pgmap); in memory_failure_dev_pagemap()
2202 static void kill_procs_now(struct page *p, unsigned long pfn, int flags, in kill_procs_now() argument
2207 collect_procs(folio, p, &tokill, flags & MF_ACTION_REQUIRED); in kill_procs_now()
2208 kill_procs(&tokill, true, pfn, flags); in kill_procs_now()
2236 int memory_failure(unsigned long pfn, int flags) in memory_failure() argument
2251 if (!(flags & MF_SW_SIMULATED)) in memory_failure()
2256 res = arch_memory_failure(pfn, flags); in memory_failure()
2262 put_ref_page(pfn, flags); in memory_failure()
2264 res = memory_failure_dev_pagemap(pfn, flags, in memory_failure()
2275 res = try_memory_failure_hugetlb(pfn, flags, &hugetlb); in memory_failure()
2282 if (flags & MF_ACTION_REQUIRED) in memory_failure()
2283 res = kill_accessing_process(current, pfn, flags); in memory_failure()
2284 if (flags & MF_COUNT_INCREASED) in memory_failure()
2301 if (!(flags & MF_COUNT_INCREASED)) { in memory_failure()
2302 res = get_hwpoison_page(p, flags); in memory_failure()
2358 kill_procs_now(p, pfn, flags, folio); in memory_failure()
2393 page_flags = folio->flags; in memory_failure()
2413 if (!hwpoison_user_mappings(folio, p, pfn, flags)) { in memory_failure()
2444 int flags; member
2472 void memory_failure_queue(unsigned long pfn, int flags) in memory_failure_queue() argument
2479 .flags = flags, in memory_failure_queue()
2509 if (entry.flags & MF_SOFT_OFFLINE) in memory_failure_work_func()
2510 soft_offline_page(entry.pfn, entry.flags); in memory_failure_work_func()
2512 memory_failure(entry.pfn, entry.flags); in memory_failure_work_func()
2739 pfn, msg_page[huge], ret, &page->flags); in soft_offline_in_use_page()
2745 pfn, msg_page[huge], page_count(page), &page->flags); in soft_offline_in_use_page()
2776 int soft_offline_page(unsigned long pfn, int flags) in soft_offline_page() argument
2783 WARN_ON_ONCE(flags & MF_COUNT_INCREASED); in soft_offline_page()
2790 put_ref_page(pfn, flags); in soft_offline_page()
2796 put_ref_page(pfn, flags); in soft_offline_page()
2804 put_ref_page(pfn, flags); in soft_offline_page()
2811 ret = get_hwpoison_page(page, flags | MF_SOFT_OFFLINE); in soft_offline_page()
2828 flags &= ~MF_COUNT_INCREASED; in soft_offline_page()