Created
July 5, 2018 21:50
-
-
Save djbw/d63d3d6fe4ff6d20e9594f69427c5a40 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c | |
index 2be8373153ed..03d773096f4e 100644 | |
--- a/drivers/acpi/nfit/core.c | |
+++ b/drivers/acpi/nfit/core.c | |
@@ -1275,7 +1275,7 @@ static ssize_t scrub_show(struct device *dev, | |
mutex_lock(&acpi_desc->init_mutex); | |
rc = sprintf(buf, "%d%s", acpi_desc->scrub_count, | |
- work_busy(&acpi_desc->dwork.work) | |
+ acpi_desc->scrub_busy | |
&& !acpi_desc->cancel ? "+\n" : "\n"); | |
mutex_unlock(&acpi_desc->init_mutex); | |
} | |
@@ -2962,9 +2962,11 @@ static void acpi_nfit_scrub(struct work_struct *work) | |
query_rc = acpi_nfit_query_poison(acpi_desc); | |
tmo = __acpi_nfit_scrub(acpi_desc, query_rc); | |
if (tmo) { | |
- queue_delayed_work(nfit_wq, &acpi_desc->dwork, tmo * HZ); | |
+ acpi_desc->scrub_busy = 1; | |
acpi_desc->scrub_tmo = tmo; | |
+ queue_delayed_work(nfit_wq, &acpi_desc->dwork, tmo * HZ); | |
} else { | |
+ acpi_desc->scrub_busy = 0; | |
acpi_desc->scrub_count++; | |
if (acpi_desc->scrub_count_state) | |
sysfs_notify_dirent(acpi_desc->scrub_count_state); | |
@@ -3049,6 +3051,7 @@ static int acpi_nfit_register_regions(struct acpi_nfit_desc *acpi_desc) | |
break; | |
} | |
+ acpi_desc->scrub_busy = 1; | |
queue_delayed_work(nfit_wq, &acpi_desc->dwork, 0); | |
return 0; | |
} | |
@@ -3251,6 +3254,7 @@ int acpi_nfit_ars_rescan(struct acpi_nfit_desc *acpi_desc, unsigned long flags) | |
} | |
} | |
if (scheduled) { | |
+ acpi_desc->scrub_busy = 1; | |
queue_delayed_work(nfit_wq, &acpi_desc->dwork, 0); | |
dev_dbg(dev, "ars_scan triggered\n"); | |
} | |
diff --git a/drivers/acpi/nfit/nfit.h b/drivers/acpi/nfit/nfit.h | |
index 7d15856a739f..a97ff42fe311 100644 | |
--- a/drivers/acpi/nfit/nfit.h | |
+++ b/drivers/acpi/nfit/nfit.h | |
@@ -203,6 +203,7 @@ struct acpi_nfit_desc { | |
unsigned int max_ars; | |
unsigned int scrub_count; | |
unsigned int scrub_mode; | |
+ unsigned int scrub_busy:1; | |
unsigned int cancel:1; | |
unsigned long dimm_cmd_force_en; | |
unsigned long bus_cmd_force_en; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment