Files
odroid-linux/include/linux
YASUAKI ISHIMATSU 1dd2bfc868 mm/memory_hotplug: change pfn_to_section_nr/section_nr_to_pfn macro to inline function
pfn_to_section_nr() and section_nr_to_pfn() are defined as macro.
pfn_to_section_nr() has no issue even if it is defined as macro.  But
section_nr_to_pfn() has overflow issue if sec is defined as int.

section_nr_to_pfn() just shifts sec by PFN_SECTION_SHIFT.  If sec is
defined as unsigned long, section_nr_to_pfn() returns pfn as 64 bit value.
But if sec is defined as int, section_nr_to_pfn() returns pfn as 32 bit
value.

__remove_section() calculates start_pfn using section_nr_to_pfn() and
scn_nr defined as int.  So if hot-removed memory address is over 16TB,
overflow issue occurs and section_nr_to_pfn() does not calculate correct
pfn.

To make callers use proper arg, the patch changes the macros to inline
functions.

Fixes: 815121d2b5 ("memory_hotplug: clear zone when removing the memory")
Link: http://lkml.kernel.org/r/e643a387-e573-6bbf-d418-c60c8ee3d15e@gmail.com
Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Xishi Qiu <qiuxishi@huawei.com>
Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-10-03 17:54:25 -07:00
..
2017-09-06 19:56:49 +02:00
2017-09-01 16:35:50 -05:00
2017-06-08 18:52:36 -07:00
2017-09-08 18:26:49 -07:00
2017-07-17 17:26:14 +02:00
2017-07-06 16:24:33 -07:00
2017-07-03 16:56:28 -06:00
2017-06-05 16:59:12 +02:00
2017-04-18 20:41:12 +02:00
2017-08-30 14:40:40 +02:00
2017-09-04 00:05:22 +02:00
2017-09-04 00:06:02 +02:00
2017-06-09 11:52:07 +02:00
2017-09-05 12:53:11 +02:00
2017-08-24 13:23:03 -07:00
2017-07-17 13:42:48 +02:00
2017-08-03 19:09:26 -07:00
2017-08-01 17:33:02 +02:00
2017-08-07 17:22:14 +02:00
2017-04-27 05:13:04 -04:00
2017-07-07 20:09:10 -04:00
2017-09-08 18:26:46 -07:00
2017-05-18 10:07:41 -04:00
2017-05-18 10:07:40 -04:00
2017-06-21 14:37:12 -04:00
2017-07-10 16:32:34 -07:00
2017-08-15 18:23:52 +02:00
2017-08-14 13:33:39 -07:00
2017-05-03 15:52:10 -07:00
2017-08-17 15:33:39 -04:00
2017-08-28 20:51:22 +02:00
2017-09-07 11:53:11 +02:00
2017-08-18 15:32:01 -07:00
2017-04-24 14:30:46 -04:00
2017-07-13 16:00:15 -04:00
2017-08-20 13:04:12 -04:00
2017-07-06 11:30:07 -04:00
2017-07-25 18:05:25 +02:00
2017-09-25 08:56:05 -06:00
2017-05-26 10:10:37 +02:00
2017-09-06 17:27:26 -07:00
2017-08-06 20:55:29 -07:00
2017-08-06 20:55:29 -07:00
2017-08-21 12:47:31 -07:00
2017-09-08 18:26:47 -07:00
2017-08-16 16:28:47 -07:00
2017-06-29 10:48:57 +01:00
2017-08-24 16:34:51 +02:00
2017-07-06 16:24:30 -07:00
2017-08-16 16:28:47 -07:00
2017-08-03 21:37:29 -07:00
2017-06-08 18:52:42 -07:00
2017-06-01 14:53:04 -04:00
2017-09-11 12:29:41 -04:00
2017-09-15 16:57:10 +02:00
2017-08-28 16:15:42 +02:00
2017-07-24 17:50:37 +02:00
2017-05-09 16:43:22 +03:00
2017-09-08 18:26:48 -07:00
2017-08-31 18:50:14 +02:00
2017-09-05 06:34:17 -07:00
2017-08-15 09:02:07 -07:00
2017-08-15 09:02:08 -07:00