27 Nov, 2013

1 commit

  • * acpica:
    ACPI: Clean up incorrect inclusions of ACPICA headers
    ACPICA: Update version to 20131115.
    ACPICA: Add support to delete all objects attached to the root namespace node.
    ACPICA: Delete all attached data objects during namespace node deletion.
    ACPICA: Resources: Fix loop termination for the get AML length function.
    ACPICA: Tests: Add CHECKSUM_ABORT protection for test utilities.
    ACPICA: Debug output: Do not emit function nesting level for kernel build.

    Rafael J. Wysocki
     

21 Nov, 2013

4 commits


16 Nov, 2013

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual earth-shaking, news-breaking, rocket science pile from
    trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
    doc: usb: Fix typo in Documentation/usb/gadget_configs.txt
    doc: add missing files to timers/00-INDEX
    timekeeping: Fix some trivial typos in comments
    mm: Fix some trivial typos in comments
    irq: Fix some trivial typos in comments
    NUMA: fix typos in Kconfig help text
    mm: update 00-INDEX
    doc: Documentation/DMA-attributes.txt fix typo
    DRM: comment: `halve' -> `half'
    Docs: Kconfig: `devlopers' -> `developers'
    doc: typo on word accounting in kprobes.c in mutliple architectures
    treewide: fix "usefull" typo
    treewide: fix "distingush" typo
    mm/Kconfig: Grammar s/an/a/
    kexec: Typo s/the/then/
    Documentation/kvm: Update cpuid documentation for steal time and pv eoi
    treewide: Fix common typo in "identify"
    __page_to_pfn: Fix typo in comment
    Correct some typos for word frequency
    clk: fixed-factor: Fix a trivial typo
    ...

    Linus Torvalds
     

31 Oct, 2013

