diff -wbBur qc-usb-messenger-1.8/qc-driver.c qc-usb-messenger-1.8.my/qc-driver.c --- qc-usb-messenger-1.8/qc-driver.c 2008-05-26 11:29:16.000000000 +0000 +++ qc-usb-messenger-1.8.my/qc-driver.c 2011-02-03 15:21:38.000000000 +0000 @@ -225,7 +223,7 @@ }; static LIST_HEAD(quickcam_list); /* Linked list containing all QuickCams */ -static DECLARE_MUTEX(quickcam_list_lock); /* Always lock first quickcam_list_lock, then qc->lock */ +static struct semaphore quickcam_list_lock; /* Always lock first quickcam_list_lock, then qc->lock */ /* Default values for user-specified lookup-table; may be overwritten by user */ static unsigned char userlut_contents[QC_LUT_SIZE] = { @@ -3588,7 +3606,7 @@ PDEBUG("poisoning qc in qc_usb_init"); POISON(*qc); if (qcdebug&QC_DEBUGMUTEX) PDEBUG("init down(%p) in qc_usb_init()", qc); - init_MUTEX_LOCKED(&qc->lock); + sema_init(&qc->lock, 1); qc->users = 0; qc->dev = usbdev; qc->iface = ifacenum;