diff options
author | Rajesh Borundia <rajesh.borundia@qlogic.com> | 2013-03-29 09:46:38 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-29 23:51:06 +0400 |
commit | e8b508ef71fb70ec761086532716b19d3c4773e5 (patch) | |
tree | 22e27a6c8369ffff72375ead0a120bbf16b9f9a0 /drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h | |
parent | 7cb03b2347d5edace4fb8e7dd9d6c3889368a179 (diff) | |
download | linux-e8b508ef71fb70ec761086532716b19d3c4773e5.tar.xz |
qlcnic: Support atomic commands
o VFs might get scheduled out after sending a command to a PF
and scheduled in after receiving a response. Implement a
worker thread to handle atomic commands.
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h index 3c05f170801d..b476ebac2439 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h @@ -133,9 +133,17 @@ struct qlcnic_vf_info { struct qlcnic_vport *vp; }; +struct qlcnic_async_work_list { + struct list_head list; + struct work_struct work; + void *ptr; +}; + struct qlcnic_back_channel { u16 trans_counter; struct workqueue_struct *bc_trans_wq; + struct workqueue_struct *bc_async_wq; + struct list_head async_list; }; struct qlcnic_sriov { @@ -156,6 +164,7 @@ int qlcnic_sriov_func_to_index(struct qlcnic_adapter *, u8); int qlcnic_sriov_channel_cfg_cmd(struct qlcnic_adapter *, u8); void qlcnic_sriov_handle_bc_event(struct qlcnic_adapter *, u32); int qlcnic_sriov_cfg_bc_intr(struct qlcnic_adapter *, u8); +void qlcnic_sriov_cleanup_async_list(struct qlcnic_back_channel *); static inline bool qlcnic_sriov_enable_check(struct qlcnic_adapter *adapter) { |