20 Jul, 2017

2 commits

  • ACPICA commit 182bdffc0644f568be614a6d4debd651e29ca587

    They are all mechanisms used to verify if a table is qualified to be
    installed and controlled by acpi_gbl_enable_table_validation, so combine them
    together. By doing so, table duplication check is applied to the statically
    loaded tables (however whether it is actually enabled is still determined
    by acpi_gbl_enable_table_validation). Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/182bdffc
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 4551f51fa8ba33a977721c3b250cb70a309e3f23

    Recently, we allows the table mutex to be held in both early and late stage
    APIs. This patch further cleans up the related code to reduce redundant
    code related to acpi_gbl_table_handler. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/4551f51f
    Tested-by: Hans de Goede
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

09 Feb, 2017

1 commit


21 Dec, 2016

1 commit

  • …ory() from Linux kernel

    ACPICA commit cac6790954d4d752a083e6122220b8a22febcd07

    This patch back ports Linux acpi_get_table_with_size() and
    early_acpi_os_unmap_memory() into ACPICA upstream to reduce divergences.

    The 2 APIs are used by Linux as table management APIs for long time, it
    contains a hidden logic that during the early stage, the mapped tables
    should be unmapped before the early stage ends.

    During the early stage, tables are handled by the following sequence:
    acpi_get_table_with_size();
    parse the table
    early_acpi_os_unmap_memory();
    During the late stage, tables are handled by the following sequence:
    acpi_get_table();
    parse the table
    Linux uses acpi_gbl_permanent_mmap to distinguish the early stage and the
    late stage.

    The reasoning of introducing acpi_get_table_with_size() is: ACPICA will
    remember the early mapped pointer in acpi_get_table() and Linux isn't able to
    prevent ACPICA from using the wrong early mapped pointer during the late
    stage as there is no API provided from ACPICA to be an inverse of
    acpi_get_table() to forget the early mapped pointer.

    But how ACPICA can work with the early/late stage requirement? Inside of
    ACPICA, tables are ensured to be remained in "INSTALLED" state during the
    early stage, and they are carefully not transitioned to "VALIDATED" state
    until the late stage. So the same logic is in fact implemented inside of
    ACPICA in a different way. The gap is only that the feature is not provided
    to the OSPMs in an accessible external API style.

    It then is possible to fix the gap by providing an inverse of
    acpi_get_table() from ACPICA, so that the two Linux sequences can be
    combined:
    acpi_get_table();
    parse the table
    acpi_put_table();
    In order to work easier with the current Linux code, acpi_get_table() and
    acpi_put_table() is implemented in a usage counting based style:
    1. When the usage count of the table is increased from 0 to 1, table is
    mapped and .Pointer is set with the mapping address (VALIDATED);
    2. When the usage count of the table is decreased from 1 to 0, .Pointer
    is unset and the mapping address is unmapped (INVALIDATED).
    So that we can deploy the new APIs to Linux with minimal effort by just
    invoking acpi_get_table() in acpi_get_table_with_size() and invoking
    acpi_put_table() in early_acpi_os_unmap_memory(). Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/cac67909
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

    Lv Zheng
     

01 Dec, 2016

2 commits

  • ACPICA commit 80e24663b212daac0c32767fdbd8a46892292f1f

    This patch introduces acpi_tb_unload_table() to eliminate redundant code from
    acpi_ex_unload_table() and acpi_unload_parent_table().

    No functional change. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/80e24663
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 7fdac0289faa1c28b91413c8e394e87372aa69e6

    acpi_tb_install_and_load_table() can invoke acpi_tb_load_table() to eliminate
    redundant code.

    No functional change. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/7fdac028
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

10 Sep, 2016

