diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-06-17 09:00:22 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-06-18 04:46:17 -0400 |
commit | 901787c1674ee5d35c7c3713efbc009c72f43971 (patch) | |
tree | e497c2ab26b3c299ef407de0d9d7d4f88844160c /drivers | |
parent | e9d364de1aed8f7e81b3e67fdf3015533bfc76b1 (diff) |
iwlwifi: comment context requirements of the op_mode
A few op_mode of the op_mode API functions have requirements
on the running context of the caller. Document that.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-op-mode.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-op-mode.h b/drivers/net/wireless/iwlwifi/iwl-op-mode.h index cd9ef114d3a3..64886f95664f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-op-mode.h +++ b/drivers/net/wireless/iwlwifi/iwl-op-mode.h | |||
@@ -111,22 +111,25 @@ struct iwl_cfg; | |||
111 | * May sleep | 111 | * May sleep |
112 | * @rx: Rx notification to the op_mode. rxb is the Rx buffer itself. Cmd is the | 112 | * @rx: Rx notification to the op_mode. rxb is the Rx buffer itself. Cmd is the |
113 | * HCMD the this Rx responds to. | 113 | * HCMD the this Rx responds to. |
114 | * Must be atomic. | 114 | * Must be atomic and called with BH disabled. |
115 | * @queue_full: notifies that a HW queue is full. | 115 | * @queue_full: notifies that a HW queue is full. |
116 | * Must be atomic | 116 | * Must be atomic and called with BH disabled. |
117 | * @queue_not_full: notifies that a HW queue is not full any more. | 117 | * @queue_not_full: notifies that a HW queue is not full any more. |
118 | * Must be atomic | 118 | * Must be atomic and called with BH disabled. |
119 | * @hw_rf_kill:notifies of a change in the HW rf kill switch. True means that | 119 | * @hw_rf_kill:notifies of a change in the HW rf kill switch. True means that |
120 | * the radio is killed. Must be atomic. | 120 | * the radio is killed. Must be atomic. |
121 | * @free_skb: allows the transport layer to free skbs that haven't been | 121 | * @free_skb: allows the transport layer to free skbs that haven't been |
122 | * reclaimed by the op_mode. This can happen when the driver is freed and | 122 | * reclaimed by the op_mode. This can happen when the driver is freed and |
123 | * there are Tx packets pending in the transport layer. | 123 | * there are Tx packets pending in the transport layer. |
124 | * Must be atomic | 124 | * Must be atomic |
125 | * @nic_error: error notification. Must be atomic | 125 | * @nic_error: error notification. Must be atomic and must be called with BH |
126 | * @cmd_queue_full: Called when the command queue gets full. Must be atomic. | 126 | * disabled. |
127 | * @cmd_queue_full: Called when the command queue gets full. Must be atomic and | ||
128 | * called with BH disabled. | ||
127 | * @nic_config: configure NIC, called before firmware is started. | 129 | * @nic_config: configure NIC, called before firmware is started. |
128 | * May sleep | 130 | * May sleep |
129 | * @wimax_active: invoked when WiMax becomes active. Must be atomic. | 131 | * @wimax_active: invoked when WiMax becomes active. Must be atomic and called |
132 | * with BH disabled. | ||
130 | */ | 133 | */ |
131 | struct iwl_op_mode_ops { | 134 | struct iwl_op_mode_ops { |
132 | struct iwl_op_mode *(*start)(struct iwl_trans *trans, | 135 | struct iwl_op_mode *(*start)(struct iwl_trans *trans, |
@@ -165,7 +168,6 @@ struct iwl_op_mode { | |||
165 | static inline void iwl_op_mode_stop(struct iwl_op_mode *op_mode) | 168 | static inline void iwl_op_mode_stop(struct iwl_op_mode *op_mode) |
166 | { | 169 | { |
167 | might_sleep(); | 170 | might_sleep(); |
168 | |||
169 | op_mode->ops->stop(op_mode); | 171 | op_mode->ops->stop(op_mode); |
170 | } | 172 | } |
171 | 173 | ||