--- linux-gpib-3.2.15/drivers/gpib/agilent_82357a/agilent_82357a.c 2010-08-23 18:02:36.000000000 +0200 +++ linux-gpib-3.2.15-0-orig/drivers/gpib/agilent_82357a/agilent_82357a.c 2011-05-04 10:56:29.029807784 +0200 @@ -31,7 +31,7 @@ #define MAX_NUM_82357A_INTERFACES 128 static struct usb_interface *agilent_82357a_driver_interfaces[MAX_NUM_82357A_INTERFACES]; -static DECLARE_MUTEX(agilent_82357a_hotplug_lock); +static DEFINE_SEMAPHORE(agilent_82357a_hotplug_lock); static void agilent_82357a_bulk_complete(struct urb *urb PT_REGS_ARG) { @@ -80,7 +80,7 @@ } usb_dev = interface_to_usbdev(a_priv->bus_interface); out_pipe = usb_sndbulkpipe(usb_dev, a_priv->bulk_out_endpoint); - init_MUTEX_LOCKED(&context.complete); + sema_init(&context.complete, 0); context.timed_out = 0; usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, out_pipe, data, data_length, &agilent_82357a_bulk_complete, &context); @@ -170,7 +170,7 @@ } usb_dev = interface_to_usbdev(a_priv->bus_interface); in_pipe = usb_rcvbulkpipe(usb_dev, AGILENT_82357_BULK_IN_ENDPOINT); - init_MUTEX_LOCKED(&context.complete); + sema_init(&context.complete, 0); context.timed_out = 0; usb_fill_bulk_urb(a_priv->bulk_urb, usb_dev, in_pipe, data, data_length, &agilent_82357a_bulk_complete, &context); @@ -1142,10 +1142,10 @@ return -ENOMEM; a_priv = board->private_data; memset(a_priv, 0, sizeof(agilent_82357a_private_t)); - init_MUTEX(&a_priv->bulk_transfer_lock); - init_MUTEX(&a_priv->bulk_alloc_lock); - init_MUTEX(&a_priv->control_alloc_lock); - init_MUTEX(&a_priv->interrupt_alloc_lock); + sema_init(&a_priv->bulk_transfer_lock,1); + sema_init(&a_priv->bulk_alloc_lock,1); + sema_init(&a_priv->control_alloc_lock,1); + sema_init(&a_priv->interrupt_alloc_lock,1); return 0; }