acpi/nfit: Fix memory corruption/Unregister mce decoder on failure
authorPrarit Bhargava <prarit@redhat.com>
Wed, 31 May 2017 17:32:00 +0000 (13:32 -0400)
committerDan Williams <dan.j.williams@intel.com>
Mon, 17 Jul 2017 18:43:58 +0000 (11:43 -0700)
commit7e700d2c59e5853c9126642976b4f5768f64c9b3
tree4aea083be87ca8ab1b2f474b64f77a8faac93401
parent43fe51e11c194a6576634585f81ba33e104194a5
acpi/nfit: Fix memory corruption/Unregister mce decoder on failure

nfit_init() calls nfit_mce_register() on module load.  When the module
load fails the nfit mce decoder is not unregistered.  The module's
memory is freed leaving the decoder chain referencing junk.  This will
cause panics as future registrations will reference the free'd memory.

Unregister the nfit mce decoder on module init failure.

[v2]: register and then unregister mce handler to avoid losing mce events
[v3]: also cleanup nfit workqueue

Fixes: 6839a6d96f4e ("nfit: do an ARS scrub on hitting a latent media error")
Cc: <stable@vger.kernel.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Len Brown <lenb@kernel.org>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
Cc: Linda Knippers <linda.knippers@hpe.com>
Cc: lszubowi@redhat.com
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/acpi/nfit/core.c