mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
BACKPORT: FROMLIST: mm: add FAULT_FLAG_SPECULATIVE flag
Define the new FAULT_FLAG_SPECULATIVE flag, which indicates when we are attempting speculative fault handling (without holding the mmap lock). Signed-off-by: Michel Lespinasse <michel@lespinasse.org> Conflicts: include/linux/mm_types.h 1. Merge conflict due to enum fault_flag being defined in mm.h instead of mm_types.h Link: https://lore.kernel.org/all/20220128131006.67712-9-michel@lespinasse.org/ Bug: 161210518 Signed-off-by: Suren Baghdasaryan <surenb@google.com> Change-Id: I48ab427dfa4d7bdbe9932588bec7ae99e9e80ae9
This commit is contained in:
committed by
Todd Kjos
parent
f4108b362f
commit
f2fa9aae2e
@@ -446,6 +446,7 @@ extern pgprot_t protection_map[16];
|
||||
* @FAULT_FLAG_REMOTE: The fault is not for current task/mm.
|
||||
* @FAULT_FLAG_INSTRUCTION: The fault was during an instruction fetch.
|
||||
* @FAULT_FLAG_INTERRUPTIBLE: The fault can be interrupted by non-fatal signals.
|
||||
* @FAULT_FLAG_SPECULATIVE: The fault is handled without holding the mmap lock.
|
||||
*
|
||||
* About @FAULT_FLAG_ALLOW_RETRY and @FAULT_FLAG_TRIED: we can specify
|
||||
* whether we would allow page faults to retry by specifying these two
|
||||
@@ -477,6 +478,7 @@ enum fault_flag {
|
||||
FAULT_FLAG_REMOTE = 1 << 7,
|
||||
FAULT_FLAG_INSTRUCTION = 1 << 8,
|
||||
FAULT_FLAG_INTERRUPTIBLE = 1 << 9,
|
||||
FAULT_FLAG_SPECULATIVE = 1 << 10,
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -516,7 +518,8 @@ static inline bool fault_flag_allow_retry_first(enum fault_flag flags)
|
||||
{ FAULT_FLAG_USER, "USER" }, \
|
||||
{ FAULT_FLAG_REMOTE, "REMOTE" }, \
|
||||
{ FAULT_FLAG_INSTRUCTION, "INSTRUCTION" }, \
|
||||
{ FAULT_FLAG_INTERRUPTIBLE, "INTERRUPTIBLE" }
|
||||
{ FAULT_FLAG_INTERRUPTIBLE, "INTERRUPTIBLE" }, \
|
||||
{ FAULT_FLAG_SPECULATIVE, "SPECULATIVE" }
|
||||
|
||||
/*
|
||||
* vm_fault is filled by the pagefault handler and passed to the vma's
|
||||
|
||||
Reference in New Issue
Block a user