Bug 38152

Summary: acpi_power_off lockdep splat
Product: ACPI Reporter: Maciej Rutecki (maciej.rutecki)
Component: ACPICA-CoreAssignee: acpi_acpica-core (acpi_acpica-core)
Status: CLOSED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: bp, florian, lenb, maciej.rutecki, rjw
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.0-rc3 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 36912    

Description Maciej Rutecki 2011-06-23 19:04:42 UTC
Subject    : acpi_power_off lockdep splat
Submitter  : Borislav Petkov <bp@alien8.de>
Date       : 2011-06-19 13:30
Message-ID : 20110619133049.GA18168@liondog.tnic
References : http://marc.info/?l=linux-kernel&m=130849028317365&w=2

This entry is being used for tracking a regression from 2.6.39. Please don't
close it until the problem is fixed in the mainline.
Comment 1 Florian Mickler 2011-07-02 19:35:12 UTC
Patch: https://lkml.org/lkml/2011/7/2/54
Comment 2 Rafael J. Wysocki 2011-07-10 09:44:43 UTC
Ignore-Patch : https://lkml.org/lkml/2011/7/2/54

Handled-By : Rafael J. Wysocki <rjw@sisk.pl>
Patch : https://patchwork.kernel.org/patch/950852/
Comment 3 Len Brown 2011-07-30 06:31:14 UTC
shipped in v3.0:


commit 07e49a7a31153a95caa270d8ad7350a0bcd4d511
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Wed Jul 6 20:44:25 2011 +0200

    ACPI: Fix lockdep false positives in acpi_power_off()
    
    All ACPICA locks are allocated by the same function,
    acpi_os_create_lock(), with the help of a local variable called
    "lock".  Thus, when lockdep is enabled, it uses "lock" as the
    name of all those locks and regards them as instances of the same
    lock, which causes it to report possible locking problems with them
    when there aren't any.
    
    To work around this problem, define acpi_os_create_lock() as a macro
    and make it pass its argument to spin_lock_init(), so that lockdep
    uses it as the name of the new lock.  Define this macron in a
    Linux-specific file, to minimize the resulting modifications of
    the OS-independent ACPICA parts.
    
    This change is based on an earlier patch from Andrea Righi and it
    addresses a regression from 2.6.39 tracked as
    https://bugzilla.kernel.org/show_bug.cgi?id=38152
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Reported-and-tested-by: Borislav Petkov <bp@alien8.de>
    Tested-by: Andrea Righi <andrea@betterlinux.com>
    Reviewed-by: Florian Mickler <florian@mickler.org>
    Signed-off-by: Len Brown <len.brown@intel.com>