Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: ldusb: ld_usb semaphore to mutex

Signed-off-by: Daniel Walker <dwalker@mvista.com>
Acked-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


authored by

Daniel Walker and committed by
Greg Kroah-Hartman
ce0d7d3f db11e47d

+14 -14
+14 -14
drivers/usb/misc/ldusb.c
··· 148 148 149 149 /* Structure to hold all of our device specific stuff */ 150 150 struct ld_usb { 151 - struct semaphore sem; /* locks this structure */ 151 + struct mutex mutex; /* locks this structure */ 152 152 struct usb_interface* intf; /* save off the usb interface pointer */ 153 153 154 154 int open_count; /* number of times this port has been opened */ ··· 319 319 return -ENODEV; 320 320 321 321 /* lock this device */ 322 - if (down_interruptible(&dev->sem)) 322 + if (mutex_lock_interruptible(&dev->mutex)) 323 323 return -ERESTARTSYS; 324 324 325 325 /* allow opening only once */ ··· 358 358 file->private_data = dev; 359 359 360 360 unlock_exit: 361 - up(&dev->sem); 361 + mutex_unlock(&dev->mutex); 362 362 363 363 return retval; 364 364 } ··· 378 378 goto exit; 379 379 } 380 380 381 - if (down_interruptible(&dev->sem)) { 381 + if (mutex_lock_interruptible(&dev->mutex)) { 382 382 retval = -ERESTARTSYS; 383 383 goto exit; 384 384 } ··· 389 389 } 390 390 if (dev->intf == NULL) { 391 391 /* the device was unplugged before the file was released */ 392 - up(&dev->sem); 392 + mutex_unlock(&dev->mutex); 393 393 /* unlock here as ld_usb_delete frees dev */ 394 394 ld_usb_delete(dev); 395 395 goto exit; ··· 402 402 dev->open_count = 0; 403 403 404 404 unlock_exit: 405 - up(&dev->sem); 405 + mutex_unlock(&dev->mutex); 406 406 407 407 exit: 408 408 return retval; ··· 448 448 goto exit; 449 449 450 450 /* lock this object */ 451 - if (down_interruptible(&dev->sem)) { 451 + if (mutex_lock_interruptible(&dev->mutex)) { 452 452 retval = -ERESTARTSYS; 453 453 goto exit; 454 454 } ··· 505 505 506 506 unlock_exit: 507 507 /* unlock the device */ 508 - up(&dev->sem); 508 + mutex_unlock(&dev->mutex); 509 509 510 510 exit: 511 511 return retval; ··· 528 528 goto exit; 529 529 530 530 /* lock this object */ 531 - if (down_interruptible(&dev->sem)) { 531 + if (mutex_lock_interruptible(&dev->mutex)) { 532 532 retval = -ERESTARTSYS; 533 533 goto exit; 534 534 } ··· 602 602 603 603 unlock_exit: 604 604 /* unlock the device */ 605 - up(&dev->sem); 605 + mutex_unlock(&dev->mutex); 606 606 607 607 exit: 608 608 return retval; ··· 651 651 dev_err(&intf->dev, "Out of memory\n"); 652 652 goto exit; 653 653 } 654 - init_MUTEX(&dev->sem); 654 + mutex_init(&dev->mutex); 655 655 spin_lock_init(&dev->rbsl); 656 656 dev->intf = intf; 657 657 init_waitqueue_head(&dev->read_wait); ··· 765 765 /* give back our minor */ 766 766 usb_deregister_dev(intf, &ld_usb_class); 767 767 768 - down(&dev->sem); 768 + mutex_lock(&dev->mutex); 769 769 770 770 /* if the device is not opened, then we clean up right now */ 771 771 if (!dev->open_count) { 772 - up(&dev->sem); 772 + mutex_unlock(&dev->mutex); 773 773 ld_usb_delete(dev); 774 774 } else { 775 775 dev->intf = NULL; 776 - up(&dev->sem); 776 + mutex_unlock(&dev->mutex); 777 777 } 778 778 779 779 dev_info(&intf->dev, "LD USB Device #%d now disconnected\n",