David Hildenbrand
79881fed60
mm: add early FAULT_FLAG_WRITE consistency checks
...
Let's catch abuse of FAULT_FLAG_WRITE early, such that we don't have to
care in all other handlers and might get "surprises" if we forget to do
so.
Write faults without VM_MAYWRITE don't make any sense, and our
maybe_mkwrite() logic could have hidden such abuse for now.
Write faults without VM_WRITE on something that is not a COW mapping is
similarly broken, and e.g., do_wp_page() could end up placing an
anonymous page into a shared mapping, which would be bad.
This is a preparation for reliable R/O long-term pinning of pages in
private mappings, whereby we want to make sure that we will never break
COW in a read-only private mapping.
Link: https://lkml.kernel.org/r/20221116102659.70287-6-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com >
Reviewed-by: Vlastimil Babka <vbabka@suse.cz >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2022-11-30 15:58:57 -08:00
..
2022-11-30 15:58:45 -08:00
2022-11-08 17:37:17 -08:00
2022-11-30 15:58:53 -08:00
2022-11-08 15:57:24 -08:00
2022-09-11 20:26:02 -07:00
2022-08-02 12:34:03 -04:00
2022-08-28 14:02:45 -07:00
2022-09-11 20:25:50 -07:00
2021-05-05 11:27:24 -07:00
2022-05-13 15:11:26 -07:00
2022-03-22 15:57:09 -07:00
2022-11-30 14:49:41 -08:00
2022-11-30 15:58:49 -08:00
2022-11-30 15:58:46 -08:00
2022-01-15 16:30:28 +02:00
2022-03-22 15:57:11 -07:00
2022-04-26 13:36:25 -07:00
2022-11-22 18:50:44 -08:00
2022-11-08 17:37:12 -08:00
2022-11-30 15:58:46 -08:00
2022-09-26 12:14:34 -07:00
2022-11-08 17:37:15 -08:00
2022-11-08 17:37:15 -08:00
2022-11-30 15:58:56 -08:00
2022-10-12 18:51:51 -07:00
2022-09-26 19:46:05 -07:00
2022-11-30 15:58:57 -08:00
2022-11-30 15:58:43 -08:00
2022-11-30 15:58:47 -08:00
2022-08-08 18:06:43 -07:00
2022-11-30 15:58:57 -08:00
2022-10-03 14:03:05 -07:00
2022-09-26 19:46:16 -07:00
2022-11-08 17:37:22 -08:00
2021-04-30 11:20:38 -07:00
2021-04-30 11:20:39 -07:00
2022-06-27 12:22:31 +01:00
2022-11-30 15:58:56 -08:00
2022-05-27 11:40:49 -07:00
2022-11-30 15:58:46 -08:00
2022-11-30 15:58:54 -08:00
2022-11-30 15:58:49 -08:00
2022-06-16 19:48:31 -07:00
2022-03-23 18:03:08 -07:00
2022-11-30 15:58:55 -08:00
2022-10-03 14:03:36 -07:00
2022-01-15 16:30:27 +02:00
2022-10-03 14:03:04 -07:00
2022-11-30 15:58:41 -08:00
2022-03-05 11:08:32 -08:00
2022-10-03 14:03:04 -07:00
2022-11-30 15:58:46 -08:00
2022-11-30 15:58:54 -08:00
2022-11-30 15:58:57 -08:00
2022-10-20 21:27:21 -07:00
2022-11-30 15:58:41 -08:00
2022-11-08 15:57:23 -08:00
2022-11-22 18:50:43 -08:00
2022-11-30 15:58:54 -08:00
2022-11-08 17:37:18 -08:00
2022-09-26 19:46:27 -07:00
2022-11-08 17:37:17 -08:00
2022-10-03 14:02:43 -07:00
2021-07-23 17:43:28 -07:00
2022-11-30 14:58:42 -08:00
2022-11-30 15:58:50 -08:00
2022-04-21 20:01:10 -07:00
2022-09-26 19:46:09 -07:00
2022-11-30 15:58:49 -08:00
2022-09-26 19:46:28 -07:00
2022-09-26 19:46:25 -07:00
2022-09-26 19:46:26 -07:00
2022-09-26 19:46:29 -07:00
2022-11-30 15:58:48 -08:00
2022-09-11 20:26:01 -07:00
2022-11-30 14:58:42 -08:00
2022-05-19 14:08:54 -07:00
2022-10-03 14:02:52 -07:00
2022-10-28 13:37:22 -07:00
2022-10-03 14:03:03 -07:00
2021-04-30 11:20:36 -07:00
2021-06-29 10:53:47 -07:00
2021-06-29 10:53:47 -07:00
2022-11-30 15:58:45 -08:00
2022-09-26 19:46:05 -07:00
2022-09-26 12:28:07 +02:00
2022-10-10 17:53:04 -07:00
2022-05-13 07:20:18 -07:00
2021-07-04 18:30:17 +00:00
2022-03-08 09:30:46 -05:00
2021-07-04 18:30:17 +00:00
2022-07-17 17:14:47 -07:00
2021-05-07 00:26:35 -07:00
2022-05-13 07:20:05 -07:00
2021-05-05 11:27:27 -07:00
2022-09-03 10:13:13 -07:00
2022-09-20 08:24:38 -06:00
2022-11-30 15:58:48 -08:00
2022-10-03 14:03:05 -07:00
2022-10-03 14:03:36 -07:00
2022-11-30 15:58:55 -08:00
2022-07-29 18:07:13 -07:00
2022-10-03 14:03:07 -07:00
2021-05-22 15:09:07 -10:00
2022-10-10 17:53:04 -07:00
2022-10-16 15:27:07 -07:00
2022-10-10 17:53:04 -07:00
2022-09-29 11:30:55 +02:00
2022-11-08 17:37:16 -08:00
2022-08-08 18:06:42 -07:00
2022-11-08 17:37:22 -08:00
2022-10-03 14:03:36 -07:00
2022-10-03 14:02:46 -07:00
2022-11-30 15:58:50 -08:00
2022-11-30 15:58:50 -08:00
2022-11-08 17:37:18 -08:00
2022-11-30 15:58:46 -08:00
2022-11-08 17:37:12 -08:00
2022-11-30 15:58:45 -08:00
2022-11-08 15:57:23 -08:00
2022-11-30 15:58:46 -08:00
2022-11-08 17:37:17 -08:00
2021-11-06 13:30:40 -07:00
2022-11-30 15:58:55 -08:00
2022-11-30 15:58:41 -08:00
2022-11-08 17:37:11 -08:00
2022-08-02 12:34:03 -04:00
2021-07-01 11:06:03 -07:00
2022-01-15 16:30:31 +02:00
2022-11-30 15:58:52 -08:00
2022-09-11 20:25:50 -07:00