aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cnic.h
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2010-10-13 10:06:47 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-14 13:45:54 -0400
commitfdf24086f4752aee5dfb40143c736250df017820 (patch)
treeb4bf02475161d17d7e7335d801c69e9947ec92b7 /drivers/net/cnic.h
parenta2c9e769dbb92336ddacba01d399ad0f509e7094 (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.h3
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;