aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@csr.com>2008-11-07 12:37:33 -0500
committerDavid Vrabel <david.vrabel@csr.com>2008-11-07 12:37:33 -0500
commit307ba6dd73254fe7d2ce27db64ffd90e1bb3c6c0 (patch)
tree535e10e6bd399c1f1d1f55a546e0c6aa92ba9dee /include/linux
parentfec1a5932f16c0eb1b3f5ca2e18d81d860924088 (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/linux')
-rw-r--r--include/linux/uwb.h2
-rw-r--r--include/linux/uwb/umc.h2
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 *);
540void uwb_rc_neh_grok(struct uwb_rc *, void *, size_t); 540void uwb_rc_neh_grok(struct uwb_rc *, void *, size_t);
541void uwb_rc_neh_error(struct uwb_rc *, int); 541void uwb_rc_neh_error(struct uwb_rc *, int);
542void uwb_rc_reset_all(struct uwb_rc *rc); 542void uwb_rc_reset_all(struct uwb_rc *rc);
543void uwb_rc_pre_reset(struct uwb_rc *rc);
544void 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};