ChangeSet 1.924.3.9, 2002/11/30 22:19:57-08:00, [EMAIL PROTECTED]
[PATCH] - cleanup for new module primitives
diff -Nru a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
--- a/drivers/usb/core/devio.c Sun Dec 1 23:05:56 2002
+++ b/drivers/usb/core/devio.c Sun Dec 1 23:05:56 2002
@@ -860,7 +860,7 @@
if (uurb.buffer_length > 16384)
return -EINVAL;
if (!access_ok((uurb.endpoint & USB_DIR_IN) ? VERIFY_WRITE :
VERIFY_READ, uurb.buffer, uurb.buffer_length))
- return -EFAULT;
+ return -EFAULT;
break;
default:
@@ -955,10 +955,10 @@
if (!(usb_pipeisoc(urb->pipe)))
return 0;
for (i = 0; i < urb->number_of_packets; i++) {
- if (put_user(urb->iso_frame_desc[i].actual_length,
+ if (put_user(urb->iso_frame_desc[i].actual_length,
&((struct usbdevfs_urb
*)as->userurb)->iso_frame_desc[i].actual_length))
return -EFAULT;
- if (put_user(urb->iso_frame_desc[i].status,
+ if (put_user(urb->iso_frame_desc[i].status,
&((struct usbdevfs_urb
*)as->userurb)->iso_frame_desc[i].status))
return -EFAULT;
}
@@ -1122,18 +1122,16 @@
unlock_kernel();
retval = -ENOSYS;
} else {
- if (driver->owner
- && !try_inc_mod_count (driver->owner)) {
+ if (!try_module_get (driver->owner)) {
unlock_kernel();
retval = -ENOSYS;
break;
}
unlock_kernel ();
retval = driver->ioctl (ifp, ctrl.ioctl_code, buf);
- if (driver->owner)
- __MOD_DEC_USE_COUNT (driver->owner);
+ put_module (driver->owner);
}
-
+
if (retval == -ENOIOCTLCMD)
retval = -ENOTTY;
}
@@ -1188,7 +1186,7 @@
case USBDEVFS_RESET:
ret = proc_resetdevice(ps);
break;
-
+
case USBDEVFS_CLEAR_HALT:
ret = proc_clearhalt(ps, (void *)arg);
if (ret >= 0)
diff -Nru a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
--- a/drivers/usb/core/usb.c Sun Dec 1 23:05:56 2002
+++ b/drivers/usb/core/usb.c Sun Dec 1 23:05:56 2002
@@ -69,7 +69,8 @@
.probe = generic_probe,
.remove = generic_remove,
};
-
+
+/* needs to be called with BKL held */
int usb_device_probe(struct device *dev)
{
struct usb_interface * intf = to_usb_interface(dev);
@@ -83,11 +84,8 @@
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) {
@@ -99,8 +97,7 @@
if (!error)
intf->driver = driver;
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ put_module(driver->owner);
return error;
}
@@ -120,14 +117,12 @@
return -ENODEV;
}
- if (driver->owner) {
- m = try_inc_mod_count(driver->owner);
- if (m == 0) {
- // FIXME this happens even when we just rmmod
- // drivers that aren't in active use...
- err("Dieing driver still bound to device.\n");
- return -EIO;
- }
+ m = try_module_get(driver->owner);
+ if (m == 0) {
+ // FIXME this happens even when we just rmmod
+ // drivers that aren't in active use...
+ err("Dieing driver still bound to device.\n");
+ return -EIO;
}
/* if we sleep here on an umanaged driver
@@ -143,8 +138,7 @@
usb_driver_release_interface(driver, intf);
up(&driver->serialize);
- if (driver->owner)
- __MOD_DEC_USE_COUNT(driver->owner);
+ module_put(driver->owner)
return 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