<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/aacraid/linit.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-11-10T15:41:36Z</updated>
<entry>
<title>aacraid: Start adapter after updating number of MSIX vectors</title>
<updated>2018-11-10T15:41:36Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-04-26T06:31:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93e8e691675a33960b607d9fd0858d5a35f0e419'/>
<id>urn:sha1:93e8e691675a33960b607d9fd0858d5a35f0e419</id>
<content type='text'>
[ Upstream commit 116d77fea02e2a5aded7d29ba4c692774cb339f1 ]

The adapter has to be started after updating the number of MSIX Vectors

Fixes: ecc479e00db8 (aacraid: Set correct MSIX count for EEH recovery)
Cc: stable@vger.kernel.org
Signed-off-by: Raghava Aditya Renukunta &lt;RaghavaAditya.Renukunta@microsemi.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: aacraid: Insure command thread is not recursively stopped</title>
<updated>2018-05-30T05:49:07Z</updated>
<author>
<name>Dave Carroll</name>
</author>
<published>2018-04-03T21:50:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48b7c436bf53df9a3c2ab679ef49f5f7d283802f'/>
<id>urn:sha1:48b7c436bf53df9a3c2ab679ef49f5f7d283802f</id>
<content type='text'>
[ Upstream commit 1c6b41fb92936fa5facea464d5d7cbf855966d04 ]

If a recursive IOP_RESET is invoked, usually due to the eh_thread
handling errors after the first reset, be sure we flag that the command
thread has been stopped to avoid an Oops of the form;

 [ 336.620256] CPU: 28 PID: 1193 Comm: scsi_eh_0 Kdump: loaded Not tainted 4.14.0-49.el7a.ppc64le #1
 [ 336.620297] task: c000003fd630b800 task.stack: c000003fd61a4000
 [ 336.620326] NIP: c000000000176794 LR: c00000000013038c CTR: c00000000024bc10
 [ 336.620361] REGS: c000003fd61a7720 TRAP: 0300 Not tainted (4.14.0-49.el7a.ppc64le)
 [ 336.620395] MSR: 9000000000009033 &lt;SF,HV,EE,ME,IR,DR,RI,LE&gt; CR: 22084022 XER: 20040000
 [ 336.620435] CFAR: c000000000130388 DAR: 0000000000000000 DSISR: 40000000 SOFTE: 1
 [ 336.620435] GPR00: c00000000013038c c000003fd61a79a0 c0000000014c7e00 0000000000000000
 [ 336.620435] GPR04: 000000000000000c 000000000000000c 9000000000009033 0000000000000477
 [ 336.620435] GPR08: 0000000000000477 0000000000000000 0000000000000000 c008000010f7d940
 [ 336.620435] GPR12: c00000000024bc10 c000000007a33400 c0000000001708a8 c000003fe3b881d8
 [ 336.620435] GPR16: c000003fe3b88060 c000003fd61a7d10 fffffffffffff000 000000000000001e
 [ 336.620435] GPR20: 0000000000000001 c000000000ebf1a0 0000000000000001 c000003fe3b88000
 [ 336.620435] GPR24: 0000000000000003 0000000000000002 c000003fe3b88840 c000003fe3b887e8
 [ 336.620435] GPR28: c000003fe3b88000 c000003fc8181788 0000000000000000 c000003fc8181700
 [ 336.620750] NIP [c000000000176794] exit_creds+0x34/0x160
 [ 336.620775] LR [c00000000013038c] __put_task_struct+0x8c/0x1f0
 [ 336.620804] Call Trace:
 [ 336.620817] [c000003fd61a79a0] [c000003fe3b88000] 0xc000003fe3b88000 (unreliable)
 [ 336.620853] [c000003fd61a79d0] [c00000000013038c] __put_task_struct+0x8c/0x1f0
 [ 336.620889] [c000003fd61a7a00] [c000000000171418] kthread_stop+0x1e8/0x1f0
 [ 336.620922] [c000003fd61a7a40] [c008000010f7448c] aac_reset_adapter+0x14c/0x8d0 [aacraid]
 [ 336.620959] [c000003fd61a7b00] [c008000010f60174] aac_eh_host_reset+0x84/0x100 [aacraid]
 [ 336.621010] [c000003fd61a7b30] [c000000000864f24] scsi_try_host_reset+0x74/0x180
 [ 336.621046] [c000003fd61a7bb0] [c000000000867ac0] scsi_eh_ready_devs+0xc00/0x14d0
 [ 336.625165] [c000003fd61a7ca0] [c0000000008699e0] scsi_error_handler+0x550/0x730
 [ 336.632101] [c000003fd61a7dc0] [c000000000170a08] kthread+0x168/0x1b0
 [ 336.639031] [c000003fd61a7e30] [c00000000000b528] ret_from_kernel_thread+0x5c/0xb4
 [ 336.645971] Instruction dump:
 [ 336.648743] 384216a0 7c0802a6 fbe1fff8 f8010010 f821ffd1 7c7f1b78 60000000 60000000
 [ 336.657056] 39400000 e87f0838 f95f0838 7c0004ac &lt;7d401828&gt; 314affff 7d40192d 40c2fff4
 [ 336.663997] -[ end trace 4640cf8d4945ad95 ]-

So flag when the thread is stopped by setting the thread pointer to NULL.

Signed-off-by: Dave Carroll &lt;david.carroll@microsemi.com&gt;
Reviewed-by: Raghava Aditya Renukunta &lt;raghavaaditya.renukunta@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>scsi: aacraid: fix shutdown crash when init fails</title>
<updated>2018-05-30T05:48:58Z</updated>
<author>
<name>Meelis Roos</name>
</author>
<published>2018-02-09T06:57:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edee149b58bd148971eefb7ffa9d65e425aa2c80'/>
<id>urn:sha1:edee149b58bd148971eefb7ffa9d65e425aa2c80</id>
<content type='text'>
[ Upstream commit 00c20cdc79259c6c5bf978b21af96c2d3edb646d ]

When aacraid init fails with "AAC0: adapter self-test failed.", shutdown
leads to UBSAN warning and then oops:

[154316.118423] ================================================================================
[154316.118508] UBSAN: Undefined behaviour in drivers/scsi/scsi_lib.c:2328:27
[154316.118566] member access within null pointer of type 'struct Scsi_Host'
[154316.118631] CPU: 2 PID: 14530 Comm: reboot Tainted: G        W        4.15.0-dirty #89
[154316.118701] Hardware name: Hewlett Packard HP NetServer/HP System Board, BIOS 4.06.46 PW 06/25/2003
[154316.118774] Call Trace:
[154316.118848]  dump_stack+0x48/0x65
[154316.118916]  ubsan_epilogue+0xe/0x40
[154316.118976]  __ubsan_handle_type_mismatch+0xfb/0x180
[154316.119043]  scsi_block_requests+0x20/0x30
[154316.119135]  aac_shutdown+0x18/0x40 [aacraid]
[154316.119196]  pci_device_shutdown+0x33/0x50
[154316.119269]  device_shutdown+0x18a/0x390
[...]
[154316.123435] BUG: unable to handle kernel NULL pointer dereference at 000000f4
[154316.123515] IP: scsi_block_requests+0xa/0x30

This is because aac_shutdown() does

        struct Scsi_Host *shost = pci_get_drvdata(dev);
        scsi_block_requests(shost);

and that assumes shost has been assigned with pci_set_drvdata().

However, pci_set_drvdata(pdev, shost) is done in aac_probe_one() far
after bailing out with error from calling the init function
((*aac_drivers[index].init)(aac)), and when the init function fails, no
error is returned from aac_probe_one() so PCI layer assumes there is
driver attached, and tries to shut it down later.

Fix it by returning error from aac_probe_one() when card-specific init
function fails.

This fixes reboot on my HP NetRAID-4M with dead battery.

Signed-off-by: Meelis Roos &lt;mroos@linux.ee&gt;
Reviewed-by: Dave Carroll &lt;david.carroll@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>aacraid: Set correct msix count for EEH recovery</title>
<updated>2016-04-12T16:08:38Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-02-03T23:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e468298bd4f80e9353b2fe1273ad036a4abaf6e6'/>
<id>urn:sha1:e468298bd4f80e9353b2fe1273ad036a4abaf6e6</id>
<content type='text'>
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 &lt;raghavaaditya.renukunta@pmcs.com&gt;
Reviewed-by: Shane Seymour &lt;shane.seymour@hpe.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthushirn@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>aacraid: IOCTL fix</title>
<updated>2015-11-10T00:07:31Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-08-28T10:38:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e728f8e39ffd8f7054e0718b4fb308c32235a5c2'/>
<id>urn:sha1:e728f8e39ffd8f7054e0718b4fb308c32235a5c2</id>
<content type='text'>
Driver blocks ioctls once it received shutdown/suspend request during
suspend/hybernation. This patch unblocks ioctls on resume path.

Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Reviewed-by: Karthikeya Sunkesula &lt;Karthikeya.Sunkesula@pmcs.com&gt;
Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>aacraid: Add Power Management support</title>
<updated>2015-11-09T23:59:18Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-08-28T10:38:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de665f28f788ad72ff6a0ce6ac2721d77248b7cf'/>
<id>urn:sha1:de665f28f788ad72ff6a0ce6ac2721d77248b7cf</id>
<content type='text'>
* .suspend() and .resume() routines implemented in the driver
* aac_release_resources() initiates firmware shutdown
* aac_acquire_resources re-initializes the host interface

Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Reviewed-by: Karthikeya Sunkesula &lt;Karthikeya.Sunkesula@pmcs.com&gt;
Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>aacraid: driver version change</title>
<updated>2015-04-09T23:57:01Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-03-26T14:41:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f20dffc7c67b1c88aedd600031229cc97a4ddb97'/>
<id>urn:sha1:f20dffc7c67b1c88aedd600031229cc97a4ddb97</id>
<content type='text'>
Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>aacraid: performance improvement changes</title>
<updated>2015-04-09T23:55:21Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-03-26T14:41:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef6162333a6910007c0ae2237e750ffd5bf25811'/>
<id>urn:sha1:ef6162333a6910007c0ae2237e750ffd5bf25811</id>
<content type='text'>
Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>aacraid: IOCTL fix</title>
<updated>2015-04-09T23:54:40Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-03-26T14:41:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9c4259678cbde854a4e94398d66ef379178fd7c'/>
<id>urn:sha1:f9c4259678cbde854a4e94398d66ef379178fd7c</id>
<content type='text'>
After getting the platform shutdown command "VM_CloseAll" response from the
firmware, driver was getting configuration IOCTL request from the upper layers
and it sends down to firmware. This causes firmware assert issue.

This patch fixes the firmware assert issue. During the shutdown, if driver
gets commands from the upper layer, driver sends error code to the upper
layers.

Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>aacraid: MSI-x support</title>
<updated>2015-04-09T23:48:15Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-03-26T14:41:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=495c021767bd78c998a46cf8cdd7a4ebf3a9cfd1'/>
<id>urn:sha1:495c021767bd78c998a46cf8cdd7a4ebf3a9cfd1</id>
<content type='text'>
Signed-off-by: Mahesh Rajashekhara &lt;Mahesh.Rajashekhara@pmcs.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: Murthy Bhat &lt;Murthy.Bhat@pmcs.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
</feed>
