Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1375318 > unrolled thread
| Started by | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| First post | 2016-04-10 22:50 +0200 |
| Last post | 2016-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.
[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
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Date | 2016-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]
| From | Ben Hutchings <ben@decadent.org.uk> |
|---|---|
| Date | 2016-04-12 02:30 +0200 |
| Subject | Re: [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]
| From | Raghava Aditya Renukunta <RaghavaAditya.Renukunta@pmcs.com> |
|---|---|
| Date | 2016-04-12 20:10 +0200 |
| Subject | RE: [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