From: Dave Hansen This one seems to be causing some compilation errors with SYSFS=n. >> /scratch/kathys/containers/kernel_trees/upstream/mm/hugetlb.c: In >> function 'hugetlb_exit': >> /scratch/kathys/containers/kernel_trees/upstream/mm/hugetlb.c:1234: >> error: 'hstate_kobjs' undeclared (first use in this function) >> /scratch/kathys/containers/kernel_trees/upstream/mm/hugetlb.c:1234: >> error: (Each undeclared identifier is reported only once >> /scratch/kathys/containers/kernel_trees/upstream/mm/hugetlb.c:1234: >> error: for each function it appears in.) >> /scratch/kathys/containers/kernel_trees/upstream/mm/hugetlb.c:1237: >> error: 'hugepages_kobj' undeclared (first use in this function) >> make[2]: *** [mm/hugetlb.o] Error 1 >> make[1]: *** [mm] Error 2 >> make: *** [sub-make] Error 2 Should we just move hugetlb_exit() inside the sysfs #ifdef with everything else? Cc: Nick Piggin Cc: Tony Breeds Signed-off-by: Andrew Morton --- mm/hugetlb.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff -puN mm/hugetlb.c~hugetlb-new-sysfs-interface-fix-2 mm/hugetlb.c --- a/mm/hugetlb.c~hugetlb-new-sysfs-interface-fix-2 +++ a/mm/hugetlb.c @@ -1093,6 +1093,19 @@ static void __init hugetlb_sysfs_init(vo h->name); } } + +static void __exit hugetlb_exit(void) +{ + struct hstate *h; + + for_each_hstate(h) { + kobject_put(hstate_kobjs[h - hstates]); + } + + kobject_put(hugepages_kobj); +} +module_exit(hugetlb_exit); + #else static void __init hugetlb_sysfs_init(void) { @@ -1119,18 +1132,6 @@ static int __init hugetlb_init(void) } module_init(hugetlb_init); -static void __exit hugetlb_exit(void) -{ - struct hstate *h; - - for_each_hstate(h) { - kobject_put(hstate_kobjs[h - hstates]); - } - - kobject_put(hugepages_kobj); -} -module_exit(hugetlb_exit); - /* Should be called on processing a hugepagesz=... option */ void __init hugetlb_add_hstate(unsigned order) { _