This path adds static declarations to functions, and adds an __exit qualifier on dm_interface_exit(). diff -ur linux-2.6.6-rc2-udm1-original/drivers/md/dm-ioctl.c linux-2.6.6-rc2-udm1-patched/drivers/md/dm-ioctl.c --- linux-2.6.6-rc2-udm1-original/drivers/md/dm-ioctl.c 2004-04-27 16:20:28.000000000 -0700 +++ linux-2.6.6-rc2-udm1-patched/drivers/md/dm-ioctl.c 2004-04-27 16:19:35.000000000 -0700 @@ -46,7 +46,7 @@ static struct list_head _name_buckets[NUM_BUCKETS]; static struct list_head _uuid_buckets[NUM_BUCKETS]; -void dm_hash_remove_all(void); +static void dm_hash_remove_all(void); /* * Guards access to both hash tables. @@ -61,7 +61,7 @@ INIT_LIST_HEAD(buckets + i); } -int dm_hash_init(void) +static int dm_hash_init(void) { init_buckets(_name_buckets); init_buckets(_uuid_buckets); @@ -69,7 +69,7 @@ return 0; } -void dm_hash_exit(void) +static void dm_hash_exit(void) { dm_hash_remove_all(); devfs_remove(DM_DIR); @@ -195,7 +195,7 @@ * The kdev_t and uuid of a device can never change once it is * initially inserted. */ -int dm_hash_insert(const char *name, const char *uuid, struct mapped_device *md) +static int dm_hash_insert(const char *name, const char *uuid, struct mapped_device *md) { struct hash_cell *cell; @@ -234,7 +234,7 @@ return -EBUSY; } -void __hash_remove(struct hash_cell *hc) +static void __hash_remove(struct hash_cell *hc) { /* remove from the dev hash */ list_del(&hc->uuid_list); @@ -246,7 +246,7 @@ free_cell(hc); } -void dm_hash_remove_all(void) +static void dm_hash_remove_all(void) { int i; struct hash_cell *hc; @@ -262,7 +262,7 @@ up_write(&_hash_lock); } -int dm_hash_rename(const char *old, const char *new) +static int dm_hash_rename(const char *old, const char *new) { char *new_name, *old_name; struct hash_cell *hc; @@ -1338,7 +1338,7 @@ return 0; } -void dm_interface_exit(void) +void __exit dm_interface_exit(void) { if (misc_deregister(&_dm_misc) < 0) DMERR("misc_deregister failed for control device");