• Rafael J. Wysocki's avatar
    ACPI: OSL: Allow Notify () handlers to run on all CPUs · e2ffcda1
    Rafael J. Wysocki authored
    Notify () handlers, like GPE handlers, are only allowed to run on CPU0
    now out of the concern that they might trigger an SMM trap leading to
    memory corruption.  Namely, in some cases, SMM code might corrupt memory
    if not run on CPU0.
    
    However, Notify () handlers are registered by kernel code and they
    are not likely to evaluate AML that would trigger an SMM trap.  In
    fact, many of them don't even evaluate any AML at all and even if
    they do, that AML may as well be evaluated in other code paths.  In
    other words, they are not special from the AML evaluation perspective,
    so there is no real reason to treat them in any special way.
    
    Accordingly, allow Notify () handlers, unlike GPE handlers, to be
    executed by all CPUs in the system.
    
    Also adjust the allocation of the "notify" workqueue to allow multiple
    handlers to be executed at the same time, because they need not be
    serialized.
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    e2ffcda1
osl.c 40.5 KB