mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
make __section_nr() more efficient
When CONFIG_SPARSEMEM_EXTREME is disabled, __section_nr can get the section number with a subtraction directly. Link: http://lkml.kernel.org/r/1468988310-11560-1-git-send-email-zhouchengming1@huawei.com Signed-off-by: Zhou Chengming <zhouchengming1@huawei.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Tejun Heo <tj@kernel.org> Cc: Hanjun Guo <guohanjun@huawei.com> Cc: Li Bin <huawei.libin@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
98c42d9452
commit
91fd8b95d6
12
mm/sparse.c
12
mm/sparse.c
@ -100,11 +100,7 @@ static inline int sparse_index_init(unsigned long section_nr, int nid)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Although written for the SPARSEMEM_EXTREME case, this happens
|
||||
* to also work for the flat array case because
|
||||
* NR_SECTION_ROOTS==NR_MEM_SECTIONS.
|
||||
*/
|
||||
#ifdef CONFIG_SPARSEMEM_EXTREME
|
||||
int __section_nr(struct mem_section* ms)
|
||||
{
|
||||
unsigned long root_nr;
|
||||
@ -123,6 +119,12 @@ int __section_nr(struct mem_section* ms)
|
||||
|
||||
return (root_nr * SECTIONS_PER_ROOT) + (ms - root);
|
||||
}
|
||||
#else
|
||||
int __section_nr(struct mem_section* ms)
|
||||
{
|
||||
return (int)(ms - mem_section[0]);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* During early boot, before section_mem_map is used for an actual
|
||||
|
Loading…
Reference in New Issue
Block a user