Adding a kernel module parameter no_start_ars in order to bypass kernel
initiating scrubbing ARS.

Signed-off-by: Dave Jiang <dave.ji...@intel.com>
---
 drivers/acpi/nfit/core.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index 32670b82fbfc..fa4023ffa022 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -55,6 +55,10 @@ module_param(default_dsm_family, int, S_IRUGO);
 MODULE_PARM_DESC(default_dsm_family,
                "Try this DSM type first when identifying NVDIMM family");
 
+static int no_start_ars = 0;
+module_param(no_start_ars, int, S_IRUGO);
+MODULE_PARM_DESC(no_start_ars, "Disable kernel from initiate ARS at boot");
+
 LIST_HEAD(acpi_descs);
 DEFINE_MUTEX(acpi_desc_lock);
 
@@ -2962,10 +2966,13 @@ static void acpi_nfit_scrub(struct work_struct *work)
                 * we'll just go ahead and register the region.
                 */
                if (!acpi_desc->init_complete) {
-                       dev_dbg(dev, "Range %d requested for ARS\n",
-                               nfit_spa->spa->range_index);
-                       nfit_spa->ars_state = NFIT_ARS_STATE_REQUESTED;
-                       ars_needed++;
+                       if (!no_start_ars) {
+                               dev_dbg(dev, "Range %d requested for ARS\n",
+                                               nfit_spa->spa->range_index);
+                               nfit_spa->ars_state =
+                                       NFIT_ARS_STATE_REQUESTED;
+                               ars_needed++;
+                       }
                } else {
                        acpi_nfit_register_region(acpi_desc, nfit_spa);
                        dev_dbg(dev, "Range %d register region\n",

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to