[PATCH] Module rewrite 20/20: try_inc_mod_count() -> try_module_get()

From: Rusty Russell (rusty@rustcorp.com.au)
Date: Tue Sep 24 2002 - 22:19:58 EST


Name: try_inc_mod_count Renaming
Author: Rusty Russell
Status: Trivial
Depends: Module/module-bound-removal.patch.gz

D: This s/try_inc_mod_count/try_get_module/ everywhere, since this is
D: a better name for what is now the primary module ref operation. It
D: also cleans up those callers to use "module_put(owner)" instead of the
D: more clumsy "if (owner) __MOD_DEC_USE_COUNT(owner)".

diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/Documentation/filesystems/driverfs.txt .10026-2.5.38-try_inc_mod_count-removal/Documentation/filesystems/driverfs.txt
--- .10026-2.5.38-try_inc_mod_count-removal.pre/Documentation/filesystems/driverfs.txt 2002-08-28 09:29:39.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/Documentation/filesystems/driverfs.txt 2002-09-25 10:23:59.000000000 +1000
@@ -320,7 +320,7 @@ open() callback, the reference count for
 incremented.
 
 For drivers, we can put a struct module * owner in struct driver_dir_entry
-and do try_inc_mod_count() when we open a file. However, this won't
+and do try_module_get() when we open a file. However, this won't
 work for devices, that aren't tied to a module. And, it is still not
 guaranteed to solve the race.
 
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/char/busmouse.c .10026-2.5.38-try_inc_mod_count-removal/drivers/char/busmouse.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/char/busmouse.c 2002-05-24 15:20:17.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/char/busmouse.c 2002-09-25 10:23:58.000000000 +1000
@@ -175,8 +175,7 @@ static int busmouse_release(struct inode
         if (--mse->active == 0) {
                 if (mse->ops->release)
                         ret = mse->ops->release(inode, file);
- if (mse->ops->owner)
- __MOD_DEC_USE_COUNT(mse->ops->owner);
+ module_put(mse->ops->owner);
                 mse->ready = 0;
         }
         unlock_kernel();
@@ -201,14 +200,14 @@ static int busmouse_open(struct inode *i
         if (!mse || !mse->ops) /* shouldn't happen, but... */
                 goto end;
 
- if (mse->ops->owner && !try_inc_mod_count(mse->ops->owner))
+ if (!try_module_get(mse->ops->owner))
                 goto end;
 
         ret = 0;
         if (mse->ops->open) {
                 ret = mse->ops->open(inode, file);
- if (ret && mse->ops->owner)
- __MOD_DEC_USE_COUNT(mse->ops->owner);
+ if (ret)
+ module_put(mse->ops->owner);
         }
 
         if (ret)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/ide/ide.c .10026-2.5.38-try_inc_mod_count-removal/drivers/ide/ide.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/ide/ide.c 2002-09-25 10:23:50.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/ide/ide.c 2002-09-25 10:23:58.000000000 +1000
@@ -2446,17 +2446,15 @@ int ata_attach(ide_drive_t *drive)
         spin_lock(&drivers_lock);
         list_for_each(p, &drivers) {
                 ide_driver_t *driver = list_entry(p, ide_driver_t, drivers);
- if (!try_inc_mod_count(driver->owner))
+ if (!try_module_get(driver->owner))
                         continue;
                 spin_unlock(&drivers_lock);
                 if (driver->attach(drive) == 0) {
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ module_put(driver->owner);
                         return 0;
                 }
                 spin_lock(&drivers_lock);
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ module_put(driver->owner);
         }
         spin_unlock(&drivers_lock);
         spin_lock(&drives_lock);
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/ieee1394/ieee1394_core.c .10026-2.5.38-try_inc_mod_count-removal/drivers/ieee1394/ieee1394_core.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/ieee1394/ieee1394_core.c 2002-09-18 16:04:38.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/ieee1394/ieee1394_core.c 2002-09-25 10:23:58.000000000 +1000
@@ -889,8 +889,7 @@ static int ieee1394_get_chardev(int bloc
         if(*file_ops == NULL)
                 goto out;
 
- /* don't need try_inc_mod_count if the driver is non-modular */
- if(*module && (try_inc_mod_count(*module) == 0))
+ if(!try_module_get(*module))
                 goto out;
 
         /* success! */
@@ -972,8 +971,7 @@ static int ieee1394_dispatch_open(struct
                    extra reference we gave to the task-specific
                    driver */
                 
- if(module)
- __MOD_DEC_USE_COUNT(module);
+ module_put(module);
         
                 /* point the file's f_ops back to ieee1394. The VFS will then
                    decrement ieee1394's reference count immediately after this
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/isdn/capi/kcapi.c .10026-2.5.38-try_inc_mod_count-removal/drivers/isdn/capi/kcapi.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/isdn/capi/kcapi.c 2002-05-29 16:36:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/isdn/capi/kcapi.c 2002-09-25 10:23:58.000000000 +1000
@@ -78,7 +78,7 @@ static inline struct capi_ctr *
 capi_ctr_get(struct capi_ctr *card)
 {
         if (card->owner) {
- if (try_inc_mod_count(card->owner)) {
+ if (try_module_get(card->owner)) {
                         DBG("MOD_COUNT INC");
                         return card;
                 } else
@@ -91,8 +91,7 @@ capi_ctr_get(struct capi_ctr *card)
 static inline void
 capi_ctr_put(struct capi_ctr *card)
 {
- if (card->owner)
- __MOD_DEC_USE_COUNT(card->owner);
+ module_put(card->owner);
         DBG("MOD_COUNT DEC");
 }
 
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/mtd/chips/chipreg.c .10026-2.5.38-try_inc_mod_count-removal/drivers/mtd/chips/chipreg.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/mtd/chips/chipreg.c 2002-02-05 18:49:33.000000000 +1100
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/mtd/chips/chipreg.c 2002-09-25 10:23:58.000000000 +1000
@@ -44,7 +44,7 @@ static struct mtd_chip_driver *get_mtd_c
                         break;
                 }
         }
- if (ret && !try_inc_mod_count(ret->module)) {
+ if (ret && !try_module_get(ret->module)) {
                 /* Eep. Failed. */
                 ret = NULL;
         }
@@ -71,15 +71,13 @@ struct mtd_info *do_map_probe(char *name
                 return NULL;
 
         ret = drv->probe(map);
-#ifdef CONFIG_MODULES
+
         /* We decrease the use count here. It may have been a
            probe-only module, which is no longer required from this
            point, having given us a handle on (and increased the use
            count of) the actual driver code.
         */
- if(drv->module)
- __MOD_DEC_USE_COUNT(drv->module);
-#endif
+ module_put(drv->module);
 
         if (ret)
                 return ret;
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/s390/block/dasd.c .10026-2.5.38-try_inc_mod_count-removal/drivers/s390/block/dasd.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/s390/block/dasd.c 2002-09-18 16:03:28.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/s390/block/dasd.c 2002-09-25 10:23:58.000000000 +1000
@@ -2133,7 +2133,7 @@ dasd_open(struct inode *inp, struct file
         spin_lock(&discipline_lock);
         if (atomic_inc_return(&device->open_count) == 1 &&
             device->discipline->owner != NULL) {
- if (!try_inc_mod_count(device->discipline->owner)) {
+ if (!try_module_get(device->discipline->owner)) {
                         /* Discipline is currently unloaded! */
                         atomic_dec(&device->open_count);
                         rc = -ENODEV;
@@ -2169,8 +2169,7 @@ dasd_release(struct inode *inp, struct f
         }
         if (atomic_dec_return(&device->open_count) == 0) {
                 invalidate_buffers(inp->i_rdev);
- if (device->discipline->owner)
- __MOD_DEC_USE_COUNT(device->discipline->owner);
+ module_put(device->discipline->owner);
         }
         dasd_put_device(devmap);
         return 0;
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/serial/core.c .10026-2.5.38-try_inc_mod_count-removal/drivers/serial/core.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/serial/core.c 2002-08-02 11:15:09.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/serial/core.c 2002-09-25 10:23:58.000000000 +1000
@@ -1228,8 +1228,7 @@ static void uart_close(struct tty_struct
         wake_up_interruptible(&info->open_wait);
 
  done:
- if (drv->owner)
- __MOD_DEC_USE_COUNT(drv->owner);
+ module_put(drv->owner);
 }
 
 static void uart_wait_until_sent(struct tty_struct *tty, int timeout)
@@ -1519,7 +1518,7 @@ static int uart_open(struct tty_struct *
          * is about to be unloaded). Therefore, it is safe to set
          * tty->driver_data to be NULL, so uart_close() doesn't bite us.
          */
- if (!try_inc_mod_count(drv->owner)) {
+ if (!try_module_get(drv->owner)) {
                 tty->driver_data = NULL;
                 goto fail;
         }
@@ -1598,8 +1597,7 @@ static int uart_open(struct tty_struct *
         return retval;
 
  out:
- if (drv->owner)
- __MOD_DEC_USE_COUNT(drv->owner);
+ module_put(drv->owner);
  fail:
         return retval;
 }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/usb/core/usb.c .10026-2.5.38-try_inc_mod_count-removal/drivers/usb/core/usb.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/drivers/usb/core/usb.c 2002-09-18 16:04:38.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/drivers/usb/core/usb.c 2002-09-25 10:23:58.000000000 +1000
@@ -75,18 +75,14 @@ int usb_device_probe(struct device *dev)
         struct usb_driver * driver = to_usb_driver(dev->driver);
         const struct usb_device_id *id;
         int error = -ENODEV;
- int m;
 
         dbg("%s", __FUNCTION__);
 
         if (!driver->probe)
                 return error;
 
- if (driver->owner) {
- m = try_inc_mod_count(driver->owner);
- if (m == 0)
- return error;
- }
+ if (!try_module_get(driver->owner))
+ return error;
 
         id = usb_match_id (intf, driver->id_table);
         if (id) {
@@ -98,8 +94,7 @@ int usb_device_probe(struct device *dev)
         if (!error)
                 intf->driver = driver;
 
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ module_put(driver->owner);
 
         return error;
 }
@@ -108,7 +103,6 @@ int usb_device_remove(struct device *dev
 {
         struct usb_interface *intf;
         struct usb_driver *driver;
- int m;
 
         intf = list_entry(dev,struct usb_interface,dev);
         driver = to_usb_driver(dev->driver);
@@ -119,12 +113,9 @@ int usb_device_remove(struct device *dev
                 return -ENODEV;
         }
 
- if (driver->owner) {
- m = try_inc_mod_count(driver->owner);
- if (m == 0) {
- err("Dieing driver still bound to device.\n");
- return -EIO;
- }
+ if (!try_module_get(driver->owner)) {
+ err("Dieing driver still bound to device.\n");
+ return -EIO;
         }
 
         /* if we sleep here on an umanaged driver
@@ -140,8 +131,7 @@ int usb_device_remove(struct device *dev
                 usb_driver_release_interface(driver, intf);
 
         up(&driver->serialize);
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ module_put(driver->owner);
 
         return 0;
 }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/fs/devfs/base.c .10026-2.5.38-try_inc_mod_count-removal/fs/devfs/base.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/fs/devfs/base.c 2002-09-25 10:23:50.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/fs/devfs/base.c 2002-09-25 10:23:57.000000000 +1000
@@ -2044,8 +2044,8 @@ void *devfs_get_ops (devfs_handle_t de)
     else if ( S_ISCHR (de->mode) || S_ISREG (de->mode) )
         owner = ( (struct file_operations *) de->u.fcb.ops )->owner;
     else owner = ( (struct block_device_operations *) de->u.fcb.ops )->owner;
- if ( (de->next == de) || !try_inc_mod_count (owner) )
- { /* Entry is already unhooked or module is unloading */
+ if ( (de->next == de) || !try_module_get (owner) )
+ { /* Entry is already unhooked or module is loading/unloading */
         read_unlock (&de->parent->u.dir.lock);
         return NULL;
     }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/fs/dquot.c .10026-2.5.38-try_inc_mod_count-removal/fs/dquot.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/fs/dquot.c 2002-09-21 13:55:15.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/fs/dquot.c 2002-09-25 10:23:57.000000000 +1000
@@ -100,7 +100,7 @@ static struct quota_format_type *find_qu
 
         lock_kernel();
         for (actqf = quota_formats; actqf && actqf->qf_fmt_id != id; actqf = actqf->qf_next);
- if (actqf && !try_inc_mod_count(actqf->qf_owner))
+ if (actqf && !try_module_get(actqf->qf_owner))
                 actqf = NULL;
         unlock_kernel();
         return actqf;
@@ -108,8 +108,7 @@ static struct quota_format_type *find_qu
 
 static void put_quota_format(struct quota_format_type *fmt)
 {
- if (fmt->qf_owner)
- __MOD_DEC_USE_COUNT(fmt->qf_owner);
+ module_put(fmt->qf_owner);
 }
 
 /*
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/fs/exec.c .10026-2.5.38-try_inc_mod_count-removal/fs/exec.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/fs/exec.c 2002-09-21 13:55:15.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/fs/exec.c 2002-09-25 10:23:57.000000000 +1000
@@ -97,8 +97,7 @@ int unregister_binfmt(struct linux_binfm
 
 static inline void put_binfmt(struct linux_binfmt * fmt)
 {
- if (fmt->module)
- __MOD_DEC_USE_COUNT(fmt->module);
+ module_put(fmt->module);
 }
 
 /*
@@ -138,7 +137,7 @@ asmlinkage long sys_uselib(const char *
                 for (fmt = formats ; fmt ; fmt = fmt->next) {
                         if (!fmt->load_shlib)
                                 continue;
- if (!try_inc_mod_count(fmt->module))
+ if (!try_module_get(fmt->module))
                                 continue;
                         read_unlock(&binfmt_lock);
                         error = fmt->load_shlib(file);
@@ -943,7 +942,7 @@ int search_binary_handler(struct linux_b
                         int (*fn)(struct linux_binprm *, struct pt_regs *) = fmt->load_binary;
                         if (!fn)
                                 continue;
- if (!try_inc_mod_count(fmt->module))
+ if (!try_module_get(fmt->module))
                                 continue;
                         read_unlock(&binfmt_lock);
                         retval = fn(bprm, regs);
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/fs/filesystems.c .10026-2.5.38-try_inc_mod_count-removal/fs/filesystems.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/fs/filesystems.c 2002-04-04 14:48:30.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/fs/filesystems.c 2002-09-25 10:23:57.000000000 +1000
@@ -20,7 +20,7 @@
  * We can access the fields of list element if:
  * 1) spinlock is held or
  * 2) we hold the reference to the module.
- * The latter can be guaranteed by call of try_inc_mod_count(); if it
+ * The latter can be guaranteed by call of try_module_get(); if it
  * returned 0 we must skip the element, otherwise we got the reference.
  * Once the reference is obtained we can drop the spinlock.
  */
@@ -145,7 +145,7 @@ static int fs_name(unsigned int index, c
 
         read_lock(&file_systems_lock);
         for (tmp = file_systems; tmp; tmp = tmp->next, index--)
- if (index <= 0 && try_inc_mod_count(tmp->owner))
+ if (index <= 0 && try_module_get(tmp->owner))
                                 break;
         read_unlock(&file_systems_lock);
         if (!tmp)
@@ -216,13 +216,13 @@ struct file_system_type *get_fs_type(con
 
         read_lock(&file_systems_lock);
         fs = *(find_filesystem(name));
- if (fs && !try_inc_mod_count(fs->owner))
+ if (fs && !try_module_get(fs->owner))
                 fs = NULL;
         read_unlock(&file_systems_lock);
         if (!fs && (request_module(name) == 0)) {
                 read_lock(&file_systems_lock);
                 fs = *(find_filesystem(name));
- if (fs && !try_inc_mod_count(fs->owner))
+ if (fs && !try_module_get(fs->owner))
                         fs = NULL;
                 read_unlock(&file_systems_lock);
         }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/fs/nls/nls_base.c .10026-2.5.38-try_inc_mod_count-removal/fs/nls/nls_base.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/fs/nls/nls_base.c 2002-09-01 12:23:05.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/fs/nls/nls_base.c 2002-09-25 10:23:57.000000000 +1000
@@ -207,7 +207,7 @@ static struct nls_table *find_nls(char *
         for (nls = tables; nls; nls = nls->next)
                 if (! strcmp(nls->charset, charset))
                         break;
- if (nls && !try_inc_mod_count(nls->owner))
+ if (nls && !try_module_get(nls->owner))
                 nls = NULL;
         spin_unlock(&nls_lock);
         return nls;
@@ -245,8 +245,7 @@ struct nls_table *load_nls(char *charset
 
 void unload_nls(struct nls_table *nls)
 {
- if (nls->owner)
- __MOD_DEC_USE_COUNT(nls->owner);
+ module_put(nls->owner);
 }
 
 wchar_t charset2uni[256] = {
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/fs.h .10026-2.5.38-try_inc_mod_count-removal/include/linux/fs.h
--- .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/fs.h 2002-09-21 13:55:18.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/include/linux/fs.h 2002-09-25 10:23:58.000000000 +1000
@@ -985,14 +985,12 @@ struct super_block *get_sb_pseudo(struct
 
 /* Alas, no aliases. Too much hassle with bringing module.h everywhere */
 #define fops_get(fops) \
- (((fops) && (fops)->owner) \
- ? ( try_inc_mod_count((fops)->owner) ? (fops) : NULL ) \
- : (fops))
+ (((fops) && try_module_get((fops)->owner)) ? (fops) : NULL)
 
-#define fops_put(fops) \
-do { \
- if ((fops) && (fops)->owner) \
- __MOD_DEC_USE_COUNT((fops)->owner); \
+#define fops_put(fops) \
+do { \
+ if (fops) \
+ module_put((fops)->owner); \
 } while(0)
 
 extern int register_filesystem(struct file_system_type *);
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/module.h .10026-2.5.38-try_inc_mod_count-removal/include/linux/module.h
--- .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/module.h 2002-09-25 10:23:53.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/include/linux/module.h 2002-09-25 10:23:58.000000000 +1000
@@ -357,7 +357,6 @@ struct obsolete_modparm __parm_##var __a
         do { (void)try_module_get(THIS_MODULE); __unsafe(THIS_MODULE); } while (0)
 #endif
 #define MOD_DEC_USE_COUNT module_put(THIS_MODULE)
-#define try_inc_mod_count(mod) try_module_get(mod)
 #define EXPORT_NO_SYMBOLS
 extern int module_dummy_usage;
 #define GET_USE_COUNT(module) (module_dummy_usage)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/mtd/mtd.h .10026-2.5.38-try_inc_mod_count-removal/include/linux/mtd/mtd.h
--- .10026-2.5.38-try_inc_mod_count-removal.pre/include/linux/mtd/mtd.h 2001-11-10 18:34:41.000000000 +1100
+++ .10026-2.5.38-try_inc_mod_count-removal/include/linux/mtd/mtd.h 2002-09-25 10:23:58.000000000 +1000
@@ -216,7 +216,7 @@ static inline struct mtd_info *get_mtd_d
         
         ret = __get_mtd_device(mtd, num);
 
- if (ret && ret->module && !try_inc_mod_count(ret->module))
+ if (ret && !try_module_get(ret->module))
                 return NULL;
 
         return ret;
@@ -224,8 +224,7 @@ static inline struct mtd_info *get_mtd_d
 
 static inline void put_mtd_device(struct mtd_info *mtd)
 {
- if (mtd->module)
- __MOD_DEC_USE_COUNT(mtd->module);
+ module_put(mtd->module);
 }
 
 
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/kernel/exec_domain.c .10026-2.5.38-try_inc_mod_count-removal/kernel/exec_domain.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/kernel/exec_domain.c 2002-09-25 10:23:47.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/kernel/exec_domain.c 2002-09-25 10:23:57.000000000 +1000
@@ -82,7 +82,7 @@ lookup_exec_domain(u_long personality)
         read_lock(&exec_domains_lock);
         for (ep = exec_domains; ep; ep = ep->next) {
                 if (pers >= ep->pers_low && pers <= ep->pers_high)
- if (try_inc_mod_count(ep->module))
+ if (try_module_get(ep->module))
                                 goto out;
         }
 
@@ -97,7 +97,7 @@ lookup_exec_domain(u_long personality)
 
         for (ep = exec_domains; ep; ep = ep->next) {
                 if (pers >= ep->pers_low && pers <= ep->pers_high)
- if (try_inc_mod_count(ep->module))
+ if (try_module_get(ep->module))
                                 goto out;
         }
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/net/core/dev.c .10026-2.5.38-try_inc_mod_count-removal/net/core/dev.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/net/core/dev.c 2002-09-25 10:23:50.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/net/core/dev.c 2002-09-25 10:23:58.000000000 +1000
@@ -695,14 +695,13 @@ int dev_open(struct net_device *dev)
         /*
          * Call device private open method
          */
- if (try_inc_mod_count(dev->owner)) {
+ if (try_module_get(dev->owner)) {
                 set_bit(__LINK_STATE_START, &dev->state);
                 if (dev->open) {
                         ret = dev->open(dev);
                         if (ret) {
                                 clear_bit(__LINK_STATE_START, &dev->state);
- if (dev->owner)
- __MOD_DEC_USE_COUNT(dev->owner);
+ module_put(dev->owner);
                         }
                 }
         } else {
@@ -834,8 +833,7 @@ int dev_close(struct net_device *dev)
         /*
          * Drop the module refcount
          */
- if (dev->owner)
- __MOD_DEC_USE_COUNT(dev->owner);
+ module_put(dev->owner);
 
         return 0;
 }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/control.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/control.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/control.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/control.c 2002-09-25 10:23:59.000000000 +1000
@@ -40,12 +40,6 @@ typedef struct _snd_kctl_ioctl {
 static rwlock_t snd_ioctl_rwlock = RW_LOCK_UNLOCKED;
 static LIST_HEAD(snd_control_ioctls);
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 static int snd_ctl_open(struct inode *inode, struct file *file)
 {
         int cardnum = SNDRV_MINOR_CARD(minor(inode->i_rdev));
@@ -62,8 +56,8 @@ static int snd_ctl_open(struct inode *in
                 err = -ENODEV;
                 goto __error1;
         }
- if (!try_inc_mod_count(card->module)) {
- err = -EFAULT;
+ if (!try_module_get(card->module)) {
+ err = -ENODEV;
                 goto __error1;
         }
         ctl = snd_magic_kcalloc(snd_ctl_file_t, 0, GFP_KERNEL);
@@ -83,7 +77,7 @@ static int snd_ctl_open(struct inode *in
         return 0;
 
       __error:
- dec_mod_count(card->module);
+ module_put(card->module);
       __error1:
 #ifdef LINUX_2_2
               MOD_DEC_USE_COUNT;
@@ -128,7 +122,7 @@ static int snd_ctl_release(struct inode
         write_unlock(&card->control_owner_lock);
         snd_ctl_empty_read_queue(ctl);
         snd_magic_kfree(ctl);
- dec_mod_count(card->module);
+ module_put(card->module);
 #ifdef LINUX_2_2
         MOD_DEC_USE_COUNT;
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/info.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/info.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/info.c 2002-08-02 11:15:11.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/info.c 2002-09-25 10:23:59.000000000 +1000
@@ -39,12 +39,6 @@
  *
  */
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 int snd_info_check_reserved_words(const char *str)
 {
         static char *reserved[] =
@@ -305,8 +299,8 @@ static int snd_info_entry_open(struct in
 #ifdef LINUX_2_2
         MOD_INC_USE_COUNT;
 #endif
- if (entry->module && !try_inc_mod_count(entry->module)) {
- err = -EFAULT;
+ if (!try_module_get(entry->module)) {
+ err = -ENODEV;
                 goto __error1;
         }
         mode = file->f_flags & O_ACCMODE;
@@ -410,7 +404,7 @@ static int snd_info_entry_open(struct in
         return 0;
 
       __error:
- dec_mod_count(entry->module);
+ module_put(entry->module);
       __error1:
 #ifdef LINUX_2_2
         MOD_DEC_USE_COUNT;
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/oss/mixer_oss.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/oss/mixer_oss.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/oss/mixer_oss.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/oss/mixer_oss.c 2002-09-25 10:23:59.000000000 +1000
@@ -34,12 +34,6 @@ MODULE_AUTHOR("Jaroslav Kysela <perex@su
 MODULE_DESCRIPTION("Mixer OSS emulation for ALSA.");
 MODULE_LICENSE("GPL");
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 static int snd_mixer_oss_open(struct inode *inode, struct file *file)
 {
         int cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev));
@@ -59,7 +53,7 @@ static int snd_mixer_oss_open(struct ino
 #ifdef LINUX_2_2
         MOD_INC_USE_COUNT;
 #endif
- if (!try_inc_mod_count(card->module)) {
+ if (!try_get_module(card->module)) {
                 kfree(fmixer);
 #ifdef LINUX_2_2
                 MOD_DEC_USE_COUNT;
@@ -75,7 +69,7 @@ static int snd_mixer_oss_release(struct
 
         if (file->private_data) {
                 fmixer = (snd_mixer_oss_file_t *) file->private_data;
- dec_mod_count(fmixer->card->module);
+ module_put(fmixer->card->module);
 #ifdef LINUX_2_2
                 MOD_DEC_USE_COUNT;
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/oss/pcm_oss.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/oss/pcm_oss.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/oss/pcm_oss.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/oss/pcm_oss.c 2002-09-25 10:23:59.000000000 +1000
@@ -71,12 +71,6 @@ static inline void snd_leave_user(mm_seg
         set_fs(fs);
 }
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 int snd_pcm_oss_plugin_clear(snd_pcm_substream_t *substream)
 {
         snd_pcm_runtime_t *runtime = substream->runtime;
@@ -1545,8 +1539,8 @@ static int snd_pcm_oss_open(struct inode
                 err = -ENODEV;
                 goto __error1;
         }
- if (!try_inc_mod_count(pcm->card->module)) {
- err = -EFAULT;
+ if (!try_module_get(pcm->card->module)) {
+ err = -ENODEV;
                 goto __error1;
         }
         if (snd_task_name(current, task_name, sizeof(task_name)) < 0) {
@@ -1604,7 +1598,7 @@ static int snd_pcm_oss_open(struct inode
         return err;
 
       __error:
- dec_mod_count(pcm->card->module);
+ module_put(pcm->card->module);
       __error1:
 #ifdef LINUX_2_2
         MOD_DEC_USE_COUNT;
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/pcm_native.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/pcm_native.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/pcm_native.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/pcm_native.c 2002-09-25 10:23:59.000000000 +1000
@@ -46,12 +46,6 @@ static inline void snd_leave_user(mm_seg
         set_fs(fs);
 }
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 int snd_pcm_info(snd_pcm_substream_t * substream, snd_pcm_info_t *info)
 {
         snd_pcm_runtime_t * runtime;
@@ -1755,8 +1749,8 @@ int snd_pcm_open(struct inode *inode, st
                 err = -ENODEV;
                 goto __error1;
         }
- if (!try_inc_mod_count(pcm->card->module)) {
- err = -EFAULT;
+ if (!try_module_get(pcm->card->module)) {
+ err = -ENODEV;
                 goto __error1;
         }
         init_waitqueue_entry(&wait, current);
@@ -1789,7 +1783,7 @@ int snd_pcm_open(struct inode *inode, st
         return err;
 
       __error:
- dec_mod_count(pcm->card->module);
+ module_put(pcm->card->module);
       __error1:
 #ifdef LINUX_2_2
               MOD_DEC_USE_COUNT;
@@ -1819,7 +1813,7 @@ int snd_pcm_release(struct inode *inode,
         snd_pcm_release_file(pcm_file);
         up(&pcm->open_mutex);
         wake_up(&pcm->open_wait);
- dec_mod_count(pcm->card->module);
+ module_put(pcm->card->module);
 #ifdef LINUX_2_2
         MOD_DEC_USE_COUNT;
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/rawmidi.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/rawmidi.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/rawmidi.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/rawmidi.c 2002-09-25 10:23:59.000000000 +1000
@@ -57,12 +57,6 @@ snd_rawmidi_t *snd_rawmidi_devices[SNDRV
 
 static DECLARE_MUTEX(register_mutex);
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 static inline unsigned short snd_rawmidi_file_flags(struct file *file)
 {
         switch (file->f_mode & (FMODE_READ | FMODE_WRITE)) {
@@ -194,7 +188,7 @@ int snd_rawmidi_kernel_open(int cardnum,
                 err = -ENODEV;
                 goto __error1;
         }
- if (!try_inc_mod_count(rmidi->card->module)) {
+ if (!try_module_get(rmidi->card->module)) {
                 err = -EFAULT;
                 goto __error1;
         }
@@ -344,7 +338,7 @@ int snd_rawmidi_kernel_open(int cardnum,
                 snd_rawmidi_done_buffer(output);
                 kfree(output);
         }
- dec_mod_count(rmidi->card->module);
+ module_put(rmidi->card->module);
         up(&rmidi->open_mutex);
       __error1:
 #ifdef LINUX_2_2
@@ -497,7 +491,7 @@ int snd_rawmidi_kernel_release(snd_rawmi
                 rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT].substream_opened--;
         }
         up(&rmidi->open_mutex);
- dec_mod_count(rmidi->card->module);
+ module_put(rmidi->card->module);
 #ifdef LINUX_2_2
         MOD_DEC_USE_COUNT;
 #endif
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/oss/seq_oss_synth.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/oss/seq_oss_synth.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/oss/seq_oss_synth.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/oss/seq_oss_synth.c 2002-09-25 10:23:59.000000000 +1000
@@ -84,12 +84,6 @@ static spinlock_t register_lock = SPIN_L
 static seq_oss_synth_t *get_synthdev(seq_oss_devinfo_t *dp, int dev);
 static void reset_channels(seq_oss_synthinfo_t *info);
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 /*
  * global initialization
  */
@@ -233,12 +227,12 @@ snd_seq_oss_synth_setup(seq_oss_devinfo_
                 else
                         info->arg.event_passing = SNDRV_SEQ_OSS_PASS_EVENTS;
                 info->opened = 0;
- if (!try_inc_mod_count(rec->oper.owner)) {
+ if (!try_module_get(rec->oper.owner)) {
                         snd_use_lock_free(&rec->use_lock);
                         continue;
                 }
                 if (rec->oper.open(&info->arg, rec->private_data) < 0) {
- dec_mod_count(rec->oper.owner);
+ module_put(rec->oper.owner);
                         snd_use_lock_free(&rec->use_lock);
                         continue;
                 }
@@ -315,7 +309,7 @@ snd_seq_oss_synth_cleanup(seq_oss_devinf
                         if (rec->opened) {
                                 debug_printk(("synth %d closed\n", i));
                                 rec->oper.close(&info->arg);
- dec_mod_count(rec->oper.owner);
+ module_put(rec->oper.owner);
                                 rec->opened--;
                         }
                         snd_use_lock_free(&rec->use_lock);
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/seq_ports.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/seq_ports.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/seq_ports.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/seq_ports.c 2002-09-25 10:23:59.000000000 +1000
@@ -56,12 +56,6 @@ much elements are in array.
 
 */
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 /* return pointer to port structure - port is locked if found */
 client_port_t *snd_seq_port_use_ptr(client_t *client, int num)
 {
@@ -408,13 +402,13 @@ static int subscribe_port(client_t *clie
 {
         int err = 0;
 
- if (!try_inc_mod_count(port->owner))
- return -EFAULT;
+ if (!try_module_get(port->owner))
+ return -ENODEV;
         grp->count++;
         if (grp->open && (port->callback_all || grp->count == 1)) {
                 err = grp->open(port->private_data, info);
                 if (err < 0) {
- dec_mod_count(port->owner);
+ module_put(port->owner);
                         grp->count--;
                 }
         }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/seq_virmidi.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/seq_virmidi.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/seq/seq_virmidi.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/seq/seq_virmidi.c 2002-09-25 10:23:59.000000000 +1000
@@ -53,12 +53,6 @@ MODULE_AUTHOR("Takashi Iwai <tiwai@suse.
 MODULE_DESCRIPTION("Virtual Raw MIDI client on Sequencer");
 MODULE_LICENSE("GPL");
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 /*
  * initialize an event record
  */
@@ -275,8 +269,8 @@ static int snd_virmidi_subscribe(void *p
         snd_virmidi_dev_t *rdev;
 
         rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
- if (!try_inc_mod_count(rdev->card->module))
- return -EFAULT;
+ if (!try_module_get(rdev->card->module))
+ return -ENODEV;
         rdev->flags |= SNDRV_VIRMIDI_SUBSCRIBE;
         return 0;
 }
@@ -290,7 +284,7 @@ static int snd_virmidi_unsubscribe(void
 
         rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
         rdev->flags &= ~SNDRV_VIRMIDI_SUBSCRIBE;
- dec_mod_count(rdev->card->module);
+ module_put(rdev->card->module);
         return 0;
 }
 
@@ -303,8 +297,8 @@ static int snd_virmidi_use(void *private
         snd_virmidi_dev_t *rdev;
 
         rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
- if (!try_inc_mod_count(rdev->card->module))
- return -EFAULT;
+ if (!try_module_get(rdev->card->module))
+ return -ENODEV;
         rdev->flags |= SNDRV_VIRMIDI_USE;
         return 0;
 }
@@ -318,7 +312,7 @@ static int snd_virmidi_unuse(void *priva
 
         rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
         rdev->flags &= ~SNDRV_VIRMIDI_USE;
- dec_mod_count(rdev->card->module);
+ module_put(rdev->card->module);
         return 0;
 }
 
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/timer.c .10026-2.5.38-try_inc_mod_count-removal/sound/core/timer.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/core/timer.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/core/timer.c 2002-09-25 10:23:59.000000000 +1000
@@ -74,12 +74,6 @@ static int snd_timer_dev_unregister(snd_
 
 static void snd_timer_reschedule(snd_timer_t * timer, unsigned long ticks_left);
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 /*
  * create a timer instance with the given owner string.
  * when timer is not NULL, increments the module counter
@@ -102,7 +96,7 @@ static snd_timer_instance_t *snd_timer_i
         timeri->in_use = (atomic_t)ATOMIC_INIT(0);
 
         timeri->timer = timer;
- if (timer && timer->card && !try_inc_mod_count(timer->card->module)) {
+ if (timer && timer->card && !try_module_get(timer->card->module)) {
                 kfree(timeri->owner);
                 kfree(timeri);
                 return NULL;
@@ -315,7 +309,7 @@ int snd_timer_close(snd_timer_instance_t
                 kfree(timeri->owner);
         kfree(timeri);
         if (timer && timer->card)
- dec_mod_count(timer->card->module);
+ module_put(timer->card->module);
         return 0;
 }
 
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/drivers/opl3/opl3_seq.c .10026-2.5.38-try_inc_mod_count-removal/sound/drivers/opl3/opl3_seq.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/drivers/opl3/opl3_seq.c 2002-06-21 09:41:57.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/drivers/opl3/opl3_seq.c 2002-09-25 10:23:59.000000000 +1000
@@ -35,23 +35,17 @@ int use_internal_drums = 0;
 MODULE_PARM(use_internal_drums, "i");
 MODULE_PARM_DESC(use_internal_drums, "Enable internal OPL2/3 drums.");
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 int snd_opl3_synth_use_inc(opl3_t * opl3)
 {
- if (!try_inc_mod_count(opl3->card->module))
- return -EFAULT;
+ if (!try_module_get(opl3->card->module))
+ return -ENODEV;
         return 0;
 
 }
 
 void snd_opl3_synth_use_dec(opl3_t * opl3)
 {
- dec_mod_count(opl3->card->module);
+ module_put(opl3->card->module);
 }
 
 int snd_opl3_synth_setup(opl3_t * opl3)
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/gus/gus_main.c .10026-2.5.38-try_inc_mod_count-removal/sound/isa/gus/gus_main.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/gus/gus_main.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/isa/gus/gus_main.c 2002-09-25 10:23:59.000000000 +1000
@@ -37,16 +37,12 @@ MODULE_LICENSE("GPL");
 
 static int snd_gus_init_dma_irq(snd_gus_card_t * gus, int latches);
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
+/* FIXME: This doesn't make sense. To find this symbol, they have a
+ reference, so why inc outselves here? --RR */
 int snd_gus_use_inc(snd_gus_card_t * gus)
 {
         MOD_INC_USE_COUNT;
- if (!try_inc_mod_count(gus->card->module)) {
+ if (!try_module_get(gus->card->module)) {
                 MOD_DEC_USE_COUNT;
                 return 0;
         }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/wavefront/wavefront_fx.c .10026-2.5.38-try_inc_mod_count-removal/sound/isa/wavefront/wavefront_fx.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/wavefront/wavefront_fx.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/isa/wavefront/wavefront_fx.c 2002-09-25 10:23:59.000000000 +1000
@@ -34,13 +34,6 @@
 #define FX_MSB_TRANSFER 0x02 /* transfer after DSP MSB byte written */
 #define FX_AUTO_INCR 0x04 /* auto-increment DSP address after transfer */
 
-static inline void
-dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 static int
 wavefront_fx_idle (snd_wavefront_t *dev)
     
@@ -148,12 +141,14 @@ snd_wavefront_fx_detect (snd_wavefront_t
         return 0;
 }
 
+/* FIXME: This doesn't make sense. To find this symbol, they have a
+ reference, so why inc outselves here? --RR */
 int
 snd_wavefront_fx_open (snd_hwdep_t *hw, struct file *file)
 
 {
         MOD_INC_USE_COUNT;
- if (!try_inc_mod_count(hw->card->module)) {
+ if (!try_module_get(hw->card->module)) {
                 MOD_DEC_USE_COUNT;
                 return -EFAULT;
         }
@@ -165,7 +160,7 @@ int
 snd_wavefront_fx_release (snd_hwdep_t *hw, struct file *file)
 
 {
- dec_mod_count(hw->card->module);
+ module_put(hw->card->module);
         MOD_DEC_USE_COUNT;
         return 0;
 }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/wavefront/wavefront_synth.c .10026-2.5.38-try_inc_mod_count-removal/sound/isa/wavefront/wavefront_synth.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/isa/wavefront/wavefront_synth.c 2002-05-24 15:20:36.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/isa/wavefront/wavefront_synth.c 2002-09-25 10:23:59.000000000 +1000
@@ -234,13 +234,6 @@ static wavefront_command wavefront_comma
         { 0x00 }
 };
 
-static inline void
-dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 static const char *
 wavefront_errorstr (int errnum)
 
@@ -1607,12 +1600,14 @@ wavefront_synth_control (snd_wavefront_c
         return 0;
 }
 
+/* FIXME: This doesn't make sense. To find this symbol, they have a
+ reference, so why inc outselves here? --RR */
 int
 snd_wavefront_synth_open (snd_hwdep_t *hw, struct file *file)
 
 {
         MOD_INC_USE_COUNT;
- if (!try_inc_mod_count(hw->card->module)) {
+ if (!try_module_get(hw->card->module)) {
                 MOD_DEC_USE_COUNT;
                 return -EFAULT;
         }
@@ -1624,7 +1619,7 @@ int
 snd_wavefront_synth_release (snd_hwdep_t *hw, struct file *file)
 
 {
- dec_mod_count(hw->card->module);
+ module_put(hw->card->module);
         MOD_DEC_USE_COUNT;
         return 0;
 }
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .10026-2.5.38-try_inc_mod_count-removal.pre/sound/synth/emux/emux_seq.c .10026-2.5.38-try_inc_mod_count-removal/sound/synth/emux/emux_seq.c
--- .10026-2.5.38-try_inc_mod_count-removal.pre/sound/synth/emux/emux_seq.c 2002-05-24 15:20:37.000000000 +1000
+++ .10026-2.5.38-try_inc_mod_count-removal/sound/synth/emux/emux_seq.c 2002-09-25 10:23:59.000000000 +1000
@@ -62,12 +62,6 @@ static snd_midi_op_t emux_ops = {
 /*
  */
 
-static inline void dec_mod_count(struct module *module)
-{
- if (module)
- __MOD_DEC_USE_COUNT(module);
-}
-
 /*
  * Initialise the EMUX Synth by creating a client and registering
  * a series of ports.
@@ -281,10 +275,10 @@ int
 snd_emux_inc_count(snd_emux_t *emu)
 {
         emu->used++;
- if (!try_inc_mod_count(emu->ops.owner))
+ if (!try_module_get(emu->ops.owner))
                 goto __error;
- if (!try_inc_mod_count(emu->card->module)) {
- dec_mod_count(emu->ops.owner);
+ if (!try_module_get(emu->card->module)) {
+ module_put(emu->ops.owner);
               __error:
                 emu->used--;
                 return 0;
@@ -299,11 +293,11 @@ snd_emux_inc_count(snd_emux_t *emu)
 void
 snd_emux_dec_count(snd_emux_t *emu)
 {
- dec_mod_count(emu->ops.owner);
+ module_put(emu->ops.owner);
         emu->used--;
         if (emu->used <= 0)
                 snd_emux_terminate_all(emu);
- dec_mod_count(emu->card->module);
+ module_put(emu->card->module);
 }
 
 

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Sep 30 2002 - 22:00:21 EST