diff options
author | David Vrabel <david.vrabel@csr.com> | 2008-11-07 12:37:33 -0500 |
---|---|---|
committer | David Vrabel <david.vrabel@csr.com> | 2008-11-07 12:37:33 -0500 |
commit | 307ba6dd73254fe7d2ce27db64ffd90e1bb3c6c0 (patch) | |
tree | 535e10e6bd399c1f1d1f55a546e0c6aa92ba9dee /include | |
parent | fec1a5932f16c0eb1b3f5ca2e18d81d860924088 (diff) |
uwb: don't unbind the radio controller driver when resetting
Use pre_reset and post_reset methods to avoid unbinding the radio
controller driver after a uwb_rc_reset_all() call. This avoids a
deadlock in uwb_rc_rm() when waiting for the uwb event thread to stop.
Signed-off-by: David Vrabel <david.vrabel@csr.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/uwb.h | 2 | ||||
-rw-r--r-- | include/linux/uwb/umc.h | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/uwb.h b/include/linux/uwb.h index 881f0c5b6d28..c4854848999d 100644 --- a/include/linux/uwb.h +++ b/include/linux/uwb.h | |||
@@ -540,6 +540,8 @@ void uwb_rc_rm(struct uwb_rc *); | |||
540 | void uwb_rc_neh_grok(struct uwb_rc *, void *, size_t); | 540 | void uwb_rc_neh_grok(struct uwb_rc *, void *, size_t); |
541 | void uwb_rc_neh_error(struct uwb_rc *, int); | 541 | void uwb_rc_neh_error(struct uwb_rc *, int); |
542 | void uwb_rc_reset_all(struct uwb_rc *rc); | 542 | void uwb_rc_reset_all(struct uwb_rc *rc); |
543 | void uwb_rc_pre_reset(struct uwb_rc *rc); | ||
544 | void uwb_rc_post_reset(struct uwb_rc *rc); | ||
543 | 545 | ||
544 | /** | 546 | /** |
545 | * uwb_rsv_is_owner - is the owner of this reservation the RC? | 547 | * uwb_rsv_is_owner - is the owner of this reservation the RC? |
diff --git a/include/linux/uwb/umc.h b/include/linux/uwb/umc.h index 36a39e34f8d7..4b4fc0f43855 100644 --- a/include/linux/uwb/umc.h +++ b/include/linux/uwb/umc.h | |||
@@ -89,6 +89,8 @@ struct umc_driver { | |||
89 | void (*remove)(struct umc_dev *); | 89 | void (*remove)(struct umc_dev *); |
90 | int (*suspend)(struct umc_dev *, pm_message_t state); | 90 | int (*suspend)(struct umc_dev *, pm_message_t state); |
91 | int (*resume)(struct umc_dev *); | 91 | int (*resume)(struct umc_dev *); |
92 | int (*pre_reset)(struct umc_dev *); | ||
93 | int (*post_reset)(struct umc_dev *); | ||
92 | 94 | ||
93 | struct device_driver driver; | 95 | struct device_driver driver; |
94 | }; | 96 | }; |