16 commits

  • This patch adds __init to the ACPICA documented initializers:
    acpi_initialize_tables()
    acpi_initialize_subsystem()
    acpi_load_tables()
    acpi_enable_subsystem()
    acpi_initialize_objects()
    and to acpi_reallocate_root_table(), acpi_find_root_pointer() which
    are also meant to be called only during initialization.

    This patch adds __init to the ACPICA documented finalizer:
    acpi_terminate()
    as this finalizer is only called in __init function now.

    This change helps to reduce source code differences between
    ACPICA upstream and Linux.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Add an asmlinkage wrapper around acpi_enter_sleep_state() to prevent
    an empty stub from being called by assmebly code for ACPI_REDUCED_HARDWARE
    set.

    As arch/x86/kernel/acpi/wakeup_xx.S is only compiled when CONFIG_ACPI=y
    and there are no users of ACPI_HARDWARE_REDUCED, currently this is in
    fact not a real issue, but a cleanup to reduce source code differences
    between Linux and ACPICA upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Function acpi_ut_delete_caches() is meant to be used to implement
    ACPI_ALLOCATE()/ACPI_FREE() mechanisms in ACPICA, so it should call
    acpi_os_free() rather than ACPI_FREE(). Linux is not affected by this
    issue as it uses kmem_cache instead of the ACPICA local cache, but
    the change helps to reduce source code differences between Linux and
    ACPICA upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Reversion commit 7cb7f45c7fee (Revert "ACPICA: Remove obsolete
    acpi_os_validate_address interface") restored a piece of dead code
    related to an obselete AOPOBJ_INVALID flag. Remove that code again.

    This helps to reduce source code differences between Linux and ACPICA
    upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch removes unnecessary memset() invocations where
    kmem_cache_zalloc() is used for allocating memory. It also helps to
    reduce source code differences between ACPICA upstream and Linux.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPI_FREE() should always be used to free objects allocated with
    ACPI_ALLOCATE_ZEROED(), so make acpi_ut_create_package_object() do
    that.

    This patch ports a fix from ACPICA upstream to Linux and helps to
    reduce source code differences between them.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • The object length returned by acpi_ut_get_simple_object_size() should
    be rounded up to the closest word boundary.

    This patch ports a fix from ACPICA upstream to Linux.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch ports new counters and statistics interface, already
    implemented in ACPICA upstream, to Linux. That helps to reduce
    source code differences between Linux and ACPICA upstream.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch merges namespace dump code updates from ACPICA upstream to
    reduce the source code differences between Linux and ACPICA upstream. No
    functional changes as currently nsdumpdv.c is not used by Linux.

    This patch does not affect the generation of the Linux kernel binary.

    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • The ANOBJ_IS_EXTERNAL flag is only used by an ACPICA utilities - iASL.

    No functional change for the Linux kernel should results from applying
    this patch, but it helps to reduce source code differences between
    the kernel and ACPICA upstream.

    [rjw: Subject and changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch adds code that is already in ACPICA upstream, so applying
    it can help to reduce the source code differences between Linux and
    ACPICA upstream.

    This code fragment is only useful for ACPICA utilities and no
    functional changes to the Linux kernel should result from it.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • During the automatic translation of the upstream ACPICA source code
    into Linux kernel source code some extra white spaces are added by
    the "indent" program at the beginning of each line which is an
    invocation of a macro and there is no ";" at the end of the line.

    For this reason, a new mode has been added to the translation scripts
    to remove the extra spaces inserted before invoking such macros and add
    an empty line between the invocations of such macros (like the other
    function declarations). This new mode is executed after executing
    "indent" during the Linux release process. Consequently, some
    existing ACPICA source code in the Linux kernel tree needs to be
    adjusted to allow the new scripts to work correctly.

    The affected macros and files are:
    1. ACPI_HW_DEPENDENT_RETURN (acpixf.h/acdebug.h/acevents.h):
    This macro is used as a wrapper for hardware dependent APIs to offer
    a stub when the reduced hardware is configured during compilation.
    2. ACPI_EXPORT_SYMBOL (utglobal.c):
    This macro is used by Linux to export symbols to be found by Linux
    modules. All such invocations are well formatted except those
    exported as global variables.

    This can help to reduce the source code differences between Linux
    and upstream ACPICA, and also help to automate the release process.
    No functional or binary generation changes should result from it.
    Lv Zheng.

    [rjw: Changelog]
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This changes can reduce source code differences between Linux and ACPICA
    upstream to help improving the release automation.

    The side effect of applying this patch in Linux is:
    1. Some ACPICA initialization/termination APIs are no longer exported in
    Linux, these include:
    acpi_load_tables
    acpi_initialize_subsystem
    acpi_enable_subsystem
    acpi_initialize_objects
    acpi_terminate
    2. This patch does not affect the following APIs as they are currently not
    marked with ACPI_EXPORT_SYMBOL in Linux:
    acpi_reallocate_root_table
    acpi_initialize_tables
    Such functions should not be exported as they are internal to ACPI
    subsystem in Linux, and will only be invoked inside of ACPI subsystem's
    initialization routines marked with __init and termination routines marked
    with __exit. While on other OSPMs, such functions may still need to be
    exported.

    Thus this patch adds the configurability for ACPICA, so that it leaves
    OSPMs to determine if the __init/__exit marked functions should be exported
    or not. Lv Zheng.

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • It is reported by kernel build test systems that all ACPICA source
    files in the kernel tree have incorrect label indentation. This
    patch changes default indent option used in the release process to
    fix this bug. Lv Zheng.

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Add a comment to clarify reason for using ACPI_FREE_BUFFER directly
    instead of ACPI_FREE.

    In addition to that, change one instance in which ACPI_FREE_BUFFER()
    should be used instead of ACPI_FREE().

    [rjw: Subject and changelog]
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • For Linux, there are no functional changes/binary generation differences
    introduced by this patch.

    This change adds a new macro to all files that contain external ACPICA
    interfaces. It can be detected and used by the host (via the host-specific
    header) for any special processing required for such modules. Lv Zheng.

    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

30 Oct, 2013

8 commits

  • The ACPI spec requires the reset register width to be 8, so we
    now hardcode it and ignore the FADT value. This provides/maintains
    compatibility with other ACPI implementations that have allowed
    BIOS code with bad register width values to go unnoticed.
    Matthew Garett, Bob Moore, Lv Zheng.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This change fixes potential memory leaks in the error paths of the GPE
    handling code. Lv Zheng.

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • In the common case, the ACPI_ALLOCATE and related macros now resolve
    directly to their respective acpi_os* OSL interfaces. Two options:
    1) The ACPI_ALLOCATE_ZEROED macro defaults to a simple local implementation
    by default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
    2) For ACPI execution simulation environment (AcpiExec) which is not
    shipped with the Linux kernel, the macros can optionally be resolved to
    the local interfaces that track each allocation (used to immediately
    detect memory leaks).

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This change adds and deploys "safe" versions of strcpy and strcat that
    ensure that the target buffer does not overflow. These safe functions
    are only helpful for processing user input and command lines. For most
    ACPICA code however, the required buffer length is precisely calculated
    before buffer allocation, so the use of these functions is unnecessary.
    ACPICA BZ 1043.

    This change only applies to the ACPICA utilities and the debugger, none
    of which are not shipped with the kernel yet, so the kernel's behavior
    remains unchanged after it.

    References: https://bugs.acpica.org/show_bug.cgi?id=1043
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • The original upstream ACPICA change added full history and limited
    line editing to the debugger:

    This change adds full history and limited line editing for Unix and
    Linux systems. It does not use readline() because of portability issues.
    Instead it uses the POSIX termio interface to put the terminal in raw
    input mode so that the various special keys can be trapped (such as
    up-arrow and down-arrow for history support).

    Since the debugger is not shipped in the kernel, it only is necessary
    to update one header file to keep the kernel source in sync with the
    upstream.

    [rjw: Changelog]
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Mostly for consistency. ACPICA BZ 1042.

    Actually, currently no one is experiencing problem without this check
    as the obj_handle is guaranteed to be valid.

    References: https://bugs.acpica.org/show_bug.cgi?id=1042
    Reported-by: Colin Ian King
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This change increases the default width for the length of tables from
    5 to 6, to improve alignment/readability on systems with large tables.
    These are being seen more frequently, especially large DSDTs (greater
    than 1 MB).

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Set the global debug flag to "no output" when the debugger is shutdown.
    ACPICA BZ 1011. Tomasz Nowicki.

    Since the debugger is not shipped in the Linux kernel upstream, this
    change doesn't affect Linux kernel's behavior.

    References: https://bugs.acpica.org/show_bug.cgi?id=1011
    Signed-off-by: Tomasz Nowicki
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Tomasz Nowicki
     

