On 1/4/2016 5:34 PM, Vishal Verma wrote: > Normally, if a platform does not advertise support for Address Range > Scrub (ARS), we skip it. But if ARS is advertised, it is expected to > always succeed. If it fails, we normally fail initialization at that > point. > > Add a module parameter to nfit that lets it ignore ARS failures and > continue with initialization for debugging. Could ARS be so broken that you might want to just ignore it altogether and not even make the requests? -- ljk > > Signed-off-by: Vishal Verma <vishal.l.verma@xxxxxxxxx> > --- > > This applies on top of both of the previous error handling series > (badblocks and libnvdimm poison list). The tree at: > https://git.kernel.org/cgit/linux/kernel/git/vishal/nvdimm.git/log/?h=err_handling_latest > has been updated with this patch. > > drivers/acpi/nfit.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c > index ad6d8c6..0a152f1 100644 > --- a/drivers/acpi/nfit.c > +++ b/drivers/acpi/nfit.c > @@ -34,6 +34,10 @@ static bool force_enable_dimms; > module_param(force_enable_dimms, bool, S_IRUGO|S_IWUSR); > MODULE_PARM_DESC(force_enable_dimms, "Ignore _STA (ACPI DIMM device) status"); > > +static bool ignore_ars; > +module_param(ignore_ars, bool, S_IRUGO|S_IWUSR); > +MODULE_PARM_DESC(ignore_ars, "Ignore ARS (Address Range Scrub) failures"); > + > struct nfit_table_prev { > struct list_head spas; > struct list_head memdevs; > @@ -1786,7 +1790,10 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc, > dev_err(acpi_desc->dev, > "error while performing ARS to find poison: %d\n", > rc); > - return rc; > + if (ignore_ars) > + ; /* continue initialization */ > + else > + return rc; > } > if (!nvdimm_pmem_region_create(nvdimm_bus, ndr_desc)) > return -ENOMEM; > -- 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