Re: [RFC PATCH 0/7] ACPICA: Tables: Cleanup table sanity checks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 15-03-17 07:36, Lv Zheng wrote:
Originally AML table sanity check is only done for Load opcode, as
acpi_tb_compare_tables() is only invoked in
acpi_tb_install_standard_table(). While LoadTable opcode cannot be covered
as it directly invokes acpi_tb_load_table() without invoking
acpi_tb_install_standard_table(). Furthermore, standard table load also
cannot be covered as acpi_ns_load_table() is invoked instead of
acpi_tb_install_standard_table() and acpi_tb_load_table().

So it becomes a problem if a duplicate table is in RSDT/XSDT, there is no
such check implemented for static load tables and LoadTable opcode.

This patchset combines code paths (in return reduces some redundant code
blocks and enhances checks/locks) so that duplicate table detection can be
applied to all cases.

I can confirm that this series fixes the errors I was seeing on my
GPD win machine. Note as explained in my reply to Robert I believe that
the last patch from the series can be dropped:

"On 15-03-17 04:05, Moore, Robert wrote:
> And I would suppose a refinement would be:
>
> Compare headers
> If headers match, compare entire tables.

The existing memcmp already does that since the header is in the
front, and memcmp will stop on the first difference, so there
is no need to change anything."

As Robert mentions we really a should compare the entire table
if the checksums match since an 8 bit checksum is really weak and
if we want to do that a simple memcmp will suffice as that will
already exit directly if the checksum mismatches as the checksum
is before the actual data.

Regards,

Hans





Lv Zheng (7):
  ACPICA: Tables: Cleanup table handler invokers
  ACPICA: Tables: Add sanity check for load_table opcode
  ACPICA: Tables: Add sanity check for table install
  ACPICA: Tables: Fix an unwanted exception for table reloading
  ACPICA: Tables: Enable acpi_ut_is_aml_table() for all ACPICA modules
  ACPICA: Tables: Add sanity check for static table load
  ACPICA: Tables: Change table comparison using table header for static
    load tables

 drivers/acpi/acpica/actables.h |   7 +-
 drivers/acpi/acpica/acutils.h  |   4 +-
 drivers/acpi/acpica/exconfig.c |   2 +-
 drivers/acpi/acpica/nsload.c   |  18 ---
 drivers/acpi/acpica/tbdata.c   | 288 ++++++++++++++++++++++++++++++++++++-----
 drivers/acpi/acpica/tbinstal.c | 197 ++++++----------------------
 drivers/acpi/acpica/tbxfload.c |  46 +------
 drivers/acpi/acpica/utmisc.c   |  27 ++--
 include/acpi/actbl.h           |   1 +
 9 files changed, 325 insertions(+), 265 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux