1. 01 2月, 2017 1 次提交
  2. 24 6月, 2016 2 次提交
  3. 30 1月, 2016 1 次提交
    • T
      ACPI/EINJ: Allow memory error injection to NVDIMM · 4650bac1
      Toshi Kani 提交于
      In the case of memory error injection, einj_error_inject()
      checks if a target address is System RAM. Change this check to
      allow injecting a memory error into NVDIMM memory by calling
      region_intersects() with IORES_DESC_PERSISTENT_MEMORY. This
      enables memory error testing on both System RAM and NVDIMM.
      
      In addition, page_is_ram() is replaced with region_intersects()
      with IORESOURCE_SYSTEM_RAM, so that it can verify a target
      address range with the requested size.
      Signed-off-by: NToshi Kani <toshi.kani@hpe.com>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Reviewed-by: NDan Williams <dan.j.williams@intel.com>
      Acked-by: NTony Luck <tony.luck@intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Luis R. Rodriguez <mcgrof@suse.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: Vishal Verma <vishal.l.verma@intel.com>
      Cc: linux-acpi@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Cc: linux-mm <linux-mm@kvack.org>
      Cc: linux-nvdimm@lists.01.org
      Link: http://lkml.kernel.org/r/1453841853-11383-18-git-send-email-bp@alien8.deSigned-off-by: NIngo Molnar <mingo@kernel.org>
      4650bac1
  4. 08 7月, 2015 1 次提交
  5. 28 5月, 2014 1 次提交
    • L
      ACPI: Clean up acpi_os_map/unmap_memory() to eliminate __iomem. · a238317c
      Lv Zheng 提交于
      ACPICA doesn't include protections around address space checking, Linux
      build tests always complain increased sparse warnings around ACPICA
      internal acpi_os_map/unmap_memory() invocations.  This patch tries to fix
      this issue permanently.
      
      There are 2 choices left for us to solve this issue:
       1. Add __iomem address space awareness into ACPICA.
       2. Remove sparse checker of __iomem from ACPICA source code.
      
      This patch chooses solution 2, because:
       1.  Most of the acpi_os_map/unmap_memory() invocations are used for ACPICA.
           table mappings, which in fact are not IO addresses.
       2.  The only IO addresses usage is for "system memory space" mapping code in:
            drivers/acpi/acpica/exregion.c
            drivers/acpi/acpica/evrgnini.c
            drivers/acpi/acpica/exregion.c
          The mapped address is accessed in the handler of "system memory space"
          - acpi_ex_system_memory_space_handler().  This function in fact can be
          changed to invoke acpi_os_read/write_memory() so that __iomem can
          always be type-casted in the OSL layer.
      
      According to the above investigation, we drew the following conclusion:
      It is not a good idea to introduce __iomem address space awareness into
      ACPICA mostly in order to protect non-IO addresses.
      
      We can simply remove __iomem for acpi_os_map/unmap_memory() to remove
      __iomem checker for ACPICA code. Then we need to enforce external usages
      to invoke other APIs that are aware of __iomem address space.
      The external usages are:
       drivers/acpi/apei/einj.c
       drivers/acpi/acpi_extlog.c
       drivers/char/tpm/tpm_acpi.c
       drivers/acpi/nvs.c
      
      This patch thus performs cleanups in this way:
       1. Add acpi_os_map/unmap_iomem() to be invoked by non-ACPICA code.
       2. Remove __iomem from acpi_os_map/unmap_memory().
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a238317c
  6. 21 12月, 2013 1 次提交
  7. 18 12月, 2013 1 次提交
    • L
      ACPI, APEI, EINJ: Changes to the ACPI/APEI/EINJ debugfs interface · 3482fb5e
      Luck, Tony 提交于
      When I added support for ACPI5 I made the assumption that
      injected processor errors would just need to know the APICID,
      memory errors just the address and mask, and PCIe errors just the
      segment/bus/device/function. So I had the code check the type of injection
      and multiplex the "param1" value appropriately.
      
      This was not a good assumption :-(
      
      There are injection scenarios where we need to specify more than one of
      these items. E.g. injecting a cache error we need to specify an APICID
      of the cpu that owns the cache, and also an address (so that we can trip
      the error by accessing the address).
      
      Add a "flags" file to give the user direct access to specify which items
      are valid in the ACPI SET_ERROR_TYPE_WITH_ADDRESS structure. Also add
      new files param3 and param4 to hold all these values.
      
      For backwards compatability with old injection scripts we maintain the
      old behaviour if flags remains set at zero (or is reset to 0).
      Acked-by: NNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      3482fb5e
  8. 07 12月, 2013 1 次提交
    • L
      ACPI: Clean up inclusions of ACPI header files · 8b48463f
      Lv Zheng 提交于
      Replace direct inclusions of <acpi/acpi.h>, <acpi/acpi_bus.h> and
      <acpi/acpi_drivers.h>, which are incorrect, with <linux/acpi.h>
      inclusions and remove some inclusions of those files that aren't
      necessary.
      
      First of all, <acpi/acpi.h>, <acpi/acpi_bus.h> and <acpi/acpi_drivers.h>
      should not be included directly from any files that are built for
      CONFIG_ACPI unset, because that generally leads to build warnings about
      undefined symbols in !CONFIG_ACPI builds.  For CONFIG_ACPI set,
      <linux/acpi.h> includes those files and for CONFIG_ACPI unset it
      provides stub ACPI symbols to be used in that case.
      
      Second, there are ordering dependencies between those files that always
      have to be met.  Namely, it is required that <acpi/acpi_bus.h> be included
      prior to <acpi/acpi_drivers.h> so that the acpi_pci_root declarations the
      latter depends on are always there.  And <acpi/acpi.h> which provides
      basic ACPICA type declarations should always be included prior to any other
      ACPI headers in CONFIG_ACPI builds.  That also is taken care of including
      <linux/acpi.h> as appropriate.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci stuff)
      Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> (Xen stuff)
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8b48463f
  9. 07 6月, 2013 1 次提交
    • C
      ACPI/APEI: Add parameter check before error injection · c5a13032
      Chen Gong 提交于
      When param1 is enabled in EINJ but not assigned with a valid
      value, sometimes it will cause the error like below:
      
      APEI: Can not request [mem 0x7aaa7000-0x7aaa7007] for APEI EINJ Trigger registers
      
      It is because some firmware will access target address specified in
      param1 to trigger the error when injecting memory error. This will
      cause resource conflict with regular memory. So It must be removed
      from trigger table resources, but incorrect param1/param2
      combination will stop this action. Add extra check to avoid
      this kind of error.
      Signed-off-by: NChen Gong <gong.chen@linux.intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      c5a13032
  10. 06 6月, 2013 1 次提交
  11. 08 12月, 2012 1 次提交
    • C
      ACPI, APEI, EINJ: Add missed ACPI5 support for error trigger table · 112f1fc0
      Chen Gong 提交于
      To handle error trigger table correctly, memory region must be
      removed from request region. We had a series of patches to do this
      culminating in:
      	commit b4e008dc
      	ACPI, APEI, EINJ, Refine the fix of resource conflict
      
      but when ACPI5 support was added, we missed updating this area. So
      when using EINJ table on an ACPI5 enabled machine, we get following error:
      
      APEI: Can not request [mem 0x526b80000-0x526b80007] for APEI EINJ
      Trigger registers
      
      Fix this by checking for the acpi5 case and using the same code
      that was added earlier.
      Signed-off-by: NChen Gong <gong.chen@linux.intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      112f1fc0
  12. 30 3月, 2012 2 次提交
  13. 24 1月, 2012 3 次提交
  14. 18 1月, 2012 1 次提交
  15. 17 1月, 2012 4 次提交
  16. 03 8月, 2011 1 次提交
  17. 14 7月, 2011 1 次提交
  18. 25 5月, 2011 1 次提交
  19. 03 1月, 2011 1 次提交
  20. 30 9月, 2010 1 次提交
  21. 20 5月, 2010 2 次提交