smartpqi updates for ubuntu 18.04.2

Bug #1798208 reported by Don Brace on 2018-10-16
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Joseph Salisbury
Cosmic
Medium
Joseph Salisbury

Bug Description

== SRU Justification ==
Microsemi is requesting these five patches to be added to 18.04.2 to bring
the driver up to date with kernel.org and to correct issues seen
particularly on ARM systems. The 18.04.2 kernel will be 4.18 bases, so
this SRU request is for Cosmic.

All five of these commits cherry pick cleanly and are in mainline as of
v4.19-rc1.

== Fixes ==
957c5ab108c7 ("scsi: smartpqi: improve handling for sync requests")
26b390aba2a8 ("scsi: smartpqi: improve error checking for sync requests")
9f8d05fa9844 ("scsi: smartpqi: add inspur advantech ids")
dac12fbc7b0a ("scsi: smartpqi: fix critical ARM issue reading PQI index registers")
4ae5e9d159f8 ("scsi: smartpqi: bump driver version to 1.1.4-130")

== Regression Potential ==
Low. These five patches are limited to scsi/smartpqi.

This is a request to update the SmartPQI driver in Ubuntu kernel 18.04.2 by
pulling the following patches from upstream kernel version 4.19-rc7.

Microsemi would like added to Ubuntu 18.04.2 to bring the driver up to date with kernel.org and to
correct issues seen particularly on ARM systems.

These patches cherry-pick cleanly from:
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

0001-scsi-smartpqi-add-in-new-supported-controllers.patch
     commit b0f9408b14838566b2a9b26434fab667c2afb0ea
     No functionality change.
     Add in more supported controllers.
0002-scsi-smartpqi-workaround-fw-bug-for-oq-deletion.patch
     commit 339faa8150fd56891105bc69fc18f5d51b8a63dd
     Correct PQI operational queue deletion.
     Operational queues are deleted during resets.
0003-scsi-smartpqi-update-driver-version.patch
     commit 61c187e46ebb27f51b52bd0eb68b7f534a300184
     No functionality change.
     Need context for the next version change patch below.
0004-scsi-smartpqi-improve-handling-for-sync-requests.patch
     commit 957c5ab108c7d98369b7524daea532c0ebbcf845
     Correct driver active thread count when submitting internal commands.
0005-scsi-smartpqi-improve-error-checking-for-sync-reques.patch
     commit 26b390aba2a8f7b9dd5ce4e3ada9431de327da6d
     Retry INQUIRY operations.
0006-scsi-smartpqi-add-inspur-advantech-ids.patch
     commit 9f8d05fa98442de78d1ab30235b0cc656ed7aff0
     No functionality change.
     Add in more supported controllers.
0007-scsi-smartpqi-fix-critical-ARM-issue-reading-PQI-ind.patch
     commit dac12fbc7b0a433a160b89212a56e155c94f3a80
     Critical bug fix for ARM.
     ARM does not handle volatile variables.
0008-scsi-smartpqi-bump-driver-version-to-1.1.4-130.patch
     commit 4ae5e9d159f83392c98c4ed88dfc63f19745be38
     No functionality change.

There are some other patches but they are kernel-wide patches that affect other modules:
blk-mq-Allow-PCI-vector-offset-for-mapping-queues.patch
     commit f23f5bece686a76598335141a091934f7eb0998c
     This is a kernel-wide patch that affects multiple modules:
           block/blk-mq-pci.c
           drivers/nvme/host/pci.c
           drivers/scsi/qla2xxx/qla_os.c
           drivers/scsi/smartpqi/smartpqi_init.c
           include/linux/blk-mq-pci.h

commit 6396bb221514d2876fd6dc0aa2a1f240d99b37bb
Author: Kees Cook <email address hidden>
Date: Tue Jun 12 14:03:40 2018 -0700

    treewide: kzalloc() -> kcalloc()

commit 6da2ec56059c3c7a7e5f729e6349e74ace1e5c57
Author: Kees Cook <email address hidden>
Date: Tue Jun 12 13:55:00 2018 -0700

    treewide: kmalloc() -> kmalloc_array()

Don Brace (dabrace) wrote :

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 1798208

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Incomplete → Triaged
Jeff Lane (bladernr) wrote :

Assuming I did the git checkout correctly, these are all in 4.18 stable under the v4.18.16 tag

0001-scsi-smartpqi-add-in-new-supported-controllers.patch
     commit b0f9408b14838566b2a9b26434fab667c2afb0ea
     No functionality change.
     Add in more supported controllers.
0002-scsi-smartpqi-workaround-fw-bug-for-oq-deletion.patch
     commit 339faa8150fd56891105bc69fc18f5d51b8a63dd
     Correct PQI operational queue deletion.
     Operational queues are deleted during resets.
0003-scsi-smartpqi-update-driver-version.patch
     commit 61c187e46ebb27f51b52bd0eb68b7f534a300184
     No functionality change.
     Need context for the next version change patch below.

These following Microsemi patces are in 4.19 Mainline, but NOT yet in v4.18.16

0004-scsi-smartpqi-improve-handling-for-sync-requests.patch
     commit 957c5ab108c7d98369b7524daea532c0ebbcf845
     Correct driver active thread count when submitting internal commands.
0005-scsi-smartpqi-improve-error-checking-for-sync-reques.patch
     commit 26b390aba2a8f7b9dd5ce4e3ada9431de327da6d
     Retry INQUIRY operations.
0006-scsi-smartpqi-add-inspur-advantech-ids.patch
     commit 9f8d05fa98442de78d1ab30235b0cc656ed7aff0
     No functionality change.
     Add in more supported controllers.
0007-scsi-smartpqi-fix-critical-ARM-issue-reading-PQI-ind.patch
     commit dac12fbc7b0a433a160b89212a56e155c94f3a80
     Critical bug fix for ARM.
     ARM does not handle volatile variables.
0008-scsi-smartpqi-bump-driver-version-to-1.1.4-130.patch
     commit 4ae5e9d159f83392c98c4ed88dfc63f19745be38
     No functionality change.

These extra ones are already in v4.18.16 stable:
blk-mq-Allow-PCI-vector-offset-for-mapping-queues.patch
     commit f23f5bece686a76598335141a091934f7eb0998c
     This is a kernel-wide patch that affects multiple modules:

commit 6396bb221514d2876fd6dc0aa2a1f240d99b37bb
Author: Kees Cook <email address hidden>
Date: Tue Jun 12 14:03:40 2018 -0700

    treewide: kzalloc() -> kcalloc()

commit 6da2ec56059c3c7a7e5f729e6349e74ace1e5c57
Author: Kees Cook <email address hidden>
Date: Tue Jun 12 13:55:00 2018 -0700

    treewide: kmalloc() -> kmalloc_array()

NOTE: I'm digging into this a bit for my own experience/education, but hopefully it will also help someone out.

Jeff Lane (bladernr) wrote :

If it helps, also, again with the caveat that I'm doing this partially for my own education, the above also matches what I found in the git tree from kernel.ubuntu.com:

bladernr@galactica:~/development/git/ubuntu-kernel-git$ git checkout tags/v4.19
Previous HEAD position was 35a7f35ad1b1 Linux 4.19-rc8
HEAD is now at 84df9525b0c2 Linux 4.19
bladernr@galactica:~/development/git/ubuntu-kernel-git$ for x in `cat commits`; do if git log | grep -q $x; then echo "Commit $x: FOUND"; else echo "Commit $x: NOT FOUND"; fi; done
Commit b0f9408b14838566b2a9b26434fab667c2afb0ea: FOUND
Commit 339faa8150fd56891105bc69fc18f5d51b8a63dd: FOUND
Commit 61c187e46ebb27f51b52bd0eb68b7f534a300184: FOUND
Commit 957c5ab108c7d98369b7524daea532c0ebbcf845: FOUND
Commit 26b390aba2a8f7b9dd5ce4e3ada9431de327da6d: FOUND
Commit 9f8d05fa98442de78d1ab30235b0cc656ed7aff0: FOUND
Commit dac12fbc7b0a433a160b89212a56e155c94f3a80: FOUND
Commit 4ae5e9d159f83392c98c4ed88dfc63f19745be38: FOUND
Commit f23f5bece686a76598335141a091934f7eb0998c: FOUND
Commit 6396bb221514d2876fd6dc0aa2a1f240d99b37bb: FOUND
Commit 6da2ec56059c3c7a7e5f729e6349e74ace1e5c57: FOUND

