2018-12-05 02:23:33

by Jerry Hoemann

[permalink] [raw]
Subject: [PATCH 1/1] watchdog/hpwdt: Do not claim unsupported hardware

Do not claim when SSID 0x0289 as the watchdog features
are not enabled/validated by the firmware.

Signed-off-by: Jerry Hoemann <[email protected]>
---
drivers/watchdog/hpwdt.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index 9356230..b99ef0a4 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -281,6 +281,17 @@ static int hpwdt_init_one(struct pci_dev *dev,
dev->subsystem_device == 0x1979)
return -ENODEV;

+ /*
+ * Ignore unsupported hardware
+ */
+ if (dev->vendor == PCI_VENDOR_ID_HP &&
+ dev->device == 0x3306 &&
+ dev->subsystem_vendor == PCI_VENDOR_ID_HP_3PAR &&
+ dev->subsystem_device == 0x0289) {
+ dev_info(&dev->dev, "Not supported on this platform\n");
+ return -ENODEV;
+ }
+
if (pci_enable_device(dev)) {
dev_warn(&dev->dev,
"Not possible to enable PCI Device: 0x%x:0x%x.\n",
--
1.8.3.1



2018-12-05 02:48:56

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 1/1] watchdog/hpwdt: Do not claim unsupported hardware

On 12/4/18 6:22 PM, Jerry Hoemann wrote:
> Do not claim when SSID 0x0289 as the watchdog features
> are not enabled/validated by the firmware.
>
> Signed-off-by: Jerry Hoemann <[email protected]>
> ---
> drivers/watchdog/hpwdt.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
> index 9356230..b99ef0a4 100644
> --- a/drivers/watchdog/hpwdt.c
> +++ b/drivers/watchdog/hpwdt.c
> @@ -281,6 +281,17 @@ static int hpwdt_init_one(struct pci_dev *dev,
> dev->subsystem_device == 0x1979)
> return -ENODEV;
>
> + /*
> + * Ignore unsupported hardware
> + */
> + if (dev->vendor == PCI_VENDOR_ID_HP &&
> + dev->device == 0x3306 &&
> + dev->subsystem_vendor == PCI_VENDOR_ID_HP_3PAR &&
> + dev->subsystem_device == 0x0289) {
> + dev_info(&dev->dev, "Not supported on this platform\n");
> + return -ENODEV;
> + }
> +

Please use a pci_device_id table with PCI_DEVICE_SUB() to create
a blacklist, and pci_match_id() to match against it.

Thanks,
Guenter

> if (pci_enable_device(dev)) {
> dev_warn(&dev->dev,
> "Not possible to enable PCI Device: 0x%x:0x%x.\n",
>