ChangeSet 1.924.3.2, 2002/11/30 00:02:08-08:00, [EMAIL PROTECTED]

[PATCH] USB serial: cleaned up the rest of the __MOD_INC and __MOD_DEC calls to use 
the new module API


diff -Nru a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
--- a/drivers/usb/serial/usb-serial.c   Sun Dec  1 23:06:29 2002
+++ b/drivers/usb/serial/usb-serial.c   Sun Dec  1 23:06:29 2002
@@ -469,11 +469,10 @@
         
        /* lock this module before we call it,
           this may, which means we must bail out, safe because we are called with BKL 
held */
-       if (serial->type->owner)
-               if (!try_module_get(serial->type->owner)) {
-                       retval = -ENODEV;
-                       goto bailout;
-               }
+       if (!try_module_get(serial->type->owner)) {
+               retval = -ENODEV;
+               goto bailout;
+       }
 
        ++port->open_count;
        if (port->open_count == 1) {
@@ -485,8 +484,7 @@
                        retval = usb_serial_generic_open(port, filp);
                if (retval) {
                        port->open_count = 0;
-                       if (serial->type->owner)
-                               __MOD_DEC_USE_COUNT(serial->type->owner);
+                       module_put(serial->type->owner);
                }
        }
 bailout:
@@ -513,8 +511,7 @@
                port->open_count = 0;
        }
 
-       if (port->serial->type->owner)
-               __MOD_DEC_USE_COUNT(port->serial->type->owner);
+       module_put(port->serial->type->owner);
 }
 
 static void serial_close(struct tty_struct *tty, struct file * filp)
@@ -904,11 +901,13 @@
 
        /* if this device type has a probe function, call it */
        if (type->probe) {
-               if (type->owner)
-                       __MOD_INC_USE_COUNT(type->owner);
+               if (!try_module_get(type->owner)) {
+                       err ("module get failed, exiting");
+                       kfree (serial);
+                       return -EIO;
+               }
                retval = type->probe (serial);
-               if (type->owner)
-                       __MOD_DEC_USE_COUNT(type->owner);
+               module_put(type->owner);
 
                if (retval < 0) {
                        dbg ("sub driver rejected device");
@@ -1001,11 +1000,13 @@
        if (!num_ports) {
                /* if this device type has a calc_num_ports function, call it */
                if (type->calc_num_ports) {
-                       if (type->owner)
-                               __MOD_INC_USE_COUNT(type->owner);
+                       if (!try_module_get(type->owner)) {
+                               err ("module get failed, exiting");
+                               kfree (serial);
+                               return -EIO;
+                       }
                        num_ports = type->calc_num_ports (serial);
-                       if (type->owner)
-                               __MOD_DEC_USE_COUNT(type->owner);
+                       module_put(type->owner);
                }
                if (!num_ports)
                        num_ports = type->num_ports;
@@ -1115,11 +1116,12 @@
 
        /* if this device type has an attach function, call it */
        if (type->attach) {
-               if (type->owner)
-                       __MOD_INC_USE_COUNT(type->owner);
+               if (!try_module_get(type->owner)) {
+                       err ("module get failed, exiting");
+                       goto probe_error;
+               }
                retval = type->attach (serial);
-               if (type->owner)
-                       __MOD_DEC_USE_COUNT(type->owner);
+               module_put(type->owner);
                if (retval < 0)
                        goto probe_error;
                if (retval > 0) {


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to