Subject: [PATCH 1/4] mm/hmm: make it explicitly non-modular

From: Paul Gortmaker <[email-masked]>
Date: Wed, 12 Apr 2017 20:30:11 -0400

The Kconfig currently controlling compilation of this code is:

mm/Kconfig:config HMM
mm/Kconfig:     bool

...meaning that it currently is not being built as a module by anyone.

Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.

Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.

We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.

Cc: Jérôme Glisse <[email-masked]>
Cc: Evgeny Baskakov <[email-masked]>
Cc: John Hubbard <[email-masked]>
Cc: Mark Hairgrove <[email-masked]>
Cc: Sherry Cheung <[email-masked]>
Cc: Subhash Gutti <[email-masked]>
Cc: Andrew Morton <[email-masked]>
Signed-off-by: Paul Gortmaker <[email-masked]>
---
 mm/hmm.c | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/mm/hmm.c b/mm/hmm.c
index f567a8b3b079..8200cf275fb9 100644
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -19,12 +19,12 @@
  */
 #include <linux/mm.h>
 #include <linux/hmm.h>
+#include <linux/init.h>
 #include <linux/rmap.h>
 #include <linux/swap.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
 #include <linux/mmzone.h>
-#include <linux/module.h>
 #include <linux/pagemap.h>
 #include <linux/swapops.h>
 #include <linux/hugetlb.h>
@@ -1192,14 +1192,5 @@ static int __init hmm_init(void)
 	}
 	return 0;
 }
-
-static void __exit hmm_exit(void)
-{
-	unregister_chrdev_region(hmm_device_devt, HMM_DEVICE_MAX);
-	class_destroy(hmm_device_class);
-}
-
-module_init(hmm_init);
-module_exit(hmm_exit);
-MODULE_LICENSE("GPL");
+device_initcall(hmm_init);
 #endif /* IS_ENABLED(CONFIG_HMM_DEVMEM) */
-- 
2.11.0