On Thu, Mar 3, 2016 at 2:39 PM, Vishal Verma <vishal.l.verma@xxxxxxxxx> wrote: > 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. > > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Reported-by: Xiao Guangrong <guangrong.xiao@xxxxxxxxxxxxxxx> > Signed-off-by: Vishal Verma <vishal.l.verma@xxxxxxxxx> > --- > > v2: > - improve the debug message when we his this unimplemented case (Dan). > > 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 fb53db1..35947ac 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, > -- > 2.5.0 > Looks good to me. Thanks Vishal! -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html