2 commits

  • ACPICA commit f564d57c6501b97a2871f0b4c048e79910f71783

    This patch tunes MTX_TABLES into a leaf lock by always ensuring it is
    released before holding other locks.

    This patch also collects all table loading related functions into
    acpi_tb_load_table() (invoked by load_table opcode) and
    acpi_tb_install_and_load_table() (invoked by Load opcode and acpi_load_table()) so
    that we can have lock tuning code collected at the boundary of these 2
    functions. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/f564d57c
    Tested-by: Mika Westerberg
    Tested-by: Dutch Guy
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 42c7b848d2faa02c7691ef2c53ea741c23cd4665

    acpi_tb_install_fixed_table() is now redundant as we've removed the fixed
    table indexing mechanism:
    Commit: 8ec3f459073e67e5c6d78507dec693064b3040a2
    Subject: ACPICA: Tables: Fix global table list issues by removing
    fixed table indexes
    This patch cleans up the code accordingly.

    No functional change. Lv Zheng.

    Link: https://bugs.acpica.org/show_bug.cgi?id=1320
    Link: https://github.com/acpica/acpica/commit/42c7b848
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

13 Aug, 2016

1 commit

  • ACPICA commit c160cae765412f5736cf88a9ebcc6138aa761a48

    Linux uses asmlinkage and sparse macros to mark function symbols. This
    leads to the divergences between the Linux and the ACPICA.
    This patch ports such declarators back to ACPICA. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/c160cae7
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

05 May, 2016

1 commit


16 Jan, 2016

1 commit


15 Oct, 2015

1 commit

  • Some logics actually relying on the existence of FADT, currently relies on
    the number of loaded tables. This false dependency can easily trigger
    regressions. One of them has been introduced by commit 8ec3f459073e
    (ACPICA: Tables: Fix global table list issues by removing fixed table).

    The commit changing the fixed table indexes results in the change of FADT
    table index, originally, it was 3 (thus the installed table count should be
    greater than 4), while currently it is 0 (and the installed table count may
    be 3).

    This patch fixes this regression by cleaning up the code. Lv Zheng.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=105351
    Fixes: 8ec3f459073e (ACPICA: Tables: Fix global table list issues by removing fixed table)
    Reported-and-tested-by: Meelis Roos
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

26 Aug, 2015

3 commits

  • ACPICA commit ca3bd4c5cdc39a9009280032adbbc20f34e94c47

    Fix a couple of issues with >40 ACPI tables.
    Return exit error for acpinames to enable use with BIOS builds.

    The new exported function is used by acpinames. For Linux kernel, this
    change is a no-op.

    Link: https://github.com/acpica/acpica/commit/ca3bd4c5
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • ACPICA commit c0b38b4c3982c2336ee92a2a14716107248bd941

    The fixed table indexes leave holes in the global table list:
    1. One hole can be seen when there is only 1 FACS provided by the BIOS.
    2. Tow holes can be seen when it is a reduced hardware platform.
    The holes do not break OSPMs but have broken ACPI debugger "tables"
    command.

    Also the "fixed table indexes" mechanism may make the descriptors of the
    standard tables installed earlier than DSDT to be overwritten by the
    descriptors of the fixed tables. For example, FACP disappears from the
    global table list after DSDT is installed.

    This patch fixes all above issues by removing the "fixed table indexes"
    mechanism which is too complicated to be maintained in a regression safe
    manner. After removal, the table loader will determine the indexes of the
    fixed tables. Lv Zheng.

    Link: https://github.com/acpica/acpica/commit/c0b38b4c
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • ACPICA commit 51ab555e60b4a3de3cc4a846e86d0de255be441a

    Add additional validation for the table signature and
    the OEM strings. Eliminates buffer read overrun in data_table_region.
    ACPICA BZ 1184.

    Link: https://bugs.acpica.org/show_bug.cgi?id=1184
    Link: https://github.com/acpica/acpica/commit/51ab555e
    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     

14 Apr, 2015

