mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-08 23:43:58 +00:00
bluetooth: macroize two small inlines to avoid module.h
These two small inlines make calls to try_module_get() and module_put() which would force us to keep module.h present within yet another common include header. We can avoid this by turning them into macros. The hci_dev_hold construct is patterned off of raw_spin_trylock_irqsave() in spinlock.h Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
parent
69e7dae409
commit
1d58996da6
1 changed files with 13 additions and 11 deletions
|
@ -513,11 +513,15 @@ static inline void __hci_dev_put(struct hci_dev *d)
|
||||||
d->destruct(d);
|
d->destruct(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void hci_dev_put(struct hci_dev *d)
|
/*
|
||||||
{
|
* hci_dev_put and hci_dev_hold are macros to avoid dragging all the
|
||||||
__hci_dev_put(d);
|
* overhead of all the modular infrastructure into this header.
|
||||||
module_put(d->owner);
|
*/
|
||||||
}
|
#define hci_dev_put(d) \
|
||||||
|
do { \
|
||||||
|
__hci_dev_put(d); \
|
||||||
|
module_put(d->owner); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
static inline struct hci_dev *__hci_dev_hold(struct hci_dev *d)
|
static inline struct hci_dev *__hci_dev_hold(struct hci_dev *d)
|
||||||
{
|
{
|
||||||
|
@ -525,12 +529,10 @@ static inline struct hci_dev *__hci_dev_hold(struct hci_dev *d)
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct hci_dev *hci_dev_hold(struct hci_dev *d)
|
#define hci_dev_hold(d) \
|
||||||
{
|
({ \
|
||||||
if (try_module_get(d->owner))
|
try_module_get(d->owner) ? __hci_dev_hold(d) : NULL; \
|
||||||
return __hci_dev_hold(d);
|
})
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define hci_dev_lock(d) spin_lock(&d->lock)
|
#define hci_dev_lock(d) spin_lock(&d->lock)
|
||||||
#define hci_dev_unlock(d) spin_unlock(&d->lock)
|
#define hci_dev_unlock(d) spin_unlock(&d->lock)
|
||||||
|
|
Loading…
Add table
Reference in a new issue