Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
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
This commit is contained in:
commit
a7c9b603cf
@ -1590,14 +1590,21 @@ static int acpi_nfit_find_poison(struct acpi_nfit_desc *acpi_desc,
|
|||||||
start = ndr_desc->res->start;
|
start = ndr_desc->res->start;
|
||||||
len = ndr_desc->res->end - ndr_desc->res->start + 1;
|
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);
|
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)
|
if (rc)
|
||||||
goto out;
|
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) ||
|
if ((ars_cap->status & 0xffff) ||
|
||||||
!(ars_cap->status >> 16 & ND_ARS_PERSISTENT)) {
|
!(ars_cap->status >> 16 & ND_ARS_PERSISTENT)) {
|
||||||
dev_warn(acpi_desc->dev,
|
dev_warn(acpi_desc->dev,
|
||||||
|
Loading…
Reference in New Issue
Block a user