acpi, nfit: check for the correct event code in notifications
authorVishal Verma <vishal.l.verma@intel.com>
Fri, 19 Aug 2016 20:40:58 +0000 (14:40 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Oct 2016 07:01:34 +0000 (03:01 -0400)
commit c09f12186d6b03b798832d95289af76495990192 upstream.

Commit 209851649dc4 "acpi: nfit: Add support for hot-add" added
support for _FIT notifications, but it neglected to verify the
notification event code matches the one in the ACPI spec for
"NFIT Update". Currently there is only one code in the spec, but
once additional codes are added, older kernels (without this fix)
will misbehave by assuming all event notifications are for an
NFIT Update.

Fixes: 209851649dc4 ("acpi: nfit: Add support for hot-add")
Cc: <stable@vger.kernel.org>
Cc: <linux-acpi@vger.kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Reported-by: Linda Knippers <linda.knippers@hpe.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/nfit.c
drivers/acpi/nfit.h

index 5230e8449d306cbd5d2511469ccfb3b2f3e16a42..c097f477c74c19a75c9300d6e99306c4479f35a5 100644 (file)
@@ -1806,6 +1806,9 @@ static void acpi_nfit_notify(struct acpi_device *adev, u32 event)
 
        dev_dbg(dev, "%s: event: %d\n", __func__, event);
 
+       if (event != NFIT_NOTIFY_UPDATE)
+               return;
+
        device_lock(dev);
        if (!dev->driver) {
                /* dev->driver may be null if we're being removed */
index 3d549a3836590bb9dd55f6dd14dd8619698597ab..13d6ec1ff055d602738a92a576dd737ac777af22 100644 (file)
@@ -45,6 +45,10 @@ enum {
        ND_BLK_DCR_LATCH = 2,
 };
 
+enum nfit_root_notifiers {
+       NFIT_NOTIFY_UPDATE = 0x80,
+};
+
 struct nfit_spa {
        struct acpi_nfit_system_address *spa;
        struct list_head list;