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-28 02:11:41 +00:00
2020-04-30 22:08:40 +00:00
2020-09-09 18:07:13 +00:00
2020-04-30 22:08:40 +00:00
2019-09-02 01:55:55 +00:00
2020-03-19 06:33:06 +00:00
2020-04-30 22:08:40 +00:00
2020-04-30 22:08:40 +00:00
2020-07-19 23:56:19 +00:00
2019-12-11 17:37:53 +00:00