userfaultfd: provide pid in userfault msg - add feat union
No ABI change, but this will make it more explicit to software that ptid is only available if requested by passing UFFD_FEATURE_THREAD_ID to UFFDIO_API. The fact it's a union will also self document it shouldn't be taken for granted there's a tpid there. Link: http://lkml.kernel.org/r/20170802165145.22628-7-aarcange@redhat.com Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Cc: Alexey Perevalov <a.perevalov@samsung.com> Cc: Maxime Coquelin <maxime.coquelin@redhat.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Mike Rapoport <rppt@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9d4ac93482
commit
a36985d31a
|
@ -204,7 +204,7 @@ static inline struct uffd_msg userfault_msg(unsigned long address,
|
||||||
*/
|
*/
|
||||||
msg.arg.pagefault.flags |= UFFD_PAGEFAULT_FLAG_WP;
|
msg.arg.pagefault.flags |= UFFD_PAGEFAULT_FLAG_WP;
|
||||||
if (features & UFFD_FEATURE_THREAD_ID)
|
if (features & UFFD_FEATURE_THREAD_ID)
|
||||||
msg.arg.pagefault.ptid = task_pid_vnr(current);
|
msg.arg.pagefault.feat.ptid = task_pid_vnr(current);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,9 @@ struct uffd_msg {
|
||||||
struct {
|
struct {
|
||||||
__u64 flags;
|
__u64 flags;
|
||||||
__u64 address;
|
__u64 address;
|
||||||
__u32 ptid;
|
union {
|
||||||
|
__u32 ptid;
|
||||||
|
} feat;
|
||||||
} pagefault;
|
} pagefault;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user