1 commit

  • ACPICA commit 6eb364d790dd103bd4990f808e0095a421c437cb

    acpi_tb_store_table() implements a logic that is only correct to iasl. So it
    won't be used by any other utilities except iasl. This function is
    complained by the kernel users as an unused function. The best choice to
    stop releasing it to the Linux kernel should be moving it to adisasm.c.

    ACPI table manager can use both struct acpi_table_desc (direct referencing)
    and table index (indirect referencing) as the descriptor to the table, so
    acpi_tb_get_next_root_index() is extended to return both of them to allow
    maximum usability from the callers. NOTE that indirect referencing is a
    design result to meet the boot stage static allocation requirement for the
    table descriptors.

    This is a linuxized acpi_tb_store_table() removing result, there should be
    no functional changes introduced to the Linux kernel by this patch except
    the additonal kernel unused argument for acpi_tb_get_next_root_index()
    (renamed to acpi_tb_get_next_root_index()). This argument is used in the
    ACPICA upstream.

    Link: https://github.com/acpica/acpica/commit/6eb364d7
    Reported-by: Rickard Strandqvist
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

05 Feb, 2015

1 commit


21 Oct, 2014

1 commit

  • The acpidump currently always uses ACPI 2.0 format to dump RSDP, this patch
    adds ACPI 1.0 RSDP support.

    Link: https://bugs.acpica.org/show_bug.cgi?id=1097
    Link: https://bugs.acpica.org/show_bug.cgi?id=1103
    Signed-off-by: Lv Zheng
    Reported-and-tested-by: Rudolf Marek
    Reported-and-tested-by: Rafal
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

01 Jun, 2014

1 commit

  • It is reported that Linux x86 kernel cannot map large tables. The following
    large SSDT table on such platform fails to pass checksum verification and
    cannot be installed:
    ACPI: SSDT 0x00000000B9638018 07A0C4 (v02 INTEL S2600CP 00004000 INTL 20100331)

    It sounds strange that in the 64-bit virtual memory address space, we
    cannot map a single ACPI table to do checksum verification. The root cause
    is:
    1. ACPICA doesn't split IO memory mapping and table mapping;
    2. Linux x86 OSL implements acpi_os_map_memory() using a size limited fix-map
    mechanism during early boot stage, which is more suitable for only IO
    mappings.

    ACPICA originally only mapped table header for signature validation, and
    this header mapping is required by OSL override mechanism. There was no
    checksum verification because we could not map the whole table using this
    OSL. While the following ACPICA commit enforces checksum verification by
    mapping the whole table during Linux boot stage and it finally triggers
    this issue on some platforms:
    Commit: 86dfc6f339886559d80ee0d4bd20fe5ee90450f0
    Subject: ACPICA: Tables: Fix table checksums verification before installation.

    Before doing further cleanups for the OSL table mapping and override
    implementation, this patch introduces an option for such OSPMs to
    temporarily discard the checksum verification feature. It then can be
    re-enabled easily when the ACPICA and the underlying OSL is ready.

    This patch also deletes a comment around the limitation of mappings because
    it is not correct. The limitation is not how many times we can map in the
    early stage, but the OSL mapping facility may not be suitable for mapping
    the ACPI tables and thus may complain us the size limitation.

    The acpi_tb_verify_table() is renamed to acpi_tb_verify_temp_table() due to the
    work around added, it now only applies to the table descriptor that hasn't
    been installed and cannot be used in other cases. Lv Zheng.

    Tested-by: Yuanhan Liu
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

21 Apr, 2014

