<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/scsi/hpsa_cmd.h, branch linux-6.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.9.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2021-04-02T02:52:40Z</updated>
<entry>
<title>scsi: hpsa: Add an assert to prevent __packed reintroduction</title>
<updated>2021-04-02T02:52:40Z</updated>
<author>
<name>Sergei Trofimovich</name>
<email>slyfox@gentoo.org</email>
</author>
<published>2021-03-30T07:19:58Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e01a00ff62adca8ec464f3c8d82cfa0e8d8728dd'/>
<id>urn:sha1:e01a00ff62adca8ec464f3c8d82cfa0e8d8728dd</id>
<content type='text'>
Link: https://lore.kernel.org/r/20210330071958.3788214-3-slyfox@gentoo.org
Fixes: f749d8b7a989 ("scsi: hpsa: Correct dev cmds outstanding for retried cmds")
CC: linux-ia64@vger.kernel.org
CC: storagedev@microchip.com
CC: linux-scsi@vger.kernel.org
CC: Joe Szczypek &lt;jszczype@redhat.com&gt;
CC: Scott Benesh &lt;scott.benesh@microchip.com&gt;
CC: Scott Teel &lt;scott.teel@microchip.com&gt;
CC: Tomas Henzl &lt;thenzl@redhat.com&gt;
CC: "Martin K. Petersen" &lt;martin.petersen@oracle.com&gt;
CC: Don Brace &lt;don.brace@microchip.com&gt;
Reported-by: John Paul Adrian Glaubitz &lt;glaubitz@physik.fu-berlin.de&gt;
Suggested-by: Don Brace &lt;don.brace@microchip.com&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Sergei Trofimovich &lt;slyfox@gentoo.org&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: Fix boot on ia64 (atomic_t alignment)</title>
<updated>2021-04-02T02:51:54Z</updated>
<author>
<name>Sergei Trofimovich</name>
<email>slyfox@gentoo.org</email>
</author>
<published>2021-03-30T07:19:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=02ec144292bc424a5800d45d4cb472c66e97c520'/>
<id>urn:sha1:02ec144292bc424a5800d45d4cb472c66e97c520</id>
<content type='text'>
Boot failure was observed on an HP rx3600 ia64 machine with RAID bus
controller: Hewlett-Packard Company Smart Array P600:

    kernel unaligned access to 0xe000000105dd8b95, ip=0xa000000100b87551
    kernel unaligned access to 0xe000000105dd8e95, ip=0xa000000100b87551
    hpsa 0000:14:01.0: Controller reports max supported commands of 0 Using 16 instead. Ensure that firmware is up to date.
    swapper/0[1]: error during unaligned kernel access

The unaligned access comes from 'struct CommandList' that happens to be
packed. Commit f749d8b7a989 ("scsi: hpsa: Correct dev cmds outstanding for
retried cmds") introduced unexpected padding and unaligned atomic_t from
natural alignment to something else.

This change removes packing annotation from a struct not intended to be
sent to controller as is. This restores natural `atomic_t` alignment.

The change was tested on the same rx3600 machine.

Link: https://lore.kernel.org/r/20210330071958.3788214-2-slyfox@gentoo.org
Fixes: f749d8b7a989 ("scsi: hpsa: Correct dev cmds outstanding for retried cmds")
CC: linux-ia64@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: storagedev@microchip.com
CC: linux-scsi@vger.kernel.org
CC: Joe Szczypek &lt;jszczype@redhat.com&gt;
CC: Scott Benesh &lt;scott.benesh@microchip.com&gt;
CC: Scott Teel &lt;scott.teel@microchip.com&gt;
CC: Tomas Henzl &lt;thenzl@redhat.com&gt;
CC: "Martin K. Petersen" &lt;martin.petersen@oracle.com&gt;
CC: Don Brace &lt;don.brace@microchip.com&gt;
Reported-by: John Paul Adrian Glaubitz &lt;glaubitz@physik.fu-berlin.de&gt;
Suggested-by: Don Brace &lt;don.brace@microchip.com&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Sergei Trofimovich &lt;slyfox@gentoo.org&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: Use __packed on individual structs, not header-wide</title>
<updated>2021-04-02T02:50:53Z</updated>
<author>
<name>Sergei Trofimovich</name>
<email>slyfox@gentoo.org</email>
</author>
<published>2021-03-30T07:19:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5482a9a1a8fd23fbb57afc6d409e12713aa93fa5'/>
<id>urn:sha1:5482a9a1a8fd23fbb57afc6d409e12713aa93fa5</id>
<content type='text'>
The hpsa driver uses data structures which contain a combination of driver
internals and commands sent directly to the hardware. To manage alignment
for the hardware portions the driver used #pragma pack(1).

Commit f749d8b7a989 ("scsi: hpsa: Correct dev cmds outstanding for retried
cmds") switched an existing variable from int to bool. Due to the pragma an
atomic_t in the same data structure ended up being misaligned and broke
boot on ia64.

Add __packed to every struct and union in the header file. Subsequent
commits will address the actual atomic_t misalignment regression.

The commit is a no-op at least on ia64:
    $ diff -u &lt;(objdump -d -r old.o) &lt;(objdump -d -r new.o)

Link: https://lore.kernel.org/r/20210330071958.3788214-1-slyfox@gentoo.org
Fixes: f749d8b7a989 ("scsi: hpsa: Correct dev cmds outstanding for retried cmds")
CC: linux-ia64@vger.kernel.org
CC: storagedev@microchip.com
CC: linux-scsi@vger.kernel.org
CC: Joe Szczypek &lt;jszczype@redhat.com&gt;
CC: Scott Benesh &lt;scott.benesh@microchip.com&gt;
CC: Scott Teel &lt;scott.teel@microchip.com&gt;
CC: Tomas Henzl &lt;thenzl@redhat.com&gt;
CC: "Martin K. Petersen" &lt;martin.petersen@oracle.com&gt;
CC: Don Brace &lt;don.brace@microchip.com&gt;
Reported-by: John Paul Adrian Glaubitz &lt;glaubitz@physik.fu-berlin.de&gt;
Suggested-by: Don Brace &lt;don.brace@microchip.com&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Sergei Trofimovich &lt;slyfox@gentoo.org&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: Correct dev cmds outstanding for retried cmds</title>
<updated>2021-02-23T03:43:48Z</updated>
<author>
<name>Don Brace</name>
<email>don.brace@microchip.com</email>
</author>
<published>2021-02-15T22:26:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f749d8b7a9896bc6e5ffe104cc64345037e0b152'/>
<id>urn:sha1:f749d8b7a9896bc6e5ffe104cc64345037e0b152</id>
<content type='text'>
Prevent incrementing device-&gt;commands_outstanding for ioaccel command
retries that are driver initiated.  If the command goes through the retry
path, the device-&gt;commands_outstanding counter has already accounted for
the number of commands outstanding to the device.  Only commands going
through function hpsa_cmd_resolve_events decrement this counter.

 - ioaccel commands go to either HBA disks or to logical volumes comprised
   of SSDs.

The extra increment is causing device resets to hang.

 - Resets wait for all device outstanding commands to complete before
   returning.

Replace unused field abort_pending with retry_pending. This is a
maintenance driver so these changes have the least impact/risk.

Link: https://lore.kernel.org/r/161342801747.29388.13045495968308188518.stgit@brunhilda
Tested-by: Joe Szczypek &lt;jszczype@redhat.com&gt;
Reviewed-by: Scott Benesh &lt;scott.benesh@microchip.com&gt;
Reviewed-by: Scott Teel &lt;scott.teel@microchip.com&gt;
Reviewed-by: Tomas Henzl &lt;thenzl@redhat.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microchip.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: Update copyright</title>
<updated>2020-09-03T02:49:06Z</updated>
<author>
<name>Don Brace</name>
<email>don.brace@microsemi.com</email>
</author>
<published>2020-08-28T19:07:42Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9e21760e4ce442b5f17e98cb9e6182d1d147a9d2'/>
<id>urn:sha1:9e21760e4ce442b5f17e98cb9e6182d1d147a9d2</id>
<content type='text'>
Add entry for Microchip.

Link: https://lore.kernel.org/r/159864166227.12131.3427629298809272795.stgit@brunhilda
Reviewed-by: Scott Teel &lt;scott.teel@microsemi.com&gt;
Reviewed-by: Scott Benesh &lt;scott.benesh@microsemi.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi</title>
<updated>2019-07-11T22:14:01Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-07-11T22:14:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ba6d10ab8014ac10d25ca513352b6665e73b5785'/>
<id>urn:sha1:ba6d10ab8014ac10d25ca513352b6665e73b5785</id>
<content type='text'>
Pull SCSI updates from James Bottomley:
 "This is mostly update of the usual drivers: qla2xxx, hpsa, lpfc, ufs,
  mpt3sas, ibmvscsi, megaraid_sas, bnx2fc and hisi_sas as well as the
  removal of the osst driver (I heard from Willem privately that he
  would like the driver removed because all his test hardware has
  failed). Plus number of minor changes, spelling fixes and other
  trivia.

  The big merge conflict this time around is the SPDX licence tags.
  Following discussion on linux-next, we believe our version to be more
  accurate than the one in the tree, so the resolution is to take our
  version for all the SPDX conflicts"

Note on the SPDX license tag conversion conflicts: the SCSI tree had
done its own SPDX conversion, which in some cases conflicted with the
treewide ones done by Thomas &amp; co.

In almost all cases, the conflicts were purely syntactic: the SCSI tree
used the old-style SPDX tags ("GPL-2.0" and "GPL-2.0+") while the
treewide conversion had used the new-style ones ("GPL-2.0-only" and
"GPL-2.0-or-later").

In these cases I picked the new-style one.

In a few cases, the SPDX conversion was actually different, though.  As
explained by James above, and in more detail in a pre-pull-request
thread:

 "The other problem is actually substantive: In the libsas code Luben
  Tuikov originally specified gpl 2.0 only by dint of stating:

  * This file is licensed under GPLv2.

  In all the libsas files, but then muddied the water by quoting GPLv2
  verbatim (which includes the or later than language). So for these
  files Christoph did the conversion to v2 only SPDX tags and Thomas
  converted to v2 or later tags"

So in those cases, where the spdx tag substantially mattered, I took the
SCSI tree conversion of it, but then also took the opportunity to turn
the old-style "GPL-2.0" into a new-style "GPL-2.0-only" tag.

Similarly, when there were whitespace differences or other differences
to the comments around the copyright notices, I took the version from
the SCSI tree as being the more specific conversion.

Finally, in the spdx conversions that had no conflicts (because the
treewide ones hadn't been done for those files), I just took the SCSI
tree version as-is, even if it was old-style.  The old-style conversions
are perfectly valid, even if the "-only" and "-or-later" versions are
perhaps more descriptive.

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (185 commits)
  scsi: qla2xxx: move IO flush to the front of NVME rport unregistration
  scsi: qla2xxx: Fix NVME cmd and LS cmd timeout race condition
  scsi: qla2xxx: on session delete, return nvme cmd
  scsi: qla2xxx: Fix kernel crash after disconnecting NVMe devices
  scsi: megaraid_sas: Update driver version to 07.710.06.00-rc1
  scsi: megaraid_sas: Introduce various Aero performance modes
  scsi: megaraid_sas: Use high IOPS queues based on IO workload
  scsi: megaraid_sas: Set affinity for high IOPS reply queues
  scsi: megaraid_sas: Enable coalescing for high IOPS queues
  scsi: megaraid_sas: Add support for High IOPS queues
  scsi: megaraid_sas: Add support for MPI toolbox commands
  scsi: megaraid_sas: Offload Aero RAID5/6 division calculations to driver
  scsi: megaraid_sas: RAID1 PCI bandwidth limit algorithm is applicable for only Ventura
  scsi: megaraid_sas: megaraid_sas: Add check for count returned by HOST_DEVICE_LIST DCMD
  scsi: megaraid_sas: Handle sequence JBOD map failure at driver level
  scsi: megaraid_sas: Don't send FPIO to RL Bypass queue
  scsi: megaraid_sas: In probe context, retry IOC INIT once if firmware is in fault
  scsi: megaraid_sas: Release Mutex lock before OCR in case of DCMD timeout
  scsi: megaraid_sas: Call disable_irq from process IRQ poll
  scsi: megaraid_sas: Remove few debug counters from IO path
  ...
</content>
</entry>
<entry>
<title>scsi: hpsa: correct device resets</title>
<updated>2019-06-18T23:46:18Z</updated>
<author>
<name>Don Brace</name>
<email>don.brace@microsemi.com</email>
</author>
<published>2019-05-07T18:32:33Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c5dfd106414f3e038fee5c6f0800fd55ed07b41d'/>
<id>urn:sha1:c5dfd106414f3e038fee5c6f0800fd55ed07b41d</id>
<content type='text'>
Correct a race condition that occurs between the reset handler and the
completion handler. There are times when the wait_event condition is
never met due to this race condition and the reset never completes.

The reset_pending field is NULL initially.

  t  Reset Handler Thread     Completion Thread
  -- --------------------     -----------------
  t1                          if (c-&gt;reset_pending)
  t2 c-&gt;reset_pending = dev;     if (atomic_dev_and_test(counter))
  t3 atomic_inc(counter)             wait_up_all(event_sync_wait_queue)
  t4
  t5 wait_event(...counter == 0)

Kernel.org Bugzilla:
           https://bugzilla.kernel.org/show_bug.cgi?id=1994350
           Bug 199435 - HPSA + P420i resetting logical Direct-Access
                        never complete

Reviewed-by: Justin Lindley &lt;justin.lindley@microsemi.com&gt;
Reviewed-by: David Carroll &lt;david.carroll@microsemi.com&gt;
Reviewed-by: Scott Teel &lt;scott.teel@microsemi.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: correct ioaccel2 chaining</title>
<updated>2019-06-07T13:19:08Z</updated>
<author>
<name>Don Brace</name>
<email>don.brace@microsemi.com</email>
</author>
<published>2019-06-03T21:43:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=625d7d3518875c4d303c652a198feaa13d9f52d9'/>
<id>urn:sha1:625d7d3518875c4d303c652a198feaa13d9f52d9</id>
<content type='text'>
- set ioaccel2_sg_element member 'chain_indicator' to IOACCEL2_LAST_SG for
  the last s/g element.

- set ioaccel2_sg_element member 'chain_indicator' to IOACCEL2_CHAIN when
  chaining.

Reviewed-by: Bader Ali - Saleh &lt;bader.alisaleh@microsemi.com&gt;
Reviewed-by: Scott Teel &lt;scott.teel@microsemi.com&gt;
Reviewed-by: Matt Perricone &lt;matt.perricone@microsemi.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: update discovery polling</title>
<updated>2017-10-25T08:55:18Z</updated>
<author>
<name>Bader Ali Saleh</name>
<email>bader.alisaleh@microsemi.com</email>
</author>
<published>2017-10-20T21:51:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4e1881840933587f42e3ad3788f2c392d19827a6'/>
<id>urn:sha1:4e1881840933587f42e3ad3788f2c392d19827a6</id>
<content type='text'>
Correct a corner case where newly created volumes are not detected
automatically on an external RAID controller that has no configured
volumes during initial device discovery.

The fix is to set the discovery_polling flag when an external RAID
controller is detected. This causes a device rescan every 20-30 seconds,
so that newly created volumes will be detected automatically.

Reviewed-by: Scott Benesh &lt;scott.benesh@microsemi.com&gt;
Reviewed-by: Scott Teel &lt;scott.teel@microsemi.com&gt;
Reviewed-by: Kevin Barnett &lt;kevin.barnett@microsemi.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
<entry>
<title>scsi: hpsa: add controller checkpoint</title>
<updated>2017-10-25T08:55:18Z</updated>
<author>
<name>Don Brace</name>
<email>don.brace@microsemi.com</email>
</author>
<published>2017-10-20T21:51:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b9b08cade0a6a523c185c5e371f05df63c623c34'/>
<id>urn:sha1:b9b08cade0a6a523c185c5e371f05df63c623c34</id>
<content type='text'>
Tell hpsa controller to generate a checkpoint for rare lockup
conditions.

Reviewed-by: Scott Benesh &lt;scott.benesh@microsemi.com&gt;
Reviewed-by: Scott Teel &lt;scott.teel@microsemi.com&gt;
Reviewed-by: Kevin Barnett &lt;kevin.barnett@microsemi.com&gt;
Signed-off-by: Don Brace &lt;don.brace@microsemi.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
</content>
</entry>
</feed>
