1. 20 4月, 2017 4 次提交
  2. 14 4月, 2017 1 次提交
  3. 13 4月, 2017 1 次提交
  4. 01 4月, 2017 1 次提交
    • R
      ACPI / scan: Prefer devices without _HID for _ADR matching · fdad4e7a
      Rafael J. Wysocki 提交于
      Commit c2a6bbaf (ACPI / scan: Prefer devices without _HID/_CID
      for _ADR matching) added a list_empty(&adev->pnp.ids) check to
      find_child_checks() so as to catch situations in which the ACPI
      core attempts to decode _ADR for a device having a _HID too which
      is strictly against the spec.  However, it overlooked the fact that
      the adev->pnp.ids list for the devices taken into account by
      find_child_checks() may contain device IDs set internally by the
      kernel, like "LNXVIDEO" (thanks to Zhang Rui for that realization),
      and it broke the enumeration of those devices as a result.
      
      To unbreak it, replace the overly coarse grained list_empty()
      check with a much more precise check against the pnp.type.platform_id
      flag which is only set for devices having a _HID (that's how it
      should be done from the start, as having both _ADR and _CID is
      actually permitted).
      
      Fixes: c2a6bbaf (ACPI / scan: Prefer devices without _HID/_CID for _ADR matching)
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=194889Reported-and-tested-by: NMike <mike@mikewilson.me.uk>
      Tested-by: NHans de Goede <hdegoede@redhat.com>
      Cc: 4.10+ <stable@vger.kernel.org> # 4.10+
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      fdad4e7a
  5. 29 3月, 2017 4 次提交
  6. 28 3月, 2017 1 次提交
  7. 14 3月, 2017 1 次提交
  8. 11 3月, 2017 4 次提交
  9. 02 3月, 2017 2 次提交
  10. 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
  11. 28 2月, 2017 4 次提交
  12. 16 2月, 2017 1 次提交
  13. 10 2月, 2017 2 次提交
  14. 09 2月, 2017 3 次提交
  15. 07 2月, 2017 4 次提交
  16. 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
  17. 03 2月, 2017 2 次提交
  18. 01 2月, 2017 1 次提交