On 01/20/2016 09:40 AM, Jitendra Bhivare wrote: > beiscsi_mccq_compl sets MCC_TAG_STATE_TIMEOUT before setting up > tag_mem_state. be_mcc_compl_process_isr checks for > MCC_TAG_STATE_TIMEOUT first then accesses tag_mem_state which might be > still getting populated in the process context. > > Fix: > Set MCC_TAG_STATE_TIMEOUT after tag_mem_state is populated. > Removed MCC_TAG_STATE_COMPLETED. When posted its in running state and > the running state is cleared in be_mcc_compl_process_isr. > be_mcc_notify now takes tag argument to set it to running state. > Use bit operations for tag_state. Use barriers before setting the state. > > Signed-off-by: Jitendra Bhivare <jitendra.bhivare@xxxxxxxxxxxxx> > --- > drivers/scsi/be2iscsi/be.h | 7 ++- > drivers/scsi/be2iscsi/be_cmds.c | 111 ++++++++++++++++++++-------------------- > drivers/scsi/be2iscsi/be_cmds.h | 4 +- > drivers/scsi/be2iscsi/be_mgmt.c | 39 ++++++++------ > 4 files changed, 84 insertions(+), 77 deletions(-) > Reviewed-by: Hannes Reinecke <hare@xxxxxxxx> Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html