[Bionic] ipmi: Remove ACPI SPMI probing from the SSIF (I2C) driver

Bug #1799276 reported by Manoj Iyer on 2018-10-22
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Critical
Canonical Kernel Team
Bionic
Critical
Unassigned

Bug Description

[Impact]
The IPMI spec states:

The purpose of the SPMI Table is to provide a mechanism that can be used by the OSPM (an ACPI term for “OS Operating System-directed configuration and Power Management” essentially meaning an ACPI-aware OS or OS loader) very early in the boot process, e.g., before the ability to execute ACPI control methods in the OS is available.

When we are probing IPMI in Linux, ACPI control methods are available, so we shouldn't be probing using SPMI. It could cause some confusion during the probing process.

[Fix]
Fixed upstream in 4.17:
commit 4866b1dce0389013a268f0ab63f7229b30c6e5fe
Author: Corey Minyard <email address hidden>
Date: Thu Mar 8 15:00:28 2018 -0600

    ipmi: Remove ACPI SPMI probing from the SSIF (I2C) driver

[Test]
-- Test case --
for i in {1..500}; do sudo modprobe -r ipmi_ssif; sleep 2s ; sudo modprobe ipmi_ssif || exit; done
--------------

-- Before Applying the patch --
Jun 19 18:53:04 starbuck kernel: [ 126.351580] ipmi_ssif 0-000e: Found new BMC (man_id: 0x000000, prod_id: 0x0202, dev_id: 0x20)
Jun 19 18:53:06 starbuck kernel: [ 128.725391] ipmi_ssif: probe of dmi-ipmi-ssif.1 failed with error -17

-- With patch applied --
Oct 19 19:59:49 starbuck kernel: [ 1501.699109] IPMI SSIF Interface driver
Oct 19 19:59:49 starbuck kernel: [ 1501.730439] ipmi_ssif: Trying SMBIOS-specified SSIF interface at i2c address 0xe, adapter xlp9xx-i2c, slave address 0x20
Oct 19 19:59:49 starbuck kernel: [ 1501.862509] ipmi_ssif 0-000e: Found new BMC (man_id: 0x000000, prod_id: 0x0202, dev_id: 0x20)

[Regression Potential]
This patch applies to ipmi_ssif driver and was tested on ARM64 Cavium ThunderX2 platform and no regressions were found.

CVE References

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 1799276

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
tags: added: bionic
Changed in linux (Ubuntu Bionic):
status: New → Triaged
Changed in linux (Ubuntu):
status: Incomplete → Triaged
Changed in linux (Ubuntu Bionic):
importance: Undecided → Critical
Manoj Iyer (manjo) wrote :

Regression tested on ARM64 Hisilicon D06 and found no regressions.

Stefan Bader (smb) wrote :

Requested patch is part of upstream v4.17 so fix released for Cosmic and later.

Changed in linux (Ubuntu):
status: Triaged → Fix Released
Changed in linux (Ubuntu Bionic):
status: Triaged → In Progress
Changed in linux (Ubuntu Bionic):
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-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
Manoj Iyer (manjo) wrote :

-- bionic --

ubuntu@hotdog:~$ uname -a
Linux hotdog 4.15.0-42-generic #45-Ubuntu SMP Thu Nov 15 19:31:49 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@hotdog:~$

ubuntu@hotdog:~$ for i in {1..500}; do sudo modprobe -r ipmi_ssif; sleep 2s ; sudo modprobe ipmi_ssif || exit; done
ubuntu@hotdog:~$

--- dmesg ---
Nov 20 17:42:30 hotdog kernel: [ 1326.490808] IPMI SSIF Interface driver
Nov 20 17:42:30 hotdog kernel: [ 1326.522331] ipmi_ssif: Trying SMBIOS-specified SSIF interface at i2c address 0xe, adapter xlp9xx-i2c, slave address 0x20
Nov 20 17:42:30 hotdog kernel: [ 1326.638455] ipmi_ssif 0-000e: Found new BMC (man_id: 0x00b3d1, prod_id: 0x0001, dev_id: 0x20)

Works as expected, no errors in dmesg.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Launchpad Janitor (janitor) wrote :
Download full text (3.1 KiB)

This bug was fixed in the package linux - 4.15.0-42.45

---------------
linux (4.15.0-42.45) bionic; urgency=medium

  * linux: 4.15.0-42.45 -proposed tracker (LP: #1803592)

  * [FEAT] Guest-dedicated Crypto Adapters (LP: #1787405)
    - KVM: s390: reset crypto attributes for all vcpus
    - 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
    - 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
    - s390/zcrypt: remove VLA usage from the AP bus
    - s390/zcrypt: Remove deprecated ioctls.
    - s390/zcrypt: Remove deprecated zcrypt proc interface.
    - s390/zcrypt: Support up to 256 crypto adapters.
    - [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

 -- Thadeu Lima de Souza Cascardo <email address hidden> Thu, 15 Nov 2018 17:01:46 ...

Read more...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers