• Prarit Bhargava's avatar
    acpi/nfit: Fix memory corruption/Unregister mce decoder on failure · 7e700d2c
    Prarit Bhargava authored
    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: 6839a6d9 ("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: default avatarJeff Moyer <jmoyer@redhat.com>
    Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
    Reviewed-by: default avatarVishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    7e700d2c
core.c 85.5 KB