diff options
author | Sathya Perla <sathyap@serverengines.com> | 2009-06-17 20:02:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-19 03:18:39 -0400 |
commit | 5fb379ee67a7ec55ff65b467b472f3d69b60ba16 (patch) | |
tree | 23d8c00fd535abb6f9d56e98ade838b8ed253e99 /drivers/net/benet/be_hw.h | |
parent | e3453f6342110d60edb37be92c4a4f668ca8b0c4 (diff) |
be2net: Add MCC queue mechanism for BE cmds
Currenlty all cmds use the blocking MCC mbox to post cmds. An mbox cmd is protected
via a spin_lock(cmd_lock) and not spin_lock_bh() as it is undesirable
to disable BHs while a blocking mbox cmd is in progress (and take long to finish.)
This can lockup a cmd in progress in process context. Instead cmds that may be
called in BH context must use the MCC queue to post cmds. The cmd completions
are rcvd in a separate completion queue and the events are placed in the tx-event
queue.
Signed-off-by: Sathya Perla <sathyap@serverengines.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/benet/be_hw.h')
-rw-r--r-- | drivers/net/benet/be_hw.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/benet/be_hw.h b/drivers/net/benet/be_hw.h index b132aa4893ca..b02e805c1db3 100644 --- a/drivers/net/benet/be_hw.h +++ b/drivers/net/benet/be_hw.h | |||
@@ -61,7 +61,7 @@ | |||
61 | /* Clear the interrupt for this eq */ | 61 | /* Clear the interrupt for this eq */ |
62 | #define DB_EQ_CLR_SHIFT (9) /* bit 9 */ | 62 | #define DB_EQ_CLR_SHIFT (9) /* bit 9 */ |
63 | /* Must be 1 */ | 63 | /* Must be 1 */ |
64 | #define DB_EQ_EVNT_SHIFT (10) /* bit 10 */ | 64 | #define DB_EQ_EVNT_SHIFT (10) /* bit 10 */ |
65 | /* Number of event entries processed */ | 65 | /* Number of event entries processed */ |
66 | #define DB_EQ_NUM_POPPED_SHIFT (16) /* bits 16 - 28 */ | 66 | #define DB_EQ_NUM_POPPED_SHIFT (16) /* bits 16 - 28 */ |
67 | /* Rearm bit */ | 67 | /* Rearm bit */ |
@@ -88,6 +88,12 @@ | |||
88 | /* Number of rx frags posted */ | 88 | /* Number of rx frags posted */ |
89 | #define DB_RQ_NUM_POSTED_SHIFT (24) /* bits 24 - 31 */ | 89 | #define DB_RQ_NUM_POSTED_SHIFT (24) /* bits 24 - 31 */ |
90 | 90 | ||
91 | /********** MCC door bell ************/ | ||
92 | #define DB_MCCQ_OFFSET 0x140 | ||
93 | #define DB_MCCQ_RING_ID_MASK 0x7FF /* bits 0 - 10 */ | ||
94 | /* Number of entries posted */ | ||
95 | #define DB_MCCQ_NUM_POSTED_SHIFT (16) /* bits 16 - 29 */ | ||
96 | |||
91 | /* | 97 | /* |
92 | * BE descriptors: host memory data structures whose formats | 98 | * BE descriptors: host memory data structures whose formats |
93 | * are hardwired in BE silicon. | 99 | * are hardwired in BE silicon. |