5 commits

  • New file is tbdata.c -- management functions for ACPICA table
    manager data structures.

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

    Bob Moore
     
  • Some various cleanups and renames.

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

    Bob Moore
     
  • This patch adds a new API - acpi_install_table(). OSPMs can use this API
    to install tables during early boot stage. Lv Zheng.

    References: https://lkml.org/lkml/2014/2/28/372
    Cc: Thomas Renninger
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    [rjw: Subject]
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • The original table handling code does not always verify checksums before
    installing a table, this is because code to achieve this must be
    implemented here and there in the redundant code blocks.

    There are two stages during table initialization:
    1. "INSTALLED" after acpi_tb_install_table() and acpi_tb_override_table(),
    struct acpi_table_desc.Pointer is ensured to be NULL. This can be safely used
    during OSPM's early boot stage.
    2. "VALIDATED" after acpi_tb_validate_table(), struct acpi_table_desc.Pointer is
    ensured to be not NULL. This must not be used during OSPM's early boot
    stage.

    This patch changes acpi_tb_add_table() into an early boot safe API to reduce
    code redundancies by changing the table state that is returned by this
    function from "VALIDATED" to "INSTALLED". Then the table verification
    code can be done in a single place. Originally, the acpi_tb_add_table() can
    only be used by dynamic table loadings that are executed after early boot
    stage, it cannot be used by static table loadings that are executed in
    early boot stage as:
    1. The address of the table is a virtual address either maintained by
    OSPMs who call acpi_load_table() or by ACPICA whenever "Load" or
    "LoadTable" opcodes are executed, while during early boot stage,
    physical address of the table should be used for table loading.
    2. The API will ensure the state of the loaded table to be "VALIDATED"
    while during early boot stage, tables maintained by root table list
    should be kept as "INSTALLED".

    To achieve this:
    1. Rename acpi_tb_install_table() to acpi_tb_install_fixed_table() as it only
    applies to DSDT/FACS installation. Rename acpi_tb_add_table() to
    acpi_tb_install_non_fixed_table() as it will be applied to the installation
    of the rest kinds of tables.
    2. Introduce acpi_tb_install_table(), acpi_tb_install_and_override_table to collect
    redudant code where their invocations actually have slight differences.
    1. acpi_tb_install_table() is used to fill an struct acpi_table_desc where the
    table length is known to the caller.
    2. acpi_tb_install_and_override_table() is used to perform necessary
    overriding before installation.
    3. Change a parameter of acpi_tb_install_non_fixed_table() from struct acpi_table_desc
    to acpi_physical_address to allow it to be invoked by static table
    loadings. Also cleanup acpi_ex_load_op() and acpi_load_table() to accomodate
    to the parameter change.
    4. Invoke acpi_tb_install_non_fixed_table() for all table loadings other than
    DSDT/FACS in acpi_tb_parse_root_table() to improve code maintainability
    (logics are collected in the single function). Also delete useless code
    from acpi_tb_parse_root_table().
    5. Remove all acpi_tb_validate_table() from acpi_tb_install_non_fixed_table() and
    acpi_tb_install_fixed_table() so that the table descriptor is kept in the
    state of "INSTALLED" but not "VALIDATED" after returning from these
    functions.
    6. Introduce temporary struct acpi_table_desc (new_table_desc/old_table_desc) into
    the functions to indicate a table descriptor that is not maintained by
    acpi_gbl_root_table_list. Introduce acpi_tb_acquire_temporal_table() and
    acpi_tb_release_temporal_table() to handle the use cases of such temporal
    tables. They are only used for verified installation.
    7. Introduce acpi_tb_verify_table() to validate table and verify table
    checksum, also remove table checksum verification from
    acpi_tb_validate_table(). Invoke acpi_tb_validate_table() in the functions
    that will convert a table into "LOADED" state or invoke it from
    acpi_get_table_XXX() APIs. Invoke acpi_tb_verify_table() on temporary
    struct acpi_table_desc(s) that are going to be "INSTALLED".
    8. Change acpi_tb_override_table() logic so that a temporary struct acpi_table_desc
    will be overridden before installtion, this makes code simpler.

    After applying the patch, tables are always installed after being
    overridden and the table checksums are always verified before installation.

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

    Lv Zheng
     
  • This patch is mainly a naming cleanup to clarify hidden logics, no
    functional changes.

    acpi_initialize_tables() is used by Linux to install table addresses for
    early boot steps. During this stage, table addresses are mapped by
    early_ioremap() mechanism which is different from the runtime IO mappings.
    Thus it is not safe for ACPICA to keep mapped pointers in struct acpi_table_desc
    structure during this stage.

    In order to support this in ACPICA, table states are divided into
    1. "INSTALLED" (where struct acpi_table_desc.Pointer is always NULL) and
    2. "VALIDATED" (where struct acpi_table_desc.Pointer is always not NULL).
    During acpi_initialize_tables(), table state are ensured to be "INSTALLED"
    but not "VALIDATED". This logic is ensured by the original code in very
    ambigious way. For example, currently acpi_tb_delete_table() is invoked in
    some place to perform an uninstallation while it is invoked in other place
    to perform an invalidation. They happen to work just because no one enters
    the penalty where the 2 behaviours are not equivalent.

    The naming cleanups are made in this patch:
    A. For installation and validation:
    There is code setting struct acpi_table_desc.Pointer first and delete it
    immediately to keep the descriptor's state as "INSTALLED" during the
    installation. This patch implements this in more direct way. After
    applying it, struct acpi_table_desc.Pointer will never be set in
    acpi_tb_install_table() and acpi_tb_override_table() as they are the only
    functions invoked during acpi_initialize_tables(). This is achieved by:
    1. Rename acpi_tb_verify_table() to acpi_tb_validate_table() to clarify this
    change.
    2. Rename acpi_tb_table_override() to acpi_tb_override_table() to keep nameing
    consistencies as other APIs (verb. Table).
    3. Stops setting struct acpi_table_desc.Pointer in acpi_tb_install_table() and
    acpi_tb_table_override().
    4. Introduce acpi_tb_acquire_table() to acquire the table pointer that is not
    maintained in the struct acpi_table_desc of the global root table list and
    rewrite acpi_tb_validate_table() using this new function to reduce
    redundancies.
    5. Replace the table pointer using the overridden table pointer in
    acpi_tb_add_table(). As acpi_tb_add_table() is not invoked during early boot
    stage, tables returned from this functions should be "VALIDATED". As
    acpi_tb_override_table() is modified by this patch to return a "INSTALLED"
    but not "VALIDATED" descriptor, to keep acpi_tb_add_table() unchanged,
    struct acpi_table_desc.Pointer is filled in acpi_tb_add_table().
    B. For invalidation and uninstallation:
    The original code invalidate table by invoking acpi_tb_delete_table() here
    and there, but actually this function should only be used to uninstall
    tables. This can work just because its invocations are equivalent to
    invalidation in some cases.
    This patch splits acpi_tb_delete_table() into acpi_tb_invalidate_table() and
    acpi_tb_uninstall_table() and cleans up the hidden logic using the new
    APIs. This is achieved by:
    1. Rename acpi_tb_delete_table() to acpi_tb_uninstall_table() as it is mainly
    called before resetting struct acpi_table_desc.Address. Thus the table
    descriptor is in "not INSTALLED" state. This patch enforces this by
    setting struct acpi_table_desc.Address to NULL in this function.
    2. Introduce acpi_tb_invalidate_table() to be the reversal of
    acpi_tb_validate_table() and invoke it in acpi_tb_uninstall_table().
    3. Introduce acpi_tb_release_table() to release the table pointer that is not
    maintained in acpi_gbl_root_table_list and rewrite acpi_tb_invalidate_table()
    using this new function to reduce redundancies.

    After cleaning up, the maintainability of the internal APIs are also
    improved:
    1. acpi_tb_acquire_table: Acquire struct acpi_table_header according to
    ACPI_TABLE_ORIGIN_xxx flags.
    2. acpi_tb_release_table: Release struct acpi_table_header according to
    ACPI_TABLE_ORIGIN_xxx flags.
    3. acpi_tb_install_table: Make struct acpi_table_desc.Address not NULL according to
    ACPI_TABLE_ORIGIN_xxx flags.
    4. acpi_tb_uninstall_table: Make struct acpi_table_desc.Address NULL according to
    ACPI_TABLE_ORIGIN_xxx flags.
    5. acpi_tb_validate_table: Make struct acpi_table_desc.Pointer not NULL according to
    ACPI_TABLE_ORIGIN_xxx flags.
    6. acpi_tb_invalidate_table: Make struct acpi_table_desc.Pointer NULL according to
    ACPI_TABLE_ORIGIN_xxx flags.
    7. acpi_tb_override_table: Replace struct acpi_table_desc.Address and
    struct acpi_table_desc.Flags. It only happens in
    "INSTALLED" state.

    The patch has been unit tested in acpi_exec by:
    1. Initializing;
    2. Executing exc_tbl ASLTS tests;
    3. Executing "Load" command.
    So that all original acpi_tb_install_table() and acpi_tb_override_table()
    invocations are covered.

    Known Issues:
    1. Cleanup acpi_tb_add_table() to Kill Code Redundancies
    Current implementation in acpi_tb_add_table() is not very clean, further
    patch can rewrite acpi_tb_add_table() with ordered acpi_tb_install_table(),
    acpi_tb_override_table() and acpi_tb_validate_table(). It is not done in this
    patch so that it is easy for the reviewers to understand the changes in
    this patch.

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

    Lv Zheng
     

