be2net: Add MCC queue mechanism for BE cmds
authorSathya Perla <sathyap@serverengines.com>
Thu, 18 Jun 2009 00:02:59 +0000 (00:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Jun 2009 07:18:39 +0000 (00:18 -0700)
commit5fb379ee67a7ec55ff65b467b472f3d69b60ba16
tree23d8c00fd535abb6f9d56e98ade838b8ed253e99
parente3453f6342110d60edb37be92c4a4f668ca8b0c4
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>
drivers/net/benet/be.h
drivers/net/benet/be_cmds.c
drivers/net/benet/be_cmds.h
drivers/net/benet/be_hw.h
drivers/net/benet/be_main.c