03 Oct, 2012

1 commit


17 Jul, 2012

1 commit


29 Mar, 2012

1 commit


01 Nov, 2011

1 commit

  • This file had an include of module.h which was probably added
    in relation to this line:

    #define ACPI_EXPORT_SYMBOL(symbol) EXPORT_SYMBOL(symbol);

    However, we really expect symbol exporters to grab export.h
    themselves, and since this is only a define, we can remove
    the module.h include without aclinux.h itself causing any
    compile issues.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

14 Jul, 2011

1 commit

  • 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
    Reported-and-tested-by: Borislav Petkov
    Tested-by: Andrea Righi
    Reviewed-by: Florian Mickler
    Signed-off-by: Len Brown

    Rafael J. Wysocki
     

19 Jan, 2011

1 commit


01 Oct, 2010

1 commit

  • Change definition of acpi_thread_id to always be a u64. This
    simplifies the code, especially any printf output. u64 is
    the only common data type for all thread_id types across all
    operating systems. We now force the OSL to cast the native
    thread_id type to u64 before returning the value to ACPICA
    (via acpi_os_get_thread_id).

    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     

12 Aug, 2010

1 commit

  • The ACPI_PREEMPTION_POINT() logic was introduced in commit 8bd108d
    (ACPICA: add preemption point after each opcode parse). The follow up
    commits abe1dfab6, 138d15692, c084ca70 tried to fix the preemption logic
    back and forth, but nobody noticed that the usage of
    in_atomic_preempt_off() in that context is wrong.

    The check which guards the call of cond_resched() is:

    if (!in_atomic_preempt_off() && !irqs_disabled())

    in_atomic_preempt_off() is not intended for general use as the comment
    above the macro definition clearly says:

    * Check whether we were atomic before we did preempt_disable():
    * (used by the scheduler, *after* releasing the kernel lock)

    On a CONFIG_PREEMPT=n kernel the usage of in_atomic_preempt_off() works by
    accident, but with CONFIG_PREEMPT=y it's just broken.

    The whole purpose of the ACPI_PREEMPTION_POINT() is to reduce the latency
    on a CONFIG_PREEMPT=n kernel, so make ACPI_PREEMPTION_POINT() depend on
    CONFIG_PREEMPT=n and remove the in_atomic_preempt_off() check.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16210

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Thomas Gleixner
    Cc: Len Brown
    Cc: Francois Valenduc
    Cc: Lin Ming
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     

23 Jan, 2010

1 commit


16 Jan, 2010

1 commit

  • commit 8bd108d adds preemption point after each opcode parse, then
    a sleeping function called from invalid context bug was founded
    during suspend/resume stage. this was fixed in commit abe1dfa by
    don't cond_resched when irq_disabled. But recent commit 138d156 changes
    the behaviour to don't cond_resched when in_atomic. This makes the
    sleeping function called from invalid context bug happen again, which
    is reported in http://lkml.org/lkml/2009/12/1/371.

    This patch also fixes http://bugzilla.kernel.org/show_bug.cgi?id=14483

    Reported-and-bisected-by: Larry Finger
    Reported-and-bisected-by: Justin P. Mattock
    Signed-off-by: Xiaotian Feng
    Acked-by: Alexey Starikovskiy
    Signed-off-by: Len Brown

    Xiaotian Feng
     

30 Aug, 2009

1 commit


27 May, 2009

1 commit

  • Merge the OSL with the actual file used by Linux, so that the
    file does not require patching when integrated with Linux. General
    cleanup and some restructuring.

    Signed-off-by: Bob Moore
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Bob Moore
     

09 Jan, 2009

1 commit


31 Dec, 2008

2 commits


19 Dec, 2008

1 commit

  • The ACPI interpreter usually runs with irqs enabled.
    However, during suspend/resume it runs with
    irqs disabled to evaluate _GTS/_BFS, as well as
    by irqrouter_resume() which evaluates _CRS, _PRS, _SRS.

    http://bugzilla.kernel.org/show_bug.cgi?id=12252

    Signed-off-by: Wu Fengguang
    Signed-off-by: Len Brown

    Wu Fengguang
     

23 Oct, 2008

1 commit


24 Apr, 2008

1 commit


03 Jul, 2007

1 commit


10 May, 2007

1 commit


03 Feb, 2007

1 commit

  • Added 2007 copyright to all module headers and signons. This affects
    virtually every file in the ACPICA core subsystem, iASL compiler,
    and the utilities.

    Signed-off-by: Alexey Starikovskiy
    Signed-off-by: Len Brown

    Bob Moore
     

08 Dec, 2006

1 commit

  • Replace all uses of kmem_cache_t with struct kmem_cache.

    The patch was generated using the following script:

    #!/bin/sh
    #
    # Replace one string by another in all the kernel sources.
    #

    set -e

    for file in `find * -name "*.c" -o -name "*.h"|xargs grep -l $1`; do
    quilt add $file
    sed -e "1,\$s/$1/$2/g" $file >/tmp/$$
    mv /tmp/$$ $file
    quilt refresh
    done

    The script was run like this

    sh replace kmem_cache_t "struct kmem_cache"

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

10 Jul, 2006

3 commits

  • Len Brown
     
  • Replace acpi_in_resume with a more general hack
    to check irqs_disabled() on any kmalloc() from ACPI.
    While setting (system_state != SYSTEM_RUNNING) on resume
    seemed more general, Andrew Morton preferred this approach.

    http://bugzilla.kernel.org/show_bug.cgi?id=3469

    Make acpi_os_allocate() into an inline function to
    allow /proc/slab_allocators to work.

    Delete some memset() that could fault on allocation failure.

    Signed-off-by: Len Brown

    Len Brown
     
  • Linux mutexes and the debug code that that reference
    acpi_os_get_thread_id() are happy with 0.
    But the AML mutexes in exmutex.c expect a unique non-zero
    number for each thread - as they track this thread_id
    to permit the mutex re-entrancy defined by the ACPI spec.

    http://bugzilla.kernel.org/show_bug.cgi?id=6687

    Signed-off-by: Len Brown

    Len Brown
     

28 Jun, 2006

1 commit

  • Implemented a new acpi_spinlock type for the OSL lock
    interfaces. This allows the type to be customized to
    the host OS for improved efficiency (since a spinlock is
    usually a very small object.)

    Implemented support for "ignored" bits in the ACPI
    registers. According to the ACPI specification, these
    bits should be preserved when writing the registers via
    a read/modify/write cycle. There are 3 bits preserved
    in this manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9],
    and PM1_STATUS[11].
    http://bugzilla.kernel.org/show_bug.cgi?id=3691

    Implemented the initial deployment of new OSL mutex
    interfaces. Since some host operating systems have
    separate mutex and semaphore objects, this feature was
    requested. The base code now uses mutexes (and the new
    mutex interfaces) wherever a binary semaphore was used
    previously. However, for the current release, the mutex
    interfaces are defined as macros to map them to the
    existing semaphore interfaces.

    Fixed several problems with the support for the control
    method SyncLevel parameter. The SyncLevel now works
    according to the ACPI specification and in concert with the
    Mutex SyncLevel parameter, since the current SyncLevel is
    a property of the executing thread. Mutual exclusion for
    control methods is now implemented with a mutex instead
    of a semaphore.

    Fixed three instances of the use of the C shift operator
    in the bitfield support code (exfldio.c) to avoid the use
    of a shift value larger than the target data width. The
    behavior of C compilers is undefined in this case and can
    cause unpredictable results, and therefore the case must
    be detected and avoided. (Fiodor Suietov)

    Added an info message whenever an SSDT or OEM table
    is loaded dynamically via the Load() or LoadTable()
    ASL operators. This should improve debugging capability
    since it will show exactly what tables have been loaded
    (beyond the tables present in the RSDT/XSDT.)

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

23 Jun, 2006

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (65 commits)
    ACPI: suppress power button event on S3 resume
    ACPI: resolve merge conflict between sem2mutex and processor_perflib.c
    ACPI: use for_each_possible_cpu() instead of for_each_cpu()
    ACPI: delete newly added debugging macros in processor_perflib.c
    ACPI: UP build fix for bugzilla-5737
    Enable P-state software coordination via _PDC
    P-state software coordination for speedstep-centrino
    P-state software coordination for acpi-cpufreq
    P-state software coordination for ACPI core
    ACPI: create acpi_thermal_resume()
    ACPI: create acpi_fan_suspend()/acpi_fan_resume()
    ACPI: pass pm_message_t from acpi_device_suspend() to root_suspend()
    ACPI: create acpi_device_suspend()/acpi_device_resume()
    ACPI: replace spin_lock_irq with mutex for ec poll mode
    ACPI: Allow a WAN module enable/disable on a Thinkpad X60.
    sem2mutex: acpi, acpi_link_lock
    ACPI: delete unused acpi_bus_drivers_lock
    sem2mutex: drivers/acpi/processor_perflib.c
    ACPI add ia64 exports to build acpi_memhotplug as a module
    ACPI: asus_acpi_init(): propagate correct return value
    ...

    Manual resolve of conflicts in:

    arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
    arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
    include/acpi/processor.h

    Linus Torvalds
     

26 Apr, 2006

1 commit


01 Apr, 2006

2 commits

  • acpi_os_get_thread_id() is used only for debugging
    code that is not enabled on Linux, so stub it out.

    Signed-off-by: Len Brown

    Len Brown
     
  • Tagged all external interfaces to the subsystem with the
    new ACPI_EXPORT_SYMBOL macro. This macro can be defined
    as necessary to assist kernel integration. For Linux,
    the macro resolves to the EXPORT_SYMBOL macro. The default
    definition is NULL.

    Added the ACPI_THREAD_ID type for the return value from
    acpi_os_get_thread_id(). This allows the host to define this
    as necessary to simplify kernel integration. The default
    definition is ACPI_NATIVE_UINT.

    Valery Podrezov fixed two interpreter problems related
    to error processing, the deletion of objects, and placing
    invalid pointers onto the internal operator result stack.
    http://bugzilla.kernel.org/show_bug.cgi?id=6028
    http://bugzilla.kernel.org/show_bug.cgi?id=6151

    Increased the reference count threshold where a warning is
    emitted for large reference counts in order to eliminate
    unnecessary warnings on systems with large namespaces
    (especially 64-bit.) Increased the value from 0x400
    to 0x800.

    Due to universal disagreement as to the meaning of the
    'c' in the calloc() function, the ACPI_MEM_CALLOCATE
    macro has been renamed to ACPI_ALLOCATE_ZEROED so that the
    purpose of the interface is 'clear'. ACPI_MEM_ALLOCATE and
    ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and ACPI_FREE.

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

31 Jan, 2006

1 commit

  • Implemented support in the Resource Manager to allow
    unresolved namestring references within resource package
    objects for the _PRT method. This support is in addition
    to the previously implemented unresolved reference
    support within the AML parser. If the interpreter slack
    mode is enabled (true on Linux unless acpi=strict),
    these unresolved references will be passed through
    to the caller as a NULL package entry.
    http://bugzilla.kernel.org/show_bug.cgi?id=5741

    Implemented and deployed new macros and functions for
    error and warning messages across the subsystem. These
    macros are simpler and generate less code than their
    predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION,
    ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_*
    macros.

    Implemented the acpi_cpu_flags type to simplify host OS
    integration of the Acquire/Release Lock OSL interfaces.
    Suggested by Steven Rostedt and Andrew Morton.

    Fixed a problem where Alias ASL operators are sometimes
    not correctly resolved. causing AE_AML_INTERNAL
    http://bugzilla.kernel.org/show_bug.cgi?id=5189
    http://bugzilla.kernel.org/show_bug.cgi?id=5674

    Fixed several problems with the implementation of the
    ConcatenateResTemplate ASL operator. As per the ACPI
    specification, zero length buffers are now treated as a
    single EndTag. One-length buffers always cause a fatal
    exception. Non-zero length buffers that do not end with
    a full 2-byte EndTag cause a fatal exception.

    Fixed a possible structure overwrite in the
    AcpiGetObjectInfo external interface. (With assistance
    from Thomas Renninger)

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

20 Jan, 2006

1 commit

  • Added 2006 copyright.

    At SuSE's suggestion, enabled all error messages
    without enabling function tracing, ie with CONFIG_ACPI_DEBUG=n

    Replaced all instances of the ACPI_DEBUG_PRINT macro invoked at
    the ACPI_DB_ERROR and ACPI_DB_WARN debug levels with
    the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros,
    respectively. This preserves all error and warning messages
    in the non-debug version of the ACPICA code (this has been
    referred to as the "debug lite" option.) Over 200 cases
    were converted to create a total of over 380 error/warning
    messages across the ACPICA code. This increases the code
    and data size of the default non-debug version by about 13K.
    Added ACPI_NO_ERROR_MESSAGES flag to enable deleting all messages.
    The size of the debug version remains about the same.

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

10 Dec, 2005

1 commit

  • Fixed a problem in the AML parser where the method thread
    count could be decremented below zero if any errors
    occurred during the method parse phase. This should
    eliminate AE_AML_METHOD_LIMIT exceptions seen on some
    machines. This also fixed a related regression with the
    mechanism that detects and corrects methods that cannot
    properly handle reentrancy (related to the deployment of
    the new OwnerId mechanism.)

    Eliminated the pre-parsing of control methods (to detect
    errors) during table load. Related to the problem above,
    this was causing unwind issues if any errors occurred
    during the parse, and it seemed to be overkill. A table
    load should not be aborted if there are problems with
    any single control method, thus rendering this feature
    rather pointless.

    Fixed a problem with the new table-driven resource manager
    where an internal buffer overflow could occur for small
    resource templates.

    Implemented a new external interface, acpi_get_vendor_resource()
    This interface will find and return a vendor-defined
    resource descriptor within a _CRS or _PRS
    method via an ACPI 3.0 UUID match. (from Bjorn Helgaas)

    Removed the length limit (200) on string objects as
    per the upcoming ACPI 3.0A specification. This affects
    the following areas of the interpreter: 1) any implicit
    conversion of a Buffer to a String, 2) a String object
    result of the ASL Concatentate operator, 3) the String
    object result of the ASL ToString operator.

    Signed-off-by: Bob Moore
    Signed-off-by: Len Brown

    Bob Moore
     

05 Aug, 2005

1 commit


14 Jul, 2005

1 commit

  • ACPICA 20050617:

    Moved the object cache operations into the OS interface
    layer (OSL) to allow the host OS to handle these operations
    if desired (for example, the Linux OSL will invoke the
    slab allocator). This support is optional; the compile
    time define ACPI_USE_LOCAL_CACHE may be used to utilize
    the original cache code in the ACPI CA core. The new OSL
    interfaces are shown below. See utalloc.c for an example
    implementation, and acpiosxf.h for the exact interface
    definitions. Thanks to Alexey Starikovskiy.
    acpi_os_create_cache
    acpi_os_delete_cache
    acpi_os_purge_cache
    acpi_os_acquire_object
    acpi_os_release_object

    Modified the interfaces to acpi_os_acquire_lock and
    acpi_os_release_lock to return and restore a flags
    parameter. This fits better with many OS lock models.
    Note: the current execution state (interrupt handler
    or not) is no longer passed to these interfaces. If
    necessary, the OSL must determine this state by itself, a
    simple and fast operation. Thanks to Alexey Starikovskiy.

    Fixed a problem in the ACPI table handling where a valid
    XSDT was assumed present if the revision of the RSDP
    was 2 or greater. According to the ACPI specification,
    the XSDT is optional in all cases, and the table manager
    therefore now checks for both an RSDP >=2 and a valid
    XSDT pointer. Otherwise, the RSDT pointer is used.
    Some ACPI 2.0 compliant BIOSs contain only the RSDT.

    Fixed an interpreter problem with the Mid() operator in the
    case of an input string where the resulting output string
    is of zero length. It now correctly returns a valid,
    null terminated string object instead of a string object
    with a null pointer.

    Fixed a problem with the control method argument handling
    to allow a store to an Arg object that already contains an
    object of type Device. The Device object is now correctly
    overwritten. Previously, an error was returned.

    ACPICA 20050624:

    Modified the new OSL cache interfaces to use ACPI_CACHE_T
    as the type for the host-defined cache object. This allows
    the OSL implementation to define and type this object in
    any manner desired, simplifying the OSL implementation.
    For example, ACPI_CACHE_T is defined as kmem_cache_t for
    Linux, and should be defined in the OS-specific header
    file for other operating systems as required.

    Changed the interface to AcpiOsAcquireObject to directly
    return the requested object as the function return (instead
    of ACPI_STATUS.) This change was made for performance
    reasons, since this is the purpose of the interface in the
    first place. acpi_os_acquire_object is now similar to the
    acpi_os_allocate interface. Thanks to Alexey Starikovskiy.

    Modified the initialization sequence in
    acpi_initialize_subsystem to call the OSL interface
    acpi_osl_initialize first, before any local initialization.
    This change was required because the global initialization
    now calls OSL interfaces.

    Restructured the code base to split some files because
    of size and/or because the code logically belonged in a
    separate file. New files are listed below.

    utilities/utcache.c /* Local cache interfaces */
    utilities/utmutex.c /* Local mutex support */
    utilities/utstate.c /* State object support */
    parser/psloop.c /* Main AML parse loop */

    Signed-off-by: Len Brown

    Robert Moore
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds