patch-2.4.14 linux/drivers/media/video/cpia_usb.c
Next file: linux/drivers/media/video/meye.c
Previous file: linux/drivers/media/video/cpia_pp.c
Back to the patch index
Back to the overall index
- Lines: 50
- Date:
Thu Oct 25 13:53:47 2001
- Orig file:
v2.4.13/linux/drivers/media/video/cpia_usb.c
- Orig date:
Tue Oct 9 17:06:51 2001
diff -u --recursive --new-file v2.4.13/linux/drivers/media/video/cpia_usb.c linux/drivers/media/video/cpia_usb.c
@@ -104,6 +104,7 @@
};
static struct cam_data *cam_list;
+static spinlock_t cam_list_lock_usb;
static void cpia_usb_complete(struct urb *urb)
{
@@ -536,7 +537,9 @@
goto fail_all;
}
- ADD_TO_LIST(cam_list, cam);
+ spin_lock( &cam_list_lock_usb );
+ cpia_add_to_list(cam_list, cam);
+ spin_unlock( &cam_list_lock_usb );
return cam;
@@ -563,6 +566,8 @@
};
MODULE_DEVICE_TABLE (usb, cpia_id_table);
+MODULE_LICENSE("GPL");
+
static struct usb_driver cpia_driver = {
name: "cpia",
@@ -579,8 +584,10 @@
struct cam_data *cam = (struct cam_data *) ptr;
struct usb_cpia *ucpia = (struct usb_cpia *) cam->lowlevel_data;
- REMOVE_FROM_LIST(cam);
-
+ spin_lock( &cam_list_lock_usb );
+ cpia_remove_from_list(cam);
+ spin_unlock( &cam_list_lock_usb );
+
/* Don't even try to reset the altsetting if we're disconnected */
cpia_usb_free_resources(ucpia, 0);
@@ -620,7 +627,7 @@
static int __init usb_cpia_init(void)
{
cam_list = NULL;
-
+ spin_lock_init(&cam_list_lock_usb);
return usb_register(&cpia_driver);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)