Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1375318 > unrolled thread

[PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2016-04-10 22:50 +0200
Last post2016-04-12 20:10 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-04-10 22:50 +0200
    Re: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH  recovery Ben Hutchings <ben@decadent.org.uk> - 2016-04-12 02:30 +0200
      RE: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH  recovery Raghava Aditya Renukunta <RaghavaAditya.Renukunta@pmcs.com> - 2016-04-12 20:10 +0200

#1375318 — [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-04-10 22:50 +0200
Subject[PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery
Message-ID<rmusX-2ny-33@gated-at.bofh.it>
4.5-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>

commit ecc479e00db8eb110b200afe1effcb3df20ca7ae upstream.

During EEH recovery number of online CPU's might change thereby changing
the number of MSIx vectors. Since each fib is allocated to a vector,
changes in the number of vectors causes fib to be sent thru invalid
vectors.In addition the correct number of MSIx vectors is not updated in
the INIT struct sent to the controller, when it is reinitialized.

Fixed by reassigning vectors to fibs based on the updated number of MSIx
vectors and updating the INIT structure before sending to controller.

Fixes: MSI-X vector calculation for suspend/resume
Signed-off-by: Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
Reviewed-by: Shane Seymour <shane.seymour@hpe.com>
Reviewed-by: Johannes Thumshirn <jthushirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/scsi/aacraid/linit.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -1404,8 +1404,18 @@ static int aac_acquire_resources(struct
 
 	aac_adapter_enable_int(dev);
 
-	if (!dev->sync_mode)
+	/*max msix may change  after EEH
+	 * Re-assign vectors to fibs
+	 */
+	aac_fib_vector_assign(dev);
+
+	if (!dev->sync_mode) {
+		/* After EEH recovery or suspend resume, max_msix count
+		 * may change, therfore updating in init as well.
+		 */
 		aac_adapter_start(dev);
+		dev->init->Sa_MSIXVectors = cpu_to_le32(dev->max_msix);
+	}
 	return 0;
 
 error_iounmap:

[toc] | [next] | [standalone]


#1376360 — Re: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery

FromBen Hutchings <ben@decadent.org.uk>
Date2016-04-12 02:30 +0200
SubjectRe: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery
Message-ID<rmUnp-6qa-15@gated-at.bofh.it>
In reply to#1375318

[Multipart message — attachments visible in raw view] — view raw

On Sun, 2016-04-10 at 11:33 -0700, Greg Kroah-Hartman wrote:
> 4.5-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
> 
> commit ecc479e00db8eb110b200afe1effcb3df20ca7ae upstream.
> 
> During EEH recovery number of online CPU's might change thereby changing
> the number of MSIx vectors. Since each fib is allocated to a vector,
> changes in the number of vectors causes fib to be sent thru invalid
> vectors.In addition the correct number of MSIx vectors is not updated in
> the INIT struct sent to the controller, when it is reinitialized.
> 
> Fixed by reassigning vectors to fibs based on the updated number of MSIx
> vectors and updating the INIT structure before sending to controller.

Really?

[...]
> --- a/drivers/scsi/aacraid/linit.c
> +++ b/drivers/scsi/aacraid/linit.c
> @@ -1404,8 +1404,18 @@ static int aac_acquire_resources(struct
>  
>  	aac_adapter_enable_int(dev);
>  
> -	if (!dev->sync_mode)
> +	/*max msix may change  after EEH
> +	 * Re-assign vectors to fibs
> +	 */
> +	aac_fib_vector_assign(dev);
> +
> +	if (!dev->sync_mode) {
> +		/* After EEH recovery or suspend resume, max_msix count
> +		 * may change, therfore updating in init as well.
> +		 */
>  		aac_adapter_start(dev);
> +		dev->init->Sa_MSIXVectors = cpu_to_le32(dev->max_msix);

Aren't these two lines in the wrong order?

Ben.

> +	}
>  	return 0;
>  
>  error_iounmap:
-- 
Ben Hutchings
This sentence contradicts itself - no actually it doesn't.

[toc] | [prev] | [next] | [standalone]


#1377076 — RE: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery

FromRaghava Aditya Renukunta <RaghavaAditya.Renukunta@pmcs.com>
Date2016-04-12 20:10 +0200
SubjectRE: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH recovery
Message-ID<rnaVe-3iR-29@gated-at.bofh.it>
In reply to#1376360
Hello Ben,

> -----Original Message-----
> From: Ben Hutchings [mailto:ben@decadent.org.uk]
> Sent: Monday, April 11, 2016 5:29 PM
> To: Raghava Aditya Renukunta
> Cc: stable@vger.kernel.org; Shane Seymour; Johannes Thumshirn; Martin K.
> Petersen; Greg Kroah-Hartman; LKML
> Subject: Re: [PATCH 4.5 036/238] aacraid: Set correct msix count for EEH
> recovery
> 
> On Sun, 2016-04-10 at 11:33 -0700, Greg Kroah-Hartman wrote:
> > 4.5-stable review patch.  If anyone has any objections, please let me know.
> >
> > ------------------
> >
> > From: Raghava Aditya Renukunta <raghavaaditya.renukunta@pmcs.com>
> >
> > commit ecc479e00db8eb110b200afe1effcb3df20ca7ae upstream.
> >
> > During EEH recovery number of online CPU's might change thereby
> changing
> > the number of MSIx vectors. Since each fib is allocated to a vector,
> > changes in the number of vectors causes fib to be sent thru invalid
> > vectors.In addition the correct number of MSIx vectors is not updated in
> > the INIT struct sent to the controller, when it is reinitialized.
> >
> > Fixed by reassigning vectors to fibs based on the updated number of MSIx
> > vectors and updating the INIT structure before sending to controller.
> 
> Really?
> 
> [...]
> > --- a/drivers/scsi/aacraid/linit.c
> > +++ b/drivers/scsi/aacraid/linit.c
> > @@ -1404,8 +1404,18 @@ static int aac_acquire_resources(struct
> >
> >  	aac_adapter_enable_int(dev);
> >
> > -	if (!dev->sync_mode)
> > +	/*max msix may change  after EEH
> > +	 * Re-assign vectors to fibs
> > +	 */
> > +	aac_fib_vector_assign(dev);
> > +
> > +	if (!dev->sync_mode) {
> > +		/* After EEH recovery or suspend resume, max_msix count
> > +		 * may change, therfore updating in init as well.
> > +		 */
> >  		aac_adapter_start(dev);
> > +		dev->init->Sa_MSIXVectors = cpu_to_le32(dev->max_msix);
> 
> Aren't these two lines in the wrong order?
> 
> Ben.

You are right those are two lines are in the wrong order,
I will submit another patch to correct that issue.

Raghava 
> 
> > +	}
> >  	return 0;
> >
> >  error_iounmap:
> --
> Ben Hutchings
> This sentence contradicts itself - no actually it doesn't.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web