1. 23 Jan, 2018 1 commit
  2. 07 Nov, 2017 2 commits
  3. 02 Nov, 2017 1 commit
    • Kees Cook's avatar
      ACPI / APEI: Convert timers to use timer_setup() · d5272003
      Kees Cook authored
      
      
      In preparation for unconditionally passing the struct timer_list pointer to
      all timer callbacks, switch to using the new timer_setup() and from_timer()
      to pass the timer pointer explicitly.
      
      Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Tyler Baicar <tbaicar@codeaurora.org>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: "Jonathan (Zhixiong) Zhang" <zjzhang@codeaurora.org>
      Cc: Shiju Jose <shiju.jose@huawei.com>
      Cc: linux-acpi@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Tested-by: default avatarTyler Baicar <tbaicar@codeaurora.org>
      d5272003
  4. 23 Oct, 2017 1 commit
  5. 10 Oct, 2017 1 commit
  6. 27 Sep, 2017 1 commit
  7. 30 Aug, 2017 1 commit
  8. 31 Jul, 2017 1 commit
  9. 22 Jun, 2017 8 commits
  10. 05 Jun, 2017 1 commit
  11. 21 May, 2017 1 commit
  12. 19 Apr, 2017 1 commit
  13. 28 Mar, 2017 1 commit
  14. 02 Mar, 2017 1 commit
  15. 01 Dec, 2016 1 commit
    • Prarit Bhargava's avatar
      ACPI / APEI: Fix NMI notification handling · a545715d
      Prarit Bhargava authored
      When removing and adding cpu 0 on a system with GHES NMI the following stack
      trace is seen when re-adding the cpu:
      
      WARNING: CPU: 0 PID: 0 at arch/x86/kernel/apic/apic.c:1349 setup_local_APIC+
      Modules linked in: nfsv3 rpcsec_gss_krb5 nfsv4 nfs fscache coretemp intel_ra
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.0-rc6+ #2
      Call Trace:
       dump_stack+0x63/0x8e
       __warn+0xd1/0xf0
       warn_slowpath_null+0x1d/0x20
       setup_local_APIC+0x275/0x370
       apic_ap_setup+0xe/0x20
       start_secondary+0x48/0x180
       set_init_arg+0x55/0x55
       early_idt_handler_array+0x120/0x120
       x86_64_start_reservations+0x2a/0x2c
       x86_64_start_kernel+0x13d/0x14c
      
      During the cpu bringup, wakeup_cpu_via_init_nmi() is called and issues an
      NMI on CPU 0.  The GHES NMI handler, ghes_notify_nmi() runs the
      ghes_proc_irq_work work queue which ends up setting IRQ_WORK_VECTOR
      (0xf6).  The "faulty" IR line set at arch/x86/kernel/apic/apic.c:1349 is  also
      0xf6 (specifically APIC IRR for irqs 255 to 224 is 0x400000) which confirms
      that something has set the IRQ_WORK_VECTOR line prior to the APIC being
      initialized.
      
      Commit 2383844d ("GHES: Elliminate double-loop in the NMI handler")
      incorrectly modified the behavior such that the handler returns
      NMI_HANDLED only if an error was processed, and incorrectly runs the ghes
      work queue for every NMI.
      
      This patch modifies the ghes_proc_irq_work() to run as it did prior to
      2383844d ("GHES: Elliminate double-loop in the NMI handler") by
      properly returning NMI_HANDLED and only calling the work queue if
      NMI_HANDLED has been set.
      
      Fixes: 2383844d
      
       (GHES: Elliminate double-loop in the NMI handler)
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a545715d
  16. 24 Oct, 2016 1 commit
  17. 20 Sep, 2016 1 commit
  18. 09 Mar, 2016 1 commit
    • Paul Gortmaker's avatar
      drivers/acpi: make apei/ghes.c more explicitly non-modular · 020bf066
      Paul Gortmaker authored
      
      
      The Kconfig currently controlling compilation of this code is:
      
      config ACPI_APEI_GHES
            bool "APEI Generic Hardware Error Source"
      
      ...meaning that it currently is not being built as a module by anyone.
      
      Lets remove the modular code that is essentially orphaned, so that
      when reading the driver there is no doubt it is builtin-only.
      
      Since module_init translates to device_initcall in the non-modular
      case, the init ordering remains unchanged with this commit.
      
      We replace module.h with moduleparam.h as we are keeping the
      pre-existing module_param that the file has, as currently that is
      the easiest way to maintain compatibility with the existing boot
      arg use cases.
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      020bf066
  19. 14 Sep, 2015 1 commit
    • Jonathan (Zhixiong) Zhang's avatar
      acpi/apei: Use appropriate pgprot_t to map GHES memory · 8ece249a
      Jonathan (Zhixiong) Zhang authored
      
      
      If the ACPI APEI firmware handles hardware error first (called
      "firmware first handling"), the firmware updates the GHES memory
      region with hardware error record (called "generic hardware
      error record"). Essentially the firmware writes hardware error
      records in the GHES memory region, triggers an NMI/interrupt,
      then the GHES driver goes off and grabs the error record from
      the GHES region.
      
      The kernel currently maps the GHES memory region as cacheable
      (PAGE_KERNEL) for all architectures. However, on some arm64
      platforms, there is a mismatch between how the kernel maps the
      GHES region (PAGE_KERNEL) and how the firmware maps it
      (EFI_MEMORY_UC, ie. uncacheable), leading to the possibility of
      the kernel GHES driver reading stale data from the cache when it
      receives the interrupt.
      
      With stale data being read, the kernel is unaware there is new
      hardware error to be handled when there actually is; this may
      lead to further damage in various scenarios, such as error
      propagation caused data corruption. If uncorrected error (such
      as double bit ECC error) happened in memory operation and if the
      kernel is unaware of such an event happening, errorneous data may
      be propagated to the disk.
      
      Instead GHES memory region should be mapped with page protection
      type according to what is returned from arch_apei_get_mem_attribute().
      Signed-off-by: default avatarJonathan (Zhixiong) Zhang <zjzhang@codeaurora.org>
      Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
      [ Small stylistic tweaks. ]
      Reviewed-by: default avatarMatt Fleming <matt@codeblueprint.co.uk>
      Acked-by: default avatarBorislav Petkov <bp@suse.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1441372302-23242-3-git-send-email-matt@codeblueprint.co.uk
      
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      8ece249a
  20. 08 Jul, 2015 1 commit
  21. 27 Apr, 2015 5 commits
  22. 21 Oct, 2014 2 commits
  23. 20 Oct, 2014 1 commit
  24. 22 Jul, 2014 3 commits
  25. 16 Jun, 2014 1 commit
    • Lv Zheng's avatar
      ACPICA: Restore error table definitions to reduce code differences between... · 0a00fd5e
      Lv Zheng authored
      ACPICA: Restore error table definitions to reduce code differences between Linux and ACPICA upstream.
      
      The following commit has changed ACPICA table header definitions:
      
       Commit: 88f074f4
      
      
       Subject: ACPI, CPER: Update cper info
      
      While such definitions are currently maintained in ACPICA. As the
      modifications applying to the table definitions affect other OSPMs'
      drivers, it is very difficult for ACPICA to initiate a process to
      complete the merge. Thus this commit finally only leaves us divergences.
      
      Revert such naming modifications to reduce the source code differecnes
      between Linux and ACPICA upstream. No functional changes.
      Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
      Cc: Bob Moore <robert.moore@intel.com>
      Cc: Chen, Gong <gong.chen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0a00fd5e