1. 21 4月, 2014 1 次提交
    • L
      ACPICA: Tables: Fix table checksums verification before installation. · 86dfc6f3
      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: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      [rjw: Subject]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      86dfc6f3
  2. 11 2月, 2014 1 次提交
  3. 08 1月, 2014 1 次提交
  4. 13 8月, 2013 1 次提交
  5. 12 4月, 2013 1 次提交
  6. 25 1月, 2013 1 次提交
  7. 10 1月, 2013 1 次提交
    • L
      ACPICA: Cleanup updated comments. · 75c8044f
      Lv Zheng 提交于
      This is a cosmetic patch only. Comparison of the resulting binary showed
      only line number differences.
      
      This patch does not affect the generation of the Linux binary.
      This patch decreases 558 lines of 20121018 divergence.diff.
      
      This patch reduces the source code diff between Linux and ACPICA by
      cleaning the comments that already have been updated in ACPICA.
      
      There is no extra indentation done in this patch. Even the empty line
      deletions and insertions are also splitted into another cleanup patch so
      that this patch can be easily reviewed, and the binary differences can be
      held to a lowest level.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      75c8044f
  8. 17 7月, 2012 2 次提交
  9. 01 6月, 2012 1 次提交
  10. 21 3月, 2012 1 次提交
  11. 17 1月, 2012 4 次提交
  12. 03 3月, 2011 1 次提交
  13. 19 1月, 2011 1 次提交
  14. 01 10月, 2010 1 次提交
  15. 20 4月, 2010 1 次提交
  16. 23 1月, 2010 1 次提交
  17. 21 9月, 2009 1 次提交
    • F
      x86: Trivial whitespace cleanups · 878f4f53
      Felipe Contreras 提交于
      Signed-off-by: NFelipe Contreras <felipe.contreras@gmail.com>
      Cc: Vegard Nossum <vegardno@ifi.uio.no>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alok N Kataria <akataria@vmware.com>
      Cc: "Tan Wei Chong" <wei.chong.tan@intel.com>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Lin Ming <ming.m.lin@intel.com>
      Cc: Bob Moore <robert.moore@intel.com>
      LKML-Reference: <1253137123-18047-2-git-send-email-felipe.contreras@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      878f4f53
  18. 27 5月, 2009 2 次提交
  19. 28 3月, 2009 3 次提交
  20. 27 3月, 2009 4 次提交
  21. 09 1月, 2009 2 次提交
  22. 31 12月, 2008 4 次提交
  23. 30 12月, 2008 2 次提交
  24. 07 11月, 2008 1 次提交
  25. 11 10月, 2008 1 次提交
    • J
      ACPI: fix FADT parsing · fcea94ba
      Jan Beulich 提交于
      The (1.0 inherited) separate length fields in the FADT are byte granular.
      Further, PM1a/b may have distinct lengths (if using the v2 fields was
      okay) and may live in distinct address spaces.  acpi_tb_convert_fadt()
      should account for all of these conditions.
      
      Apart from these changes I'm puzzled by the fact that, not just for
      acpi_gbl_xpm1{a,b}_enable, acpi_hw_low_level_{read,write}() get an
      explicit size passed rather than using the size found in the passed GAS.
      What happens on a platform that defines PM1{a,b} wider than 16 bits?  Of
      course, acpi_hw_low_level_{read,write}() at present are entirely
      un-prepared to deal with sizes other than 8, 16, or 32, not to speak of a
      non-zero bit_offset or access_width...
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      fcea94ba