diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/device.h | 17 | ||||
-rw-r--r-- | include/linux/usb.h | 6 |
2 files changed, 19 insertions, 4 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index f95d5bfe8248..182192892d45 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -106,7 +106,7 @@ extern int bus_unregister_notifier(struct bus_type *bus, | |||
106 | 106 | ||
107 | /* All 4 notifers below get called with the target struct device * | 107 | /* All 4 notifers below get called with the target struct device * |
108 | * as an argument. Note that those functions are likely to be called | 108 | * as an argument. Note that those functions are likely to be called |
109 | * with the device semaphore held in the core, so be careful. | 109 | * with the device lock held in the core, so be careful. |
110 | */ | 110 | */ |
111 | #define BUS_NOTIFY_ADD_DEVICE 0x00000001 /* device added */ | 111 | #define BUS_NOTIFY_ADD_DEVICE 0x00000001 /* device added */ |
112 | #define BUS_NOTIFY_DEL_DEVICE 0x00000002 /* device removed */ | 112 | #define BUS_NOTIFY_DEL_DEVICE 0x00000002 /* device removed */ |
@@ -508,6 +508,21 @@ static inline bool device_async_suspend_enabled(struct device *dev) | |||
508 | return !!dev->power.async_suspend; | 508 | return !!dev->power.async_suspend; |
509 | } | 509 | } |
510 | 510 | ||
511 | static inline void device_lock(struct device *dev) | ||
512 | { | ||
513 | down(&dev->sem); | ||
514 | } | ||
515 | |||
516 | static inline int device_trylock(struct device *dev) | ||
517 | { | ||
518 | return down_trylock(&dev->sem); | ||
519 | } | ||
520 | |||
521 | static inline void device_unlock(struct device *dev) | ||
522 | { | ||
523 | up(&dev->sem); | ||
524 | } | ||
525 | |||
511 | void driver_init(void); | 526 | void driver_init(void); |
512 | 527 | ||
513 | /* | 528 | /* |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 3492abf82e75..8c9f053111bb 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -512,9 +512,9 @@ extern struct usb_device *usb_get_dev(struct usb_device *dev); | |||
512 | extern void usb_put_dev(struct usb_device *dev); | 512 | extern void usb_put_dev(struct usb_device *dev); |
513 | 513 | ||
514 | /* USB device locking */ | 514 | /* USB device locking */ |
515 | #define usb_lock_device(udev) down(&(udev)->dev.sem) | 515 | #define usb_lock_device(udev) device_lock(&(udev)->dev) |
516 | #define usb_unlock_device(udev) up(&(udev)->dev.sem) | 516 | #define usb_unlock_device(udev) device_unlock(&(udev)->dev) |
517 | #define usb_trylock_device(udev) down_trylock(&(udev)->dev.sem) | 517 | #define usb_trylock_device(udev) device_trylock(&(udev)->dev) |
518 | extern int usb_lock_device_for_reset(struct usb_device *udev, | 518 | extern int usb_lock_device_for_reset(struct usb_device *udev, |
519 | const struct usb_interface *iface); | 519 | const struct usb_interface *iface); |
520 | 520 | ||