bladernr@galactica:~/development/git/ubuntu-kernel-git$ git checkout tags/v4.18
Checking out files: 100% (11699/11699), done.
Previous HEAD position was 84df9525b0c2 Linux 4.19
HEAD is now at 94710cac0ef4 Linux 4.18
bladernr@galactica:~/development/git/ubuntu-kernel-git$ for x in `cat commits`; do if git log | grep -q $x; then echo "Commit $x: FOUND"; else echo "Commit $x: NOT FOUND"; fi; done
Commit b0f9408b14838566b2a9b26434fab667c2afb0ea: FOUND
Commit 339faa8150fd56891105bc69fc18f5d51b8a63dd: FOUND
Commit 61c187e46ebb27f51b52bd0eb68b7f534a300184: FOUND
Commit 957c5ab108c7d98369b7524daea532c0ebbcf845: NOT FOUND
Commit 26b390aba2a8f7b9dd5ce4e3ada9431de327da6d: NOT FOUND
Commit 9f8d05fa98442de78d1ab30235b0cc656ed7aff0: NOT FOUND
Commit dac12fbc7b0a433a160b89212a56e155c94f3a80: NOT FOUND
Commit 4ae5e9d159f83392c98c4ed88dfc63f19745be38: NOT FOUND
Commit f23f5bece686a76598335141a091934f7eb0998c: FOUND
Commit 6396bb221514d2876fd6dc0aa2a1f240d99b37bb: FOUND
Commit 6da2ec56059c3c7a7e5f729e6349e74ace1e5c57: FOUND

Changed in linux (Ubuntu Bionic):
status: New → Triaged
Changed in linux (Ubuntu Cosmic):
status: New → Triaged
Changed in linux (Ubuntu Bionic):
importance: Undecided → Medium
Changed in linux (Ubuntu Cosmic):
importance: Undecided → Medium
tags: added: cosmic kernel-da-key
no longer affects: linux (Ubuntu Bionic)
Changed in linux (Ubuntu Cosmic):
status: Triaged → In Progress
Changed in linux (Ubuntu):
status: Triaged → In Progress
Changed in linux (Ubuntu Cosmic):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu):
assignee: nobody → Joseph Salisbury (jsalisbury)
Joseph Salisbury (jsalisbury) wrote :

The following five commits are the only patches needed, since 18.04.2 will be based on the upstream 4.18 kernel, which already contains the other requested commits:

957c5ab108c7 ("scsi: smartpqi: improve handling for sync requests")
26b390aba2a8 ("scsi: smartpqi: improve error checking for sync requests")
9f8d05fa9844 ("scsi: smartpqi: add inspur advantech ids")
dac12fbc7b0a ("scsi: smartpqi: fix critical ARM issue reading PQI index registers")
4ae5e9d159f8 ("scsi: smartpqi: bump driver version to 1.1.4-130")

description: updated
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the five commits posed in comment #5. The test kernel can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1798208

Can you test this kernel and see if it resolves this bug?

Note about installing test kernels:
• If the test kernel is prior to 4.15(Bionic) you need to install the linux-image and linux-image-extra .deb packages.
• If the test kernel is 4.15(Bionic) or newer, you need to install the linux-modules, linux-modules-extra and linux-image-unsigned .deb packages.

Thanks in advance!

Stefan Bader (smb) on 2018-11-08
Changed in linux (Ubuntu Cosmic):
status: In Progress → Fix Committed
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-cosmic' to 'verification-done-cosmic'. If the problem still exists, change the tag 'verification-needed-cosmic' to 'verification-failed-cosmic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-cosmic
Gerry Morong (morongge) wrote :

Smartpqi driver in test kernel functions properly, tested on P408i controller.

tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Gerry Morong (morongge) wrote :

Updated tags: verification-done-cosmic

Launchpad Janitor (janitor) wrote :
Download full text (39.7 KiB)

