Files
android_kernel_xiaomi_sm8450/include/linux
Jianguo Wu 05cf96398e mm/ia64: fix a memory block size bug
I found following definition in include/linux/memory.h, in my IA64
platform, SECTION_SIZE_BITS is equal to 32, and MIN_MEMORY_BLOCK_SIZE
will be 0.

  #define MIN_MEMORY_BLOCK_SIZE     (1 << SECTION_SIZE_BITS)

Because MIN_MEMORY_BLOCK_SIZE is int type and length of 32bits,
so MIN_MEMORY_BLOCK_SIZE(1 << 32) will will equal to 0.
Actually when SECTION_SIZE_BITS >= 31, MIN_MEMORY_BLOCK_SIZE will be wrong.
This will cause wrong system memory infomation in sysfs.
I think it should be:

  #define MIN_MEMORY_BLOCK_SIZE     (1UL << SECTION_SIZE_BITS)

And "echo offline > memory0/state" will cause following call trace:

  kernel BUG at mm/memory_hotplug.c:885!
  sh[6455]: bugcheck! 0 [1]
  Pid: 6455, CPU 0, comm:                   sh
  psr : 0000101008526030 ifs : 8000000000000fa4 ip  : [<a0000001008c40f0>]    Not tainted (3.6.0-rc1)
  ip is at offline_pages+0x210/0xee0
  Call Trace:
    show_stack+0x80/0xa0
    show_regs+0x640/0x920
    die+0x190/0x2c0
    die_if_kernel+0x50/0x80
    ia64_bad_break+0x3d0/0x6e0
    ia64_native_leave_kernel+0x0/0x270
    offline_pages+0x210/0xee0
    alloc_pages_current+0x180/0x2a0

Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-09-17 15:00:37 -07:00
..
2012-08-02 13:51:46 -04:00
2012-07-30 18:16:01 -07:00
2012-07-30 18:15:23 -07:00
2012-04-23 14:23:32 +03:00
2012-05-15 17:30:30 -04:00
2012-06-06 15:20:22 -04:00
2012-07-30 17:25:21 -07:00
2012-06-29 11:38:17 -04:00
2012-03-20 21:29:46 -04:00
2012-08-07 10:10:57 +02:00
2012-07-31 18:42:43 -07:00
2012-06-06 19:12:30 -07:00
2012-07-30 17:25:11 -07:00
2012-02-28 16:02:54 +01:00
2012-03-23 16:58:38 -07:00
2012-04-14 15:24:26 -04:00
2012-05-02 14:15:27 -05:00
2012-05-25 12:46:23 +05:30
2012-05-10 12:00:56 +02:00
2012-06-27 15:42:24 -07:00
2012-05-29 23:28:33 -04:00
2012-07-22 23:57:58 +04:00
2012-08-04 01:24:44 +04:00
2012-04-27 10:46:45 +08:00
2012-07-05 15:04:10 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-07-02 15:11:12 +02:00
2012-03-27 22:45:26 -04:00
2012-03-20 12:47:48 +01:00
2012-05-07 10:58:57 -06:00
2012-03-20 12:47:47 +01:00
2012-08-06 13:33:21 -07:00
2012-07-19 10:38:32 -04:00
2012-04-09 11:16:55 -07:00
2012-03-08 10:50:35 -08:00
2012-05-31 17:49:32 -07:00
2012-07-31 08:16:42 -05:00
2012-05-31 17:49:30 -07:00
2012-03-08 10:50:35 -08:00
2012-05-11 10:56:56 +01:00
2012-08-22 10:24:41 -04:00
2012-05-29 23:28:41 -04:00
2012-03-15 21:41:34 +01:00
2012-05-09 13:58:06 -07:00
2012-09-17 15:00:37 -07:00
2012-05-22 15:20:28 -04:00
2012-07-29 21:24:13 +04:00
2012-07-09 16:42:24 -04:00
2012-05-26 14:17:30 -04:00
2012-07-30 19:06:52 -04:00
2012-07-30 19:06:52 -04:00
2012-07-10 10:32:06 -05:00
2012-05-21 14:31:48 +01:00
2012-07-31 18:42:43 -07:00
2012-06-20 14:39:36 -07:00
2012-08-30 13:14:48 -04:00
2012-05-14 14:15:32 -07:00
2012-07-12 07:54:46 -07:00
2012-05-12 15:53:42 -04:00
2012-06-15 12:56:57 +02:00
2012-03-20 21:29:38 -04:00
2012-07-19 10:38:32 -04:00
2012-03-28 18:30:03 +01:00
2012-07-30 17:25:20 -07:00
2012-06-01 12:58:52 -04:00
2012-07-02 13:40:06 +03:00
2012-06-05 17:32:30 +02:00
2012-07-16 22:31:34 -07:00
2012-06-13 21:16:42 +02:00
2012-05-14 18:53:19 -04:00
2012-07-23 00:58:46 -07:00
2012-07-22 23:57:55 +04:00
2012-06-18 13:42:03 +02:00
2012-07-31 08:16:24 -06:00
2012-05-22 12:16:16 +09:30
2012-07-31 18:42:50 -07:00
2012-03-28 18:30:03 +01:00
2012-08-04 12:15:37 +04:00