Message ID | 1457044781-15443-1-git-send-email-vishal.l.verma@intel.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Thu, Mar 3, 2016 at 2:39 PM, Vishal Verma <vishal.l.verma@intel.com> 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@intel.com> > Reported-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> > --- > > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
CCed: Haozhong. On 03/04/2016 06:39 AM, Vishal Verma 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@intel.com> > Reported-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> Thank you for the fix, Vishal! it looks good to me. However, It is haozhong's credit as he is the one reported the bug not me. :) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/04/16 11:28, Xiao Guangrong wrote: > > CCed: Haozhong. > > On 03/04/2016 06:39 AM, Vishal Verma 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@intel.com> > >Reported-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> > > Thank you for the fix, Vishal! it looks good to me. > > However, It is haozhong's credit as he is the one reported the bug not > me. :) > Thanks! I have tested on QEMU which has not implemented ARS yet and this patch does work. Tested-by: Haozhong Zhang <haozhong.zhang@intel.com> -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2016-03-04 at 11:34 +0800, Zhang, Haozhong wrote: > On 03/04/16 11:28, Xiao Guangrong wrote: > > > > > > CCed: Haozhong. > > > > On 03/04/2016 06:39 AM, Vishal Verma 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@intel.com> > > > Reported-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> > > Thank you for the fix, Vishal! it looks good to me. > > > > However, It is haozhong's credit as he is the one reported the bug > > not > > me. :) > > > Thanks! I have tested on QEMU which has not implemented ARS yet and > this patch does work. > > Tested-by: Haozhong Zhang <haozhong.zhang@intel.com> Thanks, both Haozhong and Guangrong. Dan, can you please fixup the Reported-by tag when you apply. -Vishal > _______________________________________________ > Linux-nvdimm mailing list > Linux-nvdimm@lists.01.org > https://lists.01.org/mailman/listinfo/linux-nvdimm -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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,
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@intel.com> Reported-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> --- v2: - improve the debug message when we his this unimplemented case (Dan). drivers/acpi/nfit.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)