|
@@ -517,16 +517,9 @@ static int DoC2k_is_alias(struct DiskOnChip *doc1, struct DiskOnChip *doc2)
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
-static const char im_name[] = "DoC2k_init";
|
|
|
-
|
|
|
-/* This routine is made available to other mtd code via
|
|
|
- * inter_module_register. It must only be accessed through
|
|
|
- * inter_module_get which will bump the use count of this module. The
|
|
|
- * addresses passed back in mtd are valid as long as the use count of
|
|
|
- * this module is non-zero, i.e. between inter_module_get and
|
|
|
- * inter_module_put. Keith Owens <kaos@ocs.com.au> 29 Oct 2000.
|
|
|
- */
|
|
|
-static void DoC2k_init(struct mtd_info *mtd)
|
|
|
+/* This routine is found from the docprobe code by symbol_get(),
|
|
|
+ * which will bump the use count of this module. */
|
|
|
+void DoC2k_init(struct mtd_info *mtd)
|
|
|
{
|
|
|
struct DiskOnChip *this = mtd->priv;
|
|
|
struct DiskOnChip *old = NULL;
|
|
@@ -623,6 +616,7 @@ static void DoC2k_init(struct mtd_info *mtd)
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(DoC2k_init);
|
|
|
|
|
|
static int doc_read(struct mtd_info *mtd, loff_t from, size_t len,
|
|
|
size_t * retlen, u_char * buf)
|
|
@@ -1277,12 +1271,6 @@ static int doc_erase(struct mtd_info *mtd, struct erase_info *instr)
|
|
|
*
|
|
|
****************************************************************************/
|
|
|
|
|
|
-static int __init init_doc2000(void)
|
|
|
-{
|
|
|
- inter_module_register(im_name, THIS_MODULE, &DoC2k_init);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static void __exit cleanup_doc2000(void)
|
|
|
{
|
|
|
struct mtd_info *mtd;
|
|
@@ -1298,11 +1286,9 @@ static void __exit cleanup_doc2000(void)
|
|
|
kfree(this->chips);
|
|
|
kfree(mtd);
|
|
|
}
|
|
|
- inter_module_unregister(im_name);
|
|
|
}
|
|
|
|
|
|
module_exit(cleanup_doc2000);
|
|
|
-module_init(init_doc2000);
|
|
|
|
|
|
MODULE_LICENSE("GPL");
|
|
|
MODULE_AUTHOR("David Woodhouse <dwmw2@infradead.org> et al.");
|