public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <michaelc@cs.wisc.edu>
To: John Soni Jose <sony.john-n@Emulex.Com>, linux-scsi@vger.kernel.org
Cc: Minh Tran <minhduc.tran@Emulex.Com>,
	Jayamohan Kallickal <jayamohan.kallickal@Emulex.Com>
Subject: Re: [PATCH V2 1/4]  be2iscsi : Fix the retry count for boot targets
Date: Sat, 28 Feb 2015 15:07:15 -0600	[thread overview]
Message-ID: <54F22E03.7020306@cs.wisc.edu> (raw)
In-Reply-To: <9c2f23ac-73ce-4b8a-aa91-a64f01d345fd@CMEXHTCAS2.ad.emulex.com>

On 12/19/14, 6:51 PM, John Soni Jose wrote:
>   Increment the retry count to get the boot target info when
>   port async event is received by the driver. Update sysfs enteries
>   with the boot target  parameters.
>
> Signed-off-by: Minh Tran <minhduc.tran@emulex.com>
> Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
> Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
> ---
>   drivers/scsi/be2iscsi/be_cmds.c |    4 ++++
>   drivers/scsi/be2iscsi/be_main.c |   23 ++++++++++++++++++++---
>   drivers/scsi/be2iscsi/be_main.h |    4 ++++
>   3 files changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
> index 80d97f3..8e16c49 100644
> --- a/drivers/scsi/be2iscsi/be_cmds.c
> +++ b/drivers/scsi/be2iscsi/be_cmds.c
> @@ -452,6 +452,7 @@ void beiscsi_async_link_state_process(struct beiscsi_hba *phba,
>   		    ((evt->port_link_status & ASYNC_EVENT_LOGICAL) &&
>   		     (evt->port_fault == BEISCSI_PHY_LINK_FAULT_NONE))) {
>   		phba->state = BE_ADAPTER_LINK_UP | BE_ADAPTER_CHECK_BOOT;
> +		phba->get_boot = BE_GET_BOOT_RETRIES;
>
>   		beiscsi_log(phba, KERN_ERR,
>   			    BEISCSI_LOG_CONFIG | BEISCSI_LOG_INIT,
> @@ -480,6 +481,7 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba)
>   				case ASYNC_EVENT_NEW_ISCSI_CONN:
>   				case ASYNC_EVENT_NEW_TCP_CONN:
>   					phba->state |= BE_ADAPTER_CHECK_BOOT;
> +					phba->get_boot = BE_GET_BOOT_RETRIES;
>   					beiscsi_log(phba, KERN_ERR,
>   						    BEISCSI_LOG_CONFIG |
>   						    BEISCSI_LOG_MBOX,
> @@ -488,6 +490,8 @@ int beiscsi_process_mcc(struct beiscsi_hba *phba)
>   						    compl->flags);
>   					break;
>   				default:
> +					phba->state |= BE_ADAPTER_CHECK_BOOT;
> +					phba->get_boot = BE_GET_BOOT_RETRIES;
>   					beiscsi_log(phba, KERN_ERR,
>   						    BEISCSI_LOG_CONFIG |
>   						    BEISCSI_LOG_MBOX,
> diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
> index f319340..98490da 100644
> --- a/drivers/scsi/be2iscsi/be_main.c
> +++ b/drivers/scsi/be2iscsi/be_main.c
> @@ -2039,11 +2039,16 @@ static void  beiscsi_process_mcc_isr(struct beiscsi_hba *phba)
>   				/* Interpret compl as a async link evt */
>   				beiscsi_async_link_state_process(phba,
>   				(struct be_async_event_link_state *) mcc_compl);
> -			else
> +			else {
>   				beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_MBOX,
>   					    "BM_%d :  Unsupported Async Event, flags"
>   					    " = 0x%08x\n",
>   					    mcc_compl->flags);
> +				if (phba->state & BE_ADAPTER_LINK_UP) {
> +					phba->state |= BE_ADAPTER_CHECK_BOOT;
> +					phba->get_boot = BE_GET_BOOT_RETRIES;
> +				}
> +			}
>   		} else if (mcc_compl->flags & CQE_FLAGS_COMPLETED_MASK) {
>   			be_mcc_compl_process_isr(&phba->ctrl, mcc_compl);
>   			atomic_dec(&phba->ctrl.mcc_obj.q.used);
> @@ -4330,8 +4335,14 @@ static int beiscsi_get_boot_info(struct beiscsi_hba *phba)
>   		beiscsi_log(phba, KERN_ERR,
>   			    BEISCSI_LOG_INIT | BEISCSI_LOG_CONFIG,
>   			    "BM_%d : No boot session\n");
> +
> +		if (ret == -ENXIO)
> +			phba->get_boot = 0;
> +
> +
>   		return ret;
>   	}
> +	phba->get_boot = 0;
>   	nonemb_cmd.va = pci_zalloc_consistent(phba->ctrl.pdev,
>   					      sizeof(*session_resp),
>   					      &nonemb_cmd.dma);
> @@ -5376,8 +5387,14 @@ beiscsi_hw_health_check(struct work_struct *work)
>   	be_eqd_update(phba);
>
>   	if (phba->state & BE_ADAPTER_CHECK_BOOT) {
> -		phba->state &= ~BE_ADAPTER_CHECK_BOOT;
> -		be_check_boot_session(phba);
> +		if ((phba->get_boot > 0) && (!phba->boot_kset)) {
> +			phba->get_boot--;
> +			if (!(phba->get_boot % BE_GET_BOOT_TO))
> +				be_check_boot_session(phba);
> +		} else {
> +			phba->state &= ~BE_ADAPTER_CHECK_BOOT;
> +			phba->get_boot = 0;
> +		}
>   	}
>
>   	beiscsi_ue_detect(phba);
> diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h
> index 7ee0ffc..0aa0cb3 100644
> --- a/drivers/scsi/be2iscsi/be_main.h
> +++ b/drivers/scsi/be2iscsi/be_main.h
> @@ -109,6 +109,9 @@
>
>   #define BEISCSI_CLEAN_UNLOAD	0x01
>   #define BEISCSI_EEH_UNLOAD	0x02
> +
> +#define BE_GET_BOOT_RETRIES	45
> +#define BE_GET_BOOT_TO		20
>   /**
>    * hardware needs the async PDU buffers to be posted in multiples of 8
>    * So have atleast 8 of them by default
> @@ -413,6 +416,7 @@ struct beiscsi_hba {
>   	} fw_config;
>
>   	unsigned int state;
> +	int get_boot;
>   	bool fw_timeout;
>   	bool ue_detected;
>   	struct delayed_work beiscsi_hw_check_task;
>

Looks ok to me.

Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>

      parent reply	other threads:[~2015-02-28 21:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-20  0:51 [PATCH V2 1/4] be2iscsi : Fix the retry count for boot targets John Soni Jose
2014-12-22 23:47 ` Mike Christie
2014-12-22 23:54   ` Mike Christie
2014-12-24  7:38     ` Sony John-N
2015-02-28 21:07 ` Mike Christie [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54F22E03.7020306@cs.wisc.edu \
    --to=michaelc@cs.wisc.edu \
    --cc=jayamohan.kallickal@Emulex.Com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=minhduc.tran@Emulex.Com \
    --cc=sony.john-n@Emulex.Com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox