alistair23-linux/drivers/scsi/be2iscsi
Jitendra Bhivare 6ac999efee be2iscsi: Fix soft lockup in mgmt_get_all_if_id path using bmbx
We are taking mbox_lock spinlock which disables pre-emption before we
poll for mbox completion. Waiting there with spinlock held in excess of
20s will cause soft lockup.

Actual fix is to change mbox_lock to mutex. The changes are done in
phases. This is the first part.

1. Changed mgmt_get_all_if_id to use MCC where after posting lock is
released.

2. Changed be_mbox_db_ready_wait to busy wait for 12s max and removed
wait_event_timeout. Added error handling code for IO reads.
OPCODE_COMMON_QUERY_FIRMWARE_CONFIG mbox command takes 8s time when
unreachable boot targets configured.

Signed-off-by: Jitendra Bhivare <jitendra.bhivare@avagotech.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2016-02-23 21:27:02 -05:00
..
be.h irq_poll: make blk-iopoll available outside the block layer 2015-12-11 11:52:24 -08:00
be_cmds.c be2iscsi: Fix soft lockup in mgmt_get_all_if_id path using bmbx 2016-02-23 21:27:02 -05:00
be_cmds.h be2iscsi: Revert ownership to Emulex 2015-10-27 10:34:18 +09:00
be_iscsi.c irq_poll: make blk-iopoll available outside the block layer 2015-12-11 11:52:24 -08:00
be_iscsi.h MAINTAINERS, be2iscsi: change email domain 2015-05-18 11:34:52 -07:00
be_main.c irq_poll: fold irq_poll_sched_prep into irq_poll_sched 2015-12-11 11:52:26 -08:00
be_main.h be2iscsi: Bump the driver version 2015-11-09 15:51:05 -08:00
be_mgmt.c be2iscsi: Fix soft lockup in mgmt_get_all_if_id path using bmbx 2016-02-23 21:27:02 -05:00
be_mgmt.h be2iscsi: Fix updating the next pointer during WRB posting 2015-11-09 15:48:03 -08:00
Kconfig irq_poll: make blk-iopoll available outside the block layer 2015-12-11 11:52:24 -08:00
Makefile be2iscsi: Revert ownership to Emulex 2015-10-27 10:34:18 +09:00