18 Mar, 2014

1 commit


27 Feb, 2014

1 commit

  • Use push and pop to both guarantee that the correct alignment is used,
    and to restore the alignment to whatever it was before the header
    was included.

    It is reported that the #pragma pack(push/pop) directives are not supported
    by the specific GCCs, but this patch still doesn't affect kernel build
    as there are already #pragma pack([1]) directives used in the old ACPICA
    headers, which means there shouldn't be GCCs that are currently used to
    compile the ACPI kernels do not support #pragma pack() directives.

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

    Bob Moore
     

11 Feb, 2014

1 commit


08 Aug, 2013

1 commit

  • This patch exports acpi_tb_validate_rsdp(), so that code duplication in
    some ACPICA utilities can be reduced.
    This patch also includes lint changes.

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

    Bob Moore
     

23 Jul, 2013

1 commit


25 Jan, 2013

1 commit


22 Mar, 2012

1 commit

  • This interface allows the host to override a table via a
    physical address, instead of the logical address required by
    acpi_os_table_override. This simplifies the host implementation.
    Initial implementation by Thomas Renninger. ACPICA implementation
    creates a single function for table overrides that attempts both
    a logical and a physical override.

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

    Bob Moore
     

17 Jan, 2012

1 commit


19 Jan, 2011

1 commit


20 Apr, 2010

3 commits

  • Move initialization of DSDT pointer. Emit address of DSDT
    in the dump of both table headers (good/bad DSDT).
    Now handles the case where the root table can be reallocated,
    which would invalidate the original pointer.

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

    Bob Moore
     
  • Optionally copy the entire DSDT to local memory (instead of
    simply mapping it.) There are some BIOSs that corrupt or replace
    the original DSDT, creating the need for this option. Default is
    FALSE, do not copy the DSDT.

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

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

    Lin Ming
     
  • This change adds support to detect a DSDT that has been corrupted
    and/or replaced from outside the OS (by firmware). This is
    typically catastrophic for the system, but has been seen on
    some machines.

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

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

    Lin Ming
     

23 Jan, 2010

1 commit


28 Mar, 2009

1 commit

  • Added a reader/writer locking mechanism to allow multiple
    concurrent namespace walks (readers), but a dynamic table unload
    will have exclusive access to the namespace. This fixes a problem
    where a table unload could delete the portion of the namespace that
    is currently being examined by a walk. Adds a new file, utlock.c
    that implements the reader/writer lock mechanism. ACPICA BZ 749.

    http://www.acpica.org/bugzilla/show_bug.cgi?id=749

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

    Bob Moore
     

27 Mar, 2009

1 commit


09 Jan, 2009

1 commit