On 03/27/2014 09:39 AM, Jayamohan Kallickal wrote:
>  Even before probe for function was completed, iSCSI Daemon had initiated 
> login
>  to target while OS was coming up. The targets which had 
> node.startup=automatic,
>  login process was initiated.Since function specific initialization was still 
> in
>  progress this lead to kernel panic.
>  The reson was MCCQ was not yet created and login Mbx_Cmd was sent on MCCQ.
>  wrb_from_mccq() failed with kernel-panic access.
> 
>  In the fix checking in alloc_mcc_tag() if driver initialization is complete 
> or not.
>  Based on the result driver continues or return with an Error.
> 
> Signed-off-by: John Soni Jose <sony.joh...@emulex.com>
> Signed-off-by: Jayamohan Kallickal <jayamohan.kallic...@emulex.com>
> ---
>  drivers/scsi/be2iscsi/be_cmds.c | 8 ++++++++
>  drivers/scsi/be2iscsi/be_main.c | 2 ++
>  drivers/scsi/be2iscsi/be_main.h | 1 +
>  3 files changed, 11 insertions(+)
> 
> diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
> index 1432ed5..4cabf5f 100644
> --- a/drivers/scsi/be2iscsi/be_cmds.c
> +++ b/drivers/scsi/be2iscsi/be_cmds.c
> @@ -118,6 +118,14 @@ unsigned int alloc_mcc_tag(struct beiscsi_hba *phba)
>  {
>       unsigned int tag = 0;
>  
> +
> +     if (phba->state & BE_ADAPTER_INIT_PHASE) {
> +             beiscsi_log(phba, KERN_ERR,
> +                         BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
> +                         "BC_%d : Driver Initialization still in 
> progress\n");
> +             return tag;
> +     }
> +

I think normally we do not call scsi_host_add and expose the host until
the driver can handle requests from entry points like sysfs and
queuecommand.

Can you just move iscsi_host_add from beiscsi_hba_alloc to
beiscsi_dev_probe after beiscsi_setup_boot_info is called?

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to