Kyle Evans 8b8cf4ece6 memfd_create: simplify HUGETLB support a little bit
This also fixes a minor issue that was missed in the initial review; the
layout of the MFD_HUGE_* flags is actually not 1:1 bit:flag -- it instead
borrowed the Linux convention of how this is laid out since it was
originally implemented on Linux, the top 6 bits represent the shift required
for the requested page size.

This allows us to remove the flag <-> pgsize mapping table and simplify the
logic just prior to validation of the requested page size.

While we're here, fix two small nits:

- HUGETLB memfd shouldn't exhibit the SHM_GROW_ON_WRITE behavior. We can
  only grow largepage shm by appropriately aligned (i.e. requested pagesize)
  sizes, so it can't work in the typical/sane fashion. Furthermore, Linux
  does the same, so let's be compatible.

- We don't allow MFD_HUGETLB without specifying a pagesize, so no need to
  check for that later.

Reviewed by:	kib (slightly earlier version)
2020-09-11 02:02:15 +00:00
..
2019-12-11 17:37:53 +00:00
2020-03-26 17:34:17 +00:00
2020-08-17 12:52:57 +00:00
2020-05-16 02:29:10 +00:00
2020-05-20 20:58:48 +00:00
2020-04-19 02:20:39 +00:00
2020-09-04 22:25:14 +00:00
2020-07-19 23:56:19 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-04-19 02:18:40 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-07-06 09:53:00 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-08-04 21:09:36 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-04-30 22:08:40 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-07-08 18:58:44 +00:00
2019-12-11 17:37:53 +00:00
2020-06-17 15:57:59 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-06-27 02:17:04 +00:00
2020-01-27 18:04:28 +00:00
2020-06-17 10:42:20 +00:00
2019-12-11 17:37:53 +00:00
2019-12-21 21:01:03 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-05-21 01:55:35 +00:00
2019-12-11 17:37:53 +00:00
2020-05-21 21:00:46 +00:00
2020-06-09 17:17:43 +00:00
2020-06-25 21:34:43 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2019-12-11 17:37:53 +00:00
2020-05-12 01:47:33 +00:00
2019-12-11 17:37:53 +00:00
2020-08-28 20:03:54 +00:00