Andrew, sorry, ignore this, I fumble fingered a ^R in bash and sent this. I'm going to include this in a pull request to Linus.
On Fri, Mar 4, 2016 at 4:46 PM, Dan Williams <[email protected]> wrote: > From: Vishal Verma <[email protected]> > > If firmware doesn't implement any of the ARS commands, take that to > mean that ARS is unsupported, and continue to initialize regions without > bad block lists. We cannot make the assumption that ARS commands will be > unconditionally supported on all NVDIMMs. > > Reported-by: Haozhong Zhang <[email protected]> > Signed-off-by: Vishal Verma <[email protected]> > Acked-by: Xiao Guangrong <[email protected]> > Tested-by: Haozhong Zhang <[email protected]> > Signed-off-by: Dan Williams <[email protected]> > --- > drivers/acpi/nfit.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c > index fb53db187854..35947ac87644 100644 > --- a/drivers/acpi/nfit.c > +++ b/drivers/acpi/nfit.c > @@ -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, >

