[SRU] [B/OEM-B] [PATCH 0/1] Blacklist Realtek Virtual IPMI device

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU] [B/OEM-B] [PATCH 0/1] Blacklist Realtek Virtual IPMI device

Kai-Heng Feng
BugLink: https://bugs.launchpad.net/bugs/1808353

[Impact]
System fails to do system suspend because of a non-working Realtek IPMI
device.

[Fix]
Quote from the patch:
"
Realtek has some sort of "Virtual" IPMI device on the PCI bus as a
KCS controller, but whatever it is, it's not one. Ignore it if seen.
"

[Test]
System suspend works after blacklisting the device.

[Regression Potential]
None. The driver has never worked for the device.

Corey Minyard (1):
  ipmi:pci: Blacklist a Realtek "IPMI" device

 drivers/char/ipmi/ipmi_si_pci.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[PATCH 1/1] ipmi:pci: Blacklist a Realtek "IPMI" device

Kai-Heng Feng
From: Corey Minyard <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1808353

Realtek has some sort of "Virtual" IPMI device on the PCI bus as a
KCS controller, but whatever it is, it's not one.  Ignore it if seen.

Reported-by: Chris Chiu <[hidden email]>
Signed-off-by: Corey Minyard <[hidden email]>
Tested-by: Daniel Drake <[hidden email]>
(cherry picked from commit bc48fa1b9d3b04106055b27078da824cd209865a)
Signed-off-by: Kai-Heng Feng <[hidden email]>
---
 drivers/char/ipmi/ipmi_si_pci.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/char/ipmi/ipmi_si_pci.c b/drivers/char/ipmi/ipmi_si_pci.c
index 27dd11c49d21..fff1e0fcc8c9 100644
--- a/drivers/char/ipmi/ipmi_si_pci.c
+++ b/drivers/char/ipmi/ipmi_si_pci.c
@@ -65,6 +65,15 @@ static int ipmi_pci_probe_regspacing(struct si_sm_io *io)
  return DEFAULT_REGSPACING;
 }
 
+static struct pci_device_id ipmi_pci_blacklist[] = {
+ /*
+ * This is a "Virtual IPMI device", whatever that is.  It appears
+ * as a KCS device by the class, but it is not one.
+ */
+ { PCI_VDEVICE(REALTEK, 0x816c) },
+ { 0, }
+};
+
 static int ipmi_pci_probe(struct pci_dev *pdev,
     const struct pci_device_id *ent)
 {
@@ -72,6 +81,9 @@ static int ipmi_pci_probe(struct pci_dev *pdev,
  int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK;
  struct si_sm_io io;
 
+ if (pci_match_id(ipmi_pci_blacklist, pdev))
+ return -ENODEV;
+
  memset(&io, 0, sizeof(io));
  io.addr_source = SI_PCI;
  dev_info(&pdev->dev, "probing via PCI");
--
2.17.1


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [PATCH 1/1] ipmi:pci: Blacklist a Realtek "IPMI" device

Kleber Souza
On 12/13/18 4:12 PM, Kai-Heng Feng wrote:

> From: Corey Minyard <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1808353
>
> Realtek has some sort of "Virtual" IPMI device on the PCI bus as a
> KCS controller, but whatever it is, it's not one.  Ignore it if seen.
>
> Reported-by: Chris Chiu <[hidden email]>
> Signed-off-by: Corey Minyard <[hidden email]>
> Tested-by: Daniel Drake <[hidden email]>
> (cherry picked from commit bc48fa1b9d3b04106055b27078da824cd209865a)
> Signed-off-by: Kai-Heng Feng <[hidden email]>

Clean cherry-pick, it looks safe to blacklist it.

Acked-by: Kleber Sacilotto de Souza <[hidden email]>

> ---
>  drivers/char/ipmi/ipmi_si_pci.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/char/ipmi/ipmi_si_pci.c b/drivers/char/ipmi/ipmi_si_pci.c
> index 27dd11c49d21..fff1e0fcc8c9 100644
> --- a/drivers/char/ipmi/ipmi_si_pci.c
> +++ b/drivers/char/ipmi/ipmi_si_pci.c
> @@ -65,6 +65,15 @@ static int ipmi_pci_probe_regspacing(struct si_sm_io *io)
>   return DEFAULT_REGSPACING;
>  }
>  
> +static struct pci_device_id ipmi_pci_blacklist[] = {
> + /*
> + * This is a "Virtual IPMI device", whatever that is.  It appears
> + * as a KCS device by the class, but it is not one.
> + */
> + { PCI_VDEVICE(REALTEK, 0x816c) },
> + { 0, }
> +};
> +
>  static int ipmi_pci_probe(struct pci_dev *pdev,
>      const struct pci_device_id *ent)
>  {
> @@ -72,6 +81,9 @@ static int ipmi_pci_probe(struct pci_dev *pdev,
>   int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK;
>   struct si_sm_io io;
>  
> + if (pci_match_id(ipmi_pci_blacklist, pdev))
> + return -ENODEV;
> +
>   memset(&io, 0, sizeof(io));
>   io.addr_source = SI_PCI;
>   dev_info(&pdev->dev, "probing via PCI");



--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [PATCH 1/1] ipmi:pci: Blacklist a Realtek "IPMI" device

Stefan Bader-2
In reply to this post by Kai-Heng Feng
On 13.12.18 16:12, Kai-Heng Feng wrote:

> From: Corey Minyard <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1808353
>
> Realtek has some sort of "Virtual" IPMI device on the PCI bus as a
> KCS controller, but whatever it is, it's not one.  Ignore it if seen.
>
> Reported-by: Chris Chiu <[hidden email]>
> Signed-off-by: Corey Minyard <[hidden email]>
> Tested-by: Daniel Drake <[hidden email]>
> (cherry picked from commit bc48fa1b9d3b04106055b27078da824cd209865a)
> Signed-off-by: Kai-Heng Feng <[hidden email]>
Acked-by: Stefan Bader <[hidden email]>

> ---
>  drivers/char/ipmi/ipmi_si_pci.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/drivers/char/ipmi/ipmi_si_pci.c b/drivers/char/ipmi/ipmi_si_pci.c
> index 27dd11c49d21..fff1e0fcc8c9 100644
> --- a/drivers/char/ipmi/ipmi_si_pci.c
> +++ b/drivers/char/ipmi/ipmi_si_pci.c
> @@ -65,6 +65,15 @@ static int ipmi_pci_probe_regspacing(struct si_sm_io *io)
>   return DEFAULT_REGSPACING;
>  }
>  
> +static struct pci_device_id ipmi_pci_blacklist[] = {
> + /*
> + * This is a "Virtual IPMI device", whatever that is.  It appears
> + * as a KCS device by the class, but it is not one.
> + */
> + { PCI_VDEVICE(REALTEK, 0x816c) },
> + { 0, }
> +};
> +
>  static int ipmi_pci_probe(struct pci_dev *pdev,
>      const struct pci_device_id *ent)
>  {
> @@ -72,6 +81,9 @@ static int ipmi_pci_probe(struct pci_dev *pdev,
>   int class_type = pdev->class & PCI_ERMC_CLASSCODE_TYPE_MASK;
>   struct si_sm_io io;
>  
> + if (pci_match_id(ipmi_pci_blacklist, pdev))
> + return -ENODEV;
> +
>   memset(&io, 0, sizeof(io));
>   io.addr_source = SI_PCI;
>   dev_info(&pdev->dev, "probing via PCI");
>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU] [B/OEM-B] [PATCH 0/1] Blacklist Realtek Virtual IPMI device

AceLan Kao
In reply to this post by Kai-Heng Feng
Acked-By: AceLan Kao <[hidden email]>

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED(B): [SRU] [B/OEM-B] [PATCH 0/1] Blacklist Realtek Virtual IPMI device

Khaled Elmously
In reply to this post by Kai-Heng Feng
On 2018-12-13 23:12:56 , Kai-Heng Feng wrote:

> BugLink: https://bugs.launchpad.net/bugs/1808353
>
> [Impact]
> System fails to do system suspend because of a non-working Realtek IPMI
> device.
>
> [Fix]
> Quote from the patch:
> "
> Realtek has some sort of "Virtual" IPMI device on the PCI bus as a
> KCS controller, but whatever it is, it's not one. Ignore it if seen.
> "
>
> [Test]
> System suspend works after blacklisting the device.
>
> [Regression Potential]
> None. The driver has never worked for the device.
>
> Corey Minyard (1):
>   ipmi:pci: Blacklist a Realtek "IPMI" device
>
>  drivers/char/ipmi/ipmi_si_pci.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> --
> 2.17.1
>
>
> --
> kernel-team mailing list
> [hidden email]
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team