Dan Williams
eb7d78c9e7
devm_memremap_pages: fix vmem_altmap lifetime + alignment handling
...
to_vmem_altmap() needs to return valid results until
arch_remove_memory() completes. It also needs to be valid for any pfn
in a section regardless of whether that pfn maps to data. This escape
was a result of a bug in the unit test.
The signature of this bug is that free_pagetable() fails to retrieve a
vmem_altmap and goes off into the weeds:
BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<ffffffff811d2629>] get_pfnblock_flags_mask+0x49/0x60
[..]
Call Trace:
[<ffffffff811d3477>] free_hot_cold_page+0x97/0x1d0
[<ffffffff811d367a>] __free_pages+0x2a/0x40
[<ffffffff8191e669>] free_pagetable+0x8c/0xd4
[<ffffffff8191ef4e>] remove_pagetable+0x37a/0x808
[<ffffffff8191b210>] vmemmap_free+0x10/0x20
Fixes: 4b94ffdc4163 ("x86, mm: introduce vmem_altmap to augment vmemmap_populate()")
Cc: Andrew Morton <akpm@linux-foundation.org>
Reported-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2016-01-29 21:54:04 -08:00
..
2016-01-12 17:06:53 -05:00
2015-06-16 11:04:29 +01:00
2015-12-04 22:46:25 +01:00
2016-01-22 18:04:28 -05:00
2015-12-04 22:46:25 +01:00
2016-01-21 11:52:16 -08:00
2015-12-04 22:51:07 +01:00
2016-01-11 14:18:38 -08:00
2016-01-04 22:28:59 +01:00
2016-01-20 17:09:18 -08:00
2015-12-07 17:02:54 -08:00
2016-01-22 18:04:28 -05:00
2016-01-21 00:43:21 +01:00
2016-01-12 20:04:15 -08:00
2015-10-21 15:18:35 +01:00
2015-04-11 22:27:55 -04:00
2015-11-19 17:51:48 +01:00
2016-01-22 18:04:28 -05:00
2015-11-04 08:23:51 -05:00
2016-01-22 18:04:28 -05:00
2016-01-17 19:13:15 -08:00
2015-12-24 11:09:39 -05:00
2015-11-04 08:23:51 -05:00
2015-12-24 11:09:39 -05:00
2014-08-08 15:57:18 -07:00
2015-04-15 16:35:22 -07:00
2015-12-03 10:24:08 -05:00
2015-12-14 14:54:37 -05:00
2016-01-12 19:20:32 -08:00
2015-06-04 23:57:18 +02:00
2015-11-24 09:56:43 +01:00
2015-09-03 02:42:20 +02:00
2016-01-20 17:09:18 -08:00
2015-12-03 10:22:52 -05:00
2014-08-25 15:42:19 -07:00
2016-01-14 16:00:49 -08:00
2016-01-14 16:00:49 -08:00
2015-04-12 21:03:31 +02:00
2016-01-20 17:09:18 -08:00
2015-09-10 13:29:01 -07:00
2016-01-14 16:00:49 -08:00
2014-10-21 23:44:20 +02:00
2016-01-20 17:09:18 -08:00
2016-01-20 17:09:18 -08:00
2015-04-15 16:35:22 -07:00
2015-04-15 16:35:22 -07:00
2015-11-23 09:44:58 +01:00
2015-11-23 09:44:58 +01:00
2014-10-14 02:18:16 +02:00
2016-01-20 17:09:18 -08:00
2015-05-12 09:46:00 +02:00
2016-01-20 17:09:18 -08:00
2016-01-20 17:09:18 -08:00
2016-01-20 17:09:18 -08:00
2016-01-20 17:09:18 -08:00
2015-10-23 17:55:10 +09:00
2015-08-04 10:16:54 +02:00
2015-12-07 16:59:37 -08:00
2015-09-04 16:54:41 -07:00
2015-09-11 15:21:34 -07:00
2015-09-11 15:21:34 -07:00
2016-01-29 21:54:04 -08:00
2015-10-21 15:18:36 +01:00
2016-01-14 16:38:02 -08:00
2015-09-01 08:40:25 -07:00
2014-12-04 14:34:54 -05:00
2015-02-13 21:21:38 -08:00
2016-01-16 11:17:25 -08:00
2015-11-09 15:53:39 -08:00
2014-12-16 15:53:03 -08:00
2016-01-14 16:00:49 -08:00
2015-09-08 15:35:28 -07:00
2016-01-20 17:09:18 -08:00
2015-01-17 10:02:23 +13:00
2015-09-10 13:29:01 -07:00
2016-01-22 18:04:28 -05:00
2016-01-09 06:30:49 -08:00
2015-10-27 19:55:13 -07:00
2015-11-20 16:17:32 -08:00
2015-11-06 17:50:42 -08:00
2015-10-20 10:23:55 +02:00
2015-02-09 15:24:03 -08:00
2014-12-13 12:42:48 -08:00
2016-01-16 11:17:24 -08:00
2015-12-01 14:00:53 -05:00
2016-01-20 17:09:18 -08:00
2014-12-10 17:41:10 -08:00
2016-01-22 10:24:03 -08:00
2015-09-05 13:46:58 -07:00
2015-01-18 01:03:45 -05:00
2014-08-08 15:57:18 -07:00
2015-10-06 11:25:01 -07:00
2015-10-25 21:33:54 -04:00
2014-07-23 10:18:05 -07:00
2014-12-05 17:19:27 -06:00
2016-01-04 10:27:55 -05:00
2014-08-26 13:45:45 -04:00
2014-12-17 12:31:40 -08:00
2014-12-04 14:34:47 -05:00
2016-01-11 18:53:13 -08:00
2016-01-07 11:04:34 -05:00