This bug was fixed in the package linux - 4.18.0-12.13

---------------
linux (4.18.0-12.13) cosmic; urgency=medium

  * linux: 4.18.0-12.13 -proposed tracker (LP: #1802743)

  * [FEAT] Guest-dedicated Crypto Adapters (LP: #1787405)
    - s390/zcrypt: Add ZAPQ inline function.
    - s390/zcrypt: Review inline assembler constraints.
    - s390/zcrypt: Integrate ap_asm.h into include/asm/ap.h.
    - s390/zcrypt: fix ap_instructions_available() returncodes
    - KVM: s390: vsie: simulate VCPU SIE entry/exit
    - KVM: s390: introduce and use KVM_REQ_VSIE_RESTART
    - KVM: s390: refactor crypto initialization
    - s390: vfio-ap: base implementation of VFIO AP device driver
    - s390: vfio-ap: register matrix device with VFIO mdev framework
    - s390: vfio-ap: sysfs interfaces to configure adapters
    - s390: vfio-ap: sysfs interfaces to configure domains
    - s390: vfio-ap: sysfs interfaces to configure control domains
    - s390: vfio-ap: sysfs interface to view matrix mdev matrix
    - KVM: s390: interface to clear CRYCB masks
    - s390: vfio-ap: implement mediated device open callback
    - s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl
    - s390: vfio-ap: zeroize the AP queues
    - s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl
    - KVM: s390: Clear Crypto Control Block when using vSIE
    - KVM: s390: vsie: Do the CRYCB validation first
    - KVM: s390: vsie: Make use of CRYCB FORMAT2 clear
    - KVM: s390: vsie: Allow CRYCB FORMAT-2
    - KVM: s390: vsie: allow CRYCB FORMAT-1
    - KVM: s390: vsie: allow CRYCB FORMAT-0
    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-1
    - KVM: s390: vsie: allow guest FORMAT-1 CRYCB on host FORMAT-2
    - KVM: s390: vsie: allow guest FORMAT-0 CRYCB on host FORMAT-2
    - KVM: s390: device attrs to enable/disable AP interpretation
    - KVM: s390: CPU model support for AP virtualization
    - s390: doc: detailed specifications for AP virtualization
    - KVM: s390: fix locking for crypto setting error path
    - KVM: s390: Tracing APCB changes
    - s390: vfio-ap: setup APCB mask using KVM dedicated function
    - [Config:] Enable CONFIG_S390_AP_IOMMU and set CONFIG_VFIO_AP to module.

  * Bypass of mount visibility through userns + mount propagation (LP: #1789161)
    - mount: Retest MNT_LOCKED in do_umount
    - mount: Don't allow copying MNT_UNBINDABLE|MNT_LOCKED mounts

  * CVE-2018-18955: nested user namespaces with more than five extents
    incorrectly grant privileges over inode (LP: #1801924) // CVE-2018-18955
    - userns: also map extents in the reverse map to kernel IDs

  * kdump fail due to an IRQ storm (LP: #1797990)
    - SAUCE: x86/PCI: Export find_cap() to be used in early PCI code
    - SAUCE: x86/quirks: Add parameter to clear MSIs early on boot
    - SAUCE: x86/quirks: Scan all busses for early PCI quirks

  * crash in ENA driver on removing an interface (LP: #1802341)
    - SAUCE: net: ena: fix crash during ena_remove()

  * Ubuntu 18.04.1 - [s390x] Kernel panic while stressing network bonding
    (LP: #1797367)
    - s390/qeth: reduce hard-coded access to ccw channels
    - s390/qeth: sanitize strings in debug messages

  * Add checksum offload and T...

Changed in linux (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu):
status: In Progress → Fix Released
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-bionic
Andy Whitcroft (apw) on 2019-02-14
tags: added: kernel-fixup-verification-needed-bionic
removed: verification-needed-bionic
Brad Figg (brad-figg) on 2019-02-14
tags: added: verification-needed-bionic
Andy Whitcroft (apw) wrote :

This bug was erroneously marked for verification in bionic; verification is not required and verification-needed-bionic is being removed.

tags: removed: verification-needed-bionic
tags: added: verification-done-bionic
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers