]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit7c427051d559cdab0d0ace01d1e5765b2079a5bc
tree23d8c00fd535abb6f9d56e98ade838b8ed253e99
parentb02d002db080589b3aa18a8bb058545544506223
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