14 Oct, 2013

1 commit


24 Sep, 2013

9 commits

  • The SCI interrupt number is not needed for the SCI handlers, and was
    just unnecessary overhead.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This patch introduces new macors to handle RSDP signature and cleans up the
    affected codes. Lv Zheng.
    Some updates are only used for ACPICA utilities which are not shipped in
    the kernel yet.

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch reduces code redundancy by moving the FACS/S3PT checksum
    verification skip logic into acpi_tb_verify_checksum() and other
    calls of this function also get benefit from this change. Lv Zheng.

    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Paths command displays the full pathname and object type for
    the entire namespace. Alternative to the Namespace command.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This change removes some dangerous code that attempts to free the
    handler context pointer in some (rare) circumstances. The owner of
    the handler owns this pointer and the ACPICA code should never
    touch it. Although not seen to be an issue in any kernel, it did
    show up as a problem under AcpiExec. Also, set the internal storage
    field for the context pointer to zero when the region is deactivated,
    simply for sanity. David Box.

    Signed-off-by: David E. Box
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    David E. Box
     
  • This change adds support to allow hosts to install System Control
    Interrupt handlers. Certain ACPI functionality requires the host
    to handle raw SCIs. For example, the "SCI Doorbell" that is defined
    for memory power state support requires the host device driver to
    handle SCIs to examine if the doorbell has been activated. Multiple
    SCI handlers can be installed to allow for future expansion.
    Debugger support is included.
    Lv Zheng, Bob Moore. ACPICA BZ 1032.

    Bug summary:
    It is reported when the PCC (Platform Communication Channel, via
    MPST table, defined in ACPI specification 5.0) subchannel responds
    to the host, it issues an SCI and the host must probe the subchannel
    for channel status.

    Buglink: http://bugs.acpica.org/show_bug.cgi?id=1032
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Perform a sanity check on the start object to prevent problems
    later. ACPICA BZ 1025.
    This patch only adds additional input parameter validation, no actual
    kernel suffering has been discovered.

    Buglink: http://bugs.acpica.org/show_bug.cgi?id=1025
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Increase the size of a couple of the debugger line buffers.
    ACPICA BZ 1037.

    The debugger related code is not in the kernel so the behavior of the
    kernel is not affected.

    Buglink: http://bugs.acpica.org/show_bug.cgi?id=1037
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Allow for longer filenames in the module name output during
    trace operations.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Reviewed-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Bob Moore