1. 30 5月, 2017 1 次提交
    • L
      ACPICA: Tables: Fix regression introduced by a too early mechanism enabling · 2ea65321
      Lv Zheng 提交于
      In the Linux kernel, acpi_get_table() "clones" haven't been fully
      balanced by acpi_put_table() invocations.  In upstream ACPICA, due to
      the design change, there are also unbalanced acpi_get_table_by_index()
      invocations requiring special care.
      
      acpi_get_table() reference counting mismatches may occor due to that
      and printing error messages related to them is not useful at this
      point.  The strict balanced validation count check should only be
      enabled after confirming that all invocations are safe and aligned
      with their designed purposes.
      
      Thus this patch removes the error value returned by acpi_tb_get_table()
      in that case along with the accompanying error message to fix the
      issue.
      
      Fixes: 174cc718 (ACPICA: Tables: Back port acpi_get_table_with_size() and early_acpi_os_unmap_memory() from Linux kernel)
      Cc: 4.10+ <stable@vger.kernel.org> # 4.10+
      Reported-by: NAnush Seetharaman <anush.seetharaman@intel.com>
      Reported-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      [ rjw: Changelog ]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2ea65321
  2. 29 4月, 2017 1 次提交
  3. 27 4月, 2017 11 次提交
  4. 14 4月, 2017 1 次提交
  5. 12 4月, 2017 1 次提交
    • L
      ACPICA: Add non-linux host build support · 6895baa6
      Lv Zheng 提交于
      _LINUX: used to detect a target build is a linux kernel/application.
      __linux__: used to detect a build is on a linux hosts.
      
      Thus we can see: if a linux kernel build is performed on environments other
      than linux hosts, __linux__ may not be defined by the compiler and _LINUX
      cannot cover linux kernel resident ACPICA files, as it's only defined in
      <linux/acpi.h> and hence only allows non ACPICA kernel files to correctly
      include aclinux.h.
      As a conclusion, we don't actually support such build.
      
      This patch adds -D_LINUX for ACPICA files so that kernel builds on any
      hosts can use unified _LINUX as a linux kernel target indication to
      correctly include aclinux.h.
      Tested-by: NAl Stone <ahs3@redhat.com>
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      6895baa6
  6. 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
  7. 29 3月, 2017 4 次提交
  8. 14 3月, 2017 1 次提交
  9. 11 3月, 2017 4 次提交
  10. 02 3月, 2017 2 次提交
  11. 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
  12. 28 2月, 2017 4 次提交
  13. 16 2月, 2017 1 次提交
  14. 10 2月, 2017 2 次提交
  15. 09 2月, 2017 3 次提交
  16. 07 2月, 2017 1 次提交