<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/aacraid/commsup.c, branch linux-4.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-04-29T23:08:24Z</updated>
<entry>
<title>aacraid: Log firmware AIF messages</title>
<updated>2016-04-29T23:08:24Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-04-26T06:32:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9cb62fa24e0d22dbe991c315d6c454a341ea3f76'/>
<id>urn:sha1:9cb62fa24e0d22dbe991c315d6c454a341ea3f76</id>
<content type='text'>
Firmware AIF messages about cache loss and data recovery are being missed
by the driver since currently they are not captured but rather let go.
This patch to capture those messages and log them for the user.

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;
</content>
</entry>
<entry>
<title>aacraid: Fix for aac_command_thread hang</title>
<updated>2016-04-29T23:08:24Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-04-26T06:31:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc4bf75ea300a5e62a2419f89dd0e22189dd7ab7'/>
<id>urn:sha1:fc4bf75ea300a5e62a2419f89dd0e22189dd7ab7</id>
<content type='text'>
Typically under error conditions, it is possible for aac_command_thread()
to miss the wakeup from kthread_stop() and go back to sleep, causing it
to hang aac_shutdown.

In the observed scenario, the adapter is not functioning correctly and so
aac_fib_send() never completes (or time-outs depending on how it was
called). Shortly after aac_command_thread() starts it performs
aac_fib_send(SendHostTime) which hangs. When aac_probe_one
/aac_get_adapter_info send time outs, kthread_stop is called which breaks
the command thread out of it's hang.

The code will still go back to sleep in schedule_timeout() without
checking kthread_should_stop() so it causes aac_probe_one to hang until
the schedule_timeout() which is 30 minutes.

Fixed by: Adding another kthread_should_stop() before schedule_timeout()
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;
</content>
</entry>
<entry>
<title>aacraid: Relinquish CPU during timeout wait</title>
<updated>2016-04-29T23:08:24Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-04-26T06:31:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=07beca2be24cc710461c0b131832524c9ee08910'/>
<id>urn:sha1:07beca2be24cc710461c0b131832524c9ee08910</id>
<content type='text'>
aac_fib_send has a special function case for initial commands during
driver initialization using wait &lt; 0(pseudo sync mode). In this case,
the command does not sleep but rather spins checking for timeout.This
loop is calls cpu_relax() in an attempt to allow other processes/threads
to use the CPU, but this function does not relinquish the CPU and so the
command will hog the processor. This was observed in a KDUMP
"crashkernel" and that prevented the "command thread" (which is
responsible for completing the command from being timed out) from
starting because it could not get the CPU.

Fixed by replacing "cpu_relax()" call with "schedule()"
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;
</content>
</entry>
<entry>
<title>aacraid: Fix memory leak in aac_fib_map_free</title>
<updated>2016-02-24T02:27:02Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-02-03T23:06:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f88fa79a61726ce9434df9b4aede36961f709f17'/>
<id>urn:sha1:f88fa79a61726ce9434df9b4aede36961f709f17</id>
<content type='text'>
aac_fib_map_free() calls pci_free_consistent() without checking that
dev-&gt;hw_fib_va is not NULL and dev-&gt;max_fib_size is not zero.If they are
indeed NULL/0, this will result in a hang as pci_free_consistent() will
attempt to invalidate cache for the entire 64-bit address space
(which would take a very long time).

Fixed by adding a check to make sure that dev-&gt;hw_fib_va and
dev-&gt;max_fib_size are not NULL and 0 respectively.

Fixes: 9ad5204d6 - "[SCSI]aacraid: incorrect dma mapping mask during blinked recover or user initiated reset"
Cc: stable@vger.kernel.org

Signed-off-by: Raghava Aditya Renukunta &lt;raghavaaditya.renukunta@pmcs.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>aacraid: Fix RRQ overload</title>
<updated>2016-02-24T02:27:02Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-02-03T23:06:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f4ce057d51a9c0ed9b01ba693df685d230ffcae'/>
<id>urn:sha1:3f4ce057d51a9c0ed9b01ba693df685d230ffcae</id>
<content type='text'>
The driver utilizes an array of atomic variables to keep track of IO
submissions to each vector. To submit an IO multiple threads iterate
through the array to find a vector which has empty slots to send an
IO. The reading and updating of the variable is not atomic, causing race
conditions when a thread uses a full vector to submit an IO.

Fixed by mapping each FIB to a vector, the submission path then uses
said vector to submit IO thereby removing the possibly of a race
condition.The vector assignment is started from 1 since vector 0 is
reserved for the use of AIF management FIBS.If the number of MSIx
vectors is 1 (MSI or INTx mode) then all the fibs are allocated to
vector 0.

Fixes: 495c0217 "aacraid: MSI-x support"
Cc: stable@vger.kernel.org # v4.1

Signed-off-by: Raghava Aditya Renukunta &lt;raghavaaditya.renukunta@pmcs.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>aacraid: SCSI blk tag support</title>
<updated>2016-02-24T02:27:02Z</updated>
<author>
<name>Raghava Aditya Renukunta</name>
</author>
<published>2016-02-03T23:05:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6bf3b630d0a733b74f7167a1cfac457358e67074'/>
<id>urn:sha1:6bf3b630d0a733b74f7167a1cfac457358e67074</id>
<content type='text'>
The method to allocate and free FIB's in the present code utilizes
spinlocks. Multiple IO's have to wait on the spinlock to acquire or free
fibs creating a performance bottleneck.

An alternative solution would be to use block layer tags to keep track
of the fibs allocated and freed. To this end aac_fib_alloc_tag was
created to utilize the blk layer tags to plug into the Fib pool.These
functions are used exclusively in the IO path. 8 fibs are reserved for
the use of AIF management software and utilize the previous spinlock
based implementations.

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;jthumshirn@suse.de&gt;
Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>aacraid: Reset irq affinity hints</title>
<updated>2015-11-10T00:06:38Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-08-28T10:38:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8b1462e0ebb677ee07da6c18f7047539ea6e449e'/>
<id>urn:sha1:8b1462e0ebb677ee07da6c18f7047539ea6e449e</id>
<content type='text'>
Reset irq affinity hints before releasing IRQ.
Removed duplicate code of IRQ acquire/release.

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: AIF raw device remove support</title>
<updated>2015-04-09T23:56:18Z</updated>
<author>
<name>Mahesh Rajashekhara</name>
</author>
<published>2015-03-26T14:41:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dab04b0151975103ed6c56a0c03e66dd85f6c158'/>
<id>urn:sha1:dab04b0151975103ed6c56a0c03e66dd85f6c158</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: 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>
