1. 15 4月, 2017 1 次提交
  2. 13 4月, 2017 4 次提交
  3. 28 3月, 2017 1 次提交
  4. 14 3月, 2017 1 次提交
  5. 11 3月, 2017 4 次提交
  6. 02 3月, 2017 2 次提交
  7. 01 3月, 2017 2 次提交
    • R
      x86/ioapic: Split IOAPIC hot-removal into two steps · f2ae5da7
      Rui Wang 提交于
      The hot removal of IOAPIC is handling PCI and ACPI removal in one go. That
      only works when the PCI drivers released the interrupt resources, but
      breaks when a IOAPIC interrupt is still associated to a PCI device.
      
      The new pcibios_release_device() callback allows to solve that problem by
      splitting the removal into two steps:
      
      1) PCI removal:
      
         Release all PCI resources including eventually not yet released IOAPIC
         interrupts via the new pcibios_release_device() callback.
      
      2) ACPI removal:
      
         After release of all PCI resources the ACPI resources can be released
         without issue.
      
      [ tglx: Rewrote changelog ]
      Signed-off-by: NRui Wang <rui.y.wang@intel.com>
      Cc: tony.luck@intel.com
      Cc: linux-pci@vger.kernel.org
      Cc: rjw@rjwysocki.net
      Cc: linux-acpi@vger.kernel.org
      Cc: fengguang.wu@intel.com
      Cc: helgaas@kernel.org
      Cc: kbuild-all@01.org
      Cc: bhelgaas@google.com
      Link: http://lkml.kernel.org/r/1488288869-31290-3-git-send-email-rui.y.wang@intel.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      f2ae5da7
    • D
      nfit, libnvdimm: fix interleave set cookie calculation · 86ef58a4
      Dan Williams 提交于
      The interleave-set cookie is a sum that sanity checks the composition of
      an interleave set has not changed from when the namespace was initially
      created.  The checksum is calculated by sorting the DIMMs by their
      location in the interleave-set. The comparison for the sort must be
      64-bit wide, not byte-by-byte as performed by memcmp() in the broken
      case.
      
      Fix the implementation to accept correct cookie values in addition to
      the Linux "memcmp" order cookies, but only allow correct cookies to be
      generated going forward. It does mean that namespaces created by
      third-party-tooling, or created by newer kernels with this fix, will not
      validate on older kernels. However, there are a couple mitigating
      conditions:
      
          1/ platforms with namespace-label capable NVDIMMs are not widely
             available.
      
          2/ interleave-sets with a single-dimm are by definition not affected
             (nothing to sort). This covers the QEMU-KVM NVDIMM emulation case.
      
      The cookie stored in the namespace label will be fixed by any write the
      namespace label, the most straightforward way to achieve this is to
      write to the "alt_name" attribute of a namespace in sysfs.
      
      Cc: <stable@vger.kernel.org>
      Fixes: eaf96153 ("libnvdimm, nfit: add interleave-set state-tracking infrastructure")
      Reported-by: NNicholas Moulin <nicholas.w.moulin@linux.intel.com>
      Tested-by: NNicholas Moulin <nicholas.w.moulin@linux.intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      86ef58a4
  8. 28 2月, 2017 4 次提交
  9. 16 2月, 2017 1 次提交
  10. 10 2月, 2017 2 次提交
  11. 09 2月, 2017 3 次提交
  12. 07 2月, 2017 4 次提交
  13. 04 2月, 2017 2 次提交
    • V
      ACPI: processor_perflib: Simplify code and stop using CPUFREQ_START · fa29ae5f
      Viresh Kumar 提交于
      acpi_processor_ppc_notifier() can live without using CPUFREQ_START
      (which is gonna be removed soon), as it is only used while setting
      ignore_ppc to 0. This can be done with the help of "ignore_ppc < 0"
      check alone. The notifier function anyway ignores all events except
      CPUFREQ_ADJUST and dropping CPUFREQ_START wouldn't harm at all.
      
      Once CPUFREQ_START event is removed from the cpufreq core,
      acpi_processor_ppc_notifier() will get called only for CPUFREQ_NOTIFY or
      CPUFREQ_ADJUST event. Drop the return statement from the first if block
      to make sure we don't ignore any such events.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      fa29ae5f
    • D
      acpi, nfit: fix acpi_nfit_flush_probe() crash · e471486c
      Dan Williams 提交于
      We queue an on-stack work item to 'nfit_wq' and wait for it to complete
      as part of a 'flush_probe' request. However, if the user cancels the
      wait we need to make sure the item is flushed from the queue otherwise
      we are leaving an out-of-scope stack address on the work list.
      
       BUG: unable to handle kernel paging request at ffffbcb3c72f7cd0
       IP: [<ffffffffa9413a7b>] __list_add+0x1b/0xb0
       [..]
       RIP: 0010:[<ffffffffa9413a7b>]  [<ffffffffa9413a7b>] __list_add+0x1b/0xb0
       RSP: 0018:ffffbcb3c7ba7c00  EFLAGS: 00010046
       [..]
       Call Trace:
        [<ffffffffa90bb11a>] insert_work+0x3a/0xc0
        [<ffffffffa927fdda>] ? seq_open+0x5a/0xa0
        [<ffffffffa90bb30a>] __queue_work+0x16a/0x460
        [<ffffffffa90bbb08>] queue_work_on+0x38/0x40
        [<ffffffffc0cf2685>] acpi_nfit_flush_probe+0x95/0xc0 [nfit]
        [<ffffffffc0cf25d0>] ? nfit_visible+0x40/0x40 [nfit]
        [<ffffffffa9571495>] wait_probe_show+0x25/0x60
        [<ffffffffa9546b30>] dev_attr_show+0x20/0x50
      
      Fixes: 7ae0fa43 ("nfit, libnvdimm: async region scrub workqueue")
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NVishal Verma <vishal.l.verma@intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      e471486c
  14. 03 2月, 2017 2 次提交
  15. 01 2月, 2017 5 次提交
    • D
      efi/x86: Move the EFI BGRT init code to early init code · 7b0a9114
      Dave Young 提交于
      Before invoking the arch specific handler, efi_mem_reserve() reserves
      the given memory region through memblock.
      
      efi_bgrt_init() will call efi_mem_reserve() after mm_init(), at which
      time memblock is dead and should not be used anymore.
      
      The EFI BGRT code depends on ACPI initialization to get the BGRT ACPI
      table, so move parsing of the BGRT table to ACPI early boot code to
      ensure that efi_mem_reserve() in EFI BGRT code still use memblock safely.
      Tested-by: NBhupesh Sharma <bhsharma@redhat.com>
      Signed-off-by: NDave Young <dyoung@redhat.com>
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Matt Fleming <matt@codeblueprint.co.uk>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-acpi@vger.kernel.org
      Cc: linux-efi@vger.kernel.org
      Link: http://lkml.kernel.org/r/1485868902-20401-9-git-send-email-ard.biesheuvel@linaro.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      7b0a9114
    • Z
      ACPI: save NVS memory for Lenovo G50-45 · cbc00c13
      Zhang Rui 提交于
      In commit 821d6f03 (ACPI / sleep: Do not save NVS for new machines to
      accelerate S3), to optimize S3 suspend/resume speed, code is introduced
      to ignore NVS memory saving during S3 for all the platforms later than
      2012.
      
      But, Lenovo G50-45, a platform released in 2015, still needs NVS memory
      saving during S3. A quirk is introduced for this platform.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=189431Tested-by: NPrzemek <soprwa@gmail.com>
      Signed-off-by: NZhang Rui <rui.zhang@intel.com>
      [ rjw: Drop unnecessary code ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      cbc00c13
    • C
      ACPI, APEI, EINJ: fix malformed newline escape · d2226784
      Colin Ian King 提交于
      The pr_warn message has a malformed newline escape, add in the
      missing \
      Signed-off-by: NColin Ian King <colin.king@canonical.com>
      Reviewed-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d2226784
    • L
      ACPI / button: Remove lid_init_state=method mode · ecb10b69
      Lv Zheng 提交于
      The mode is buggy, and lid_init__state=open is more useful than this
      mode, so this patch makes it deprecated.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ecb10b69
    • L
      ACPI / button: Change default behavior to lid_init_state=open · 77e9a4aa
      Lv Zheng 提交于
      More and more platforms need the button.lid_init_state=open quirk. This
      patch sets it the default behavior.
      
      If a platform doesn't send lid open event or lid open event is lost due to
      the underlying system problems, then we can compare various combinations:
      1. systemd/acpid is used to suspend system or not, systemd has a special
         logic forcing open event after resuming;
      2. _LID returns a cached value or not.
      
      The result is as follows:
      
       1. lid_init_state=method
         1. cached
            1. resumed by lid:
               (x) event=close
               (x) systemd=suspends again
               (x) acpid=suspends again
               (x) state=close
            2. resumed by other:
               (o) event=close
               (x) systemd=suspends again
               (x) acpid=suspends again
               (o) state=close
         2. non-cached
            1. resumed by lid:
               (o) event=open
               (o) systemd=resumes
               (o) acpid=resumes
               (o) state=open
            2. resumed by other:
               (o) event=close
               (x) systemd=suspends again
               (x) acpid=suspends again
               (o) state=close
       2. lid_init_state=open
         1. cached
            1. resumed by lid:
               (o) event=open
               (o) systemd=resumes
               (o) acpid=resumes
               (x) state=close
            2. resumed by other:
               (x) event=open
               (o) systemd=resumes
               (o) acpid=resumes
               (o) state=close
         2. non-cached
            1. resumed by lid:
               (o) event=open
               (o) systemd=resumes
               (o) acpid=resumes
               (o) state=open
            2. resumed by other:
               (x) event=open
               (o) systemd=resumes
               (o) acpid=resumes
               (o) state=close
       3. lid_init_state=ignore
         1. cached
            1. resumed by lid:
               (o) event=none
               (x) systemd=suspends again
               (o) acpid=resumes
               (x) state=close
            2. resumed by other:
               (o) event=none
               (x) systemd=suspends again
               (o) acpid=resumes
               (o) state=close
         2. non-cached
            1. resumed by lid:
               (o) event=none
               (x) systemd=suspends again
               (o) acpid=resumes
               (o) state=open
            2. resumed by other:
               (o) event=none
               (x) systemd=suspends again
               (o) acpid=resumes
               (o) state=close
      
      As a conclusion:
       1. With systemd changed, lid_init_state=ignore has only one problem and the
          problem comes from an underlying issue, not userspace and kernel lid
          handling.
       2. Without systemd changed, lid_init_state=open can be the default
          behavior as the pass ratio is not much worse than lid_init_state=ignore.
       3. lid_init_state=method is buggy, we can have a separate patch to make it
          deprectated.
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=187271Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      77e9a4aa
  16. 30 1月, 2017 2 次提交