diff options
author | Michael Chan <mchan@broadcom.com> | 2010-10-13 10:06:47 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-14 13:45:54 -0400 |
commit | fdf24086f4752aee5dfb40143c736250df017820 (patch) | |
tree | b4bf02475161d17d7e7335d801c69e9947ec92b7 /drivers/net/cnic.h | |
parent | a2c9e769dbb92336ddacba01d399ad0f509e7094 (diff) |
cnic: Defer iscsi connection cleanup
The bnx2x devices require a 2 second quiet time before sending the last
RAMROD command to destroy a connection. This sleep wait adds up to a
long delay when iscsid is serially destroying maultiple connections.
Create a workqueue to perform the final connection cleanup in the
background to speed up the process. This significantly speeds up the
process as the wait time can be done in parallel for multiple connections.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cnic.h')
-rw-r--r-- | drivers/net/cnic.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/cnic.h b/drivers/net/cnic.h index 9907cc24807a..47cd801af857 100644 --- a/drivers/net/cnic.h +++ b/drivers/net/cnic.h | |||
@@ -170,6 +170,7 @@ struct cnic_context { | |||
170 | unsigned long timestamp; | 170 | unsigned long timestamp; |
171 | unsigned long ctx_flags; | 171 | unsigned long ctx_flags; |
172 | #define CTX_FL_OFFLD_START 0 | 172 | #define CTX_FL_OFFLD_START 0 |
173 | #define CTX_FL_DELETE_WAIT 1 | ||
173 | u8 ulp_proto_id; | 174 | u8 ulp_proto_id; |
174 | union { | 175 | union { |
175 | struct cnic_iscsi *iscsi; | 176 | struct cnic_iscsi *iscsi; |
@@ -287,6 +288,8 @@ struct cnic_local { | |||
287 | int hq_size; | 288 | int hq_size; |
288 | int num_cqs; | 289 | int num_cqs; |
289 | 290 | ||
291 | struct delayed_work delete_task; | ||
292 | |||
290 | struct cnic_ctx *ctx_arr; | 293 | struct cnic_ctx *ctx_arr; |
291 | int ctx_blks; | 294 | int ctx_blks; |
292 | int ctx_blk_size; | 295 | int ctx_blk_size; |