diff options
author | Jayamohan Kallickal <jayamohank@serverengines.com> | 2009-11-25 01:41:37 +0530 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-10 08:54:13 -0600 |
commit | 78b9fb6d38b1caf1c11cba5b10bb859e3cce071f (patch) | |
tree | 0011c8cd8839d181ed833719e10f466644edf9be /drivers/scsi/be2iscsi/be_cmds.c | |
parent | 7ec4ad0125db0222e397508c190b01c8f2b5f7cd (diff) | |
download | kernel_goldelico_gta04-78b9fb6d38b1caf1c11cba5b10bb859e3cce071f.zip kernel_goldelico_gta04-78b9fb6d38b1caf1c11cba5b10bb859e3cce071f.tar.gz kernel_goldelico_gta04-78b9fb6d38b1caf1c11cba5b10bb859e3cce071f.tar.bz2 |
[SCSI] be2iscsi: Adding support for various Async messages from chip
This patch allows for future addition of various async messages
from the chip. This ensures that the driver won't hit a BUG_ON if
the Firmware used is newer than inbox driver and so is using
latest async messages.
Signed-off-by: Jayamohan Kallickal <jayamohank@serverengines.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/be2iscsi/be_cmds.c')
-rw-r--r-- | drivers/scsi/be2iscsi/be_cmds.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c index 698a527..f008708 100644 --- a/drivers/scsi/be2iscsi/be_cmds.c +++ b/drivers/scsi/be2iscsi/be_cmds.c @@ -135,11 +135,15 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba) while ((compl = be_mcc_compl_get(phba))) { if (compl->flags & CQE_FLAGS_ASYNC_MASK) { /* Interpret flags as an async trailer */ - BUG_ON(!is_link_state_evt(compl->flags)); + if (is_link_state_evt(compl->flags)) + /* Interpret compl as a async link evt */ + beiscsi_async_link_state_process(phba, + (struct be_async_event_link_state *) compl); + else + SE_DEBUG(DBG_LVL_1, + " Unsupported Async Event, flags" + " = 0x%08x \n", compl->flags); - /* Interpret compl as a async link evt */ - beiscsi_async_link_state_process(phba, - (struct be_async_event_link_state *) compl); } else if (compl->flags & CQE_FLAGS_COMPLETED_MASK) { status = be_mcc_compl_process(ctrl, compl); atomic_dec(&phba->ctrl.mcc_obj.q.used); |