Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7c9b603 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull libnvcimm fix from Dan Williams:
 "One straggling fix for NVDIMM support.

  The KVM/QEMU enabling for NVDIMMs has recently reached the point where
  it is able to accept some ACPI _DSM requests from a guest VM.  However
  they immediately found that the 4.5-rc kernel is unusable because the
  kernel's 'nfit' driver fails to load upon seeing a valid "not
  supported" response from the virtual BIOS for an address range scrub
  command.

  It is not mandatory that a platform implement address range scrubbing,
  so this fix from Vishal properly treats the 'not supported' response
  as 'skip scrubbing and continue loading the driver'"

* 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
  nfit: Continue init even if ARS commands are unimplemented
parents c12f83c3 6e2452df
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -1590,14 +1590,21 @@ static int acpi_nfit_find_poison(struct acpi_nfit_desc *acpi_desc,
	start = ndr_desc->res->start;
	len = ndr_desc->res->end - ndr_desc->res->start + 1;

	/*
	 * If ARS is unimplemented, unsupported, or if the 'Persistent Memory
	 * Scrub' flag in extended status is not set, skip this but continue
	 * initialization
	 */
	rc = ars_get_cap(nd_desc, ars_cap, start, len);
	if (rc == -ENOTTY) {
		dev_dbg(acpi_desc->dev,
			"Address Range Scrub is not implemented, won't create an error list\n");
		rc = 0;
		goto out;
	}
	if (rc)
		goto out;

	/*
	 * If ARS is unsupported, or if the 'Persistent Memory Scrub' flag in
	 * extended status is not set, skip this but continue initialization
	 */
	if ((ars_cap->status & 0xffff) ||
		!(ars_cap->status >> 16 & ND_ARS_PERSISTENT)) {
		dev_warn(acpi_desc->dev,