lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 24 Oct 2020 08:06:42 -0700 From: Jaegeuk Kim <jaegeuk@...nel.org> To: linux-kernel@...r.kernel.org, linux-scsi@...r.kernel.org, linux-f2fs-devel@...ts.sourceforge.net, kernel-team@...roid.com Cc: cang@...eaurora.org, alim.akhtar@...sung.com, avri.altman@....com, bvanassche@....org, Jaegeuk Kim <jaegeuk@...gle.com> Subject: [PATCH v3 1/5] scsi: ufs: atomic update for clkgating_enable From: Jaegeuk Kim <jaegeuk@...gle.com> When giving a stress test which enables/disables clkgating, we hit device timeout sometimes. This patch avoids subtle racy condition to address it. If we use __ufshcd_release(), I've seen that gate_work can be called in parallel with ungate_work, which results in UFS timeout when doing hibern8. Should avoid it. Signed-off-by: Jaegeuk Kim <jaegeuk@...gle.com> --- drivers/scsi/ufs/ufshcd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index b8f573a02713..e0b479f9eb8a 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -1807,19 +1807,19 @@ static ssize_t ufshcd_clkgate_enable_store(struct device *dev, return -EINVAL; value = !!value; + + spin_lock_irqsave(hba->host->host_lock, flags); if (value == hba->clk_gating.is_enabled) goto out; - if (value) { - ufshcd_release(hba); - } else { - spin_lock_irqsave(hba->host->host_lock, flags); + if (value) + hba->clk_gating.active_reqs--; + else hba->clk_gating.active_reqs++; - spin_unlock_irqrestore(hba->host->host_lock, flags); - } hba->clk_gating.is_enabled = value; out: + spin_unlock_irqrestore(hba->host->host_lock, flags); return count; } -- 2.29.0.rc1.297.gfa9743e501-goog
Powered by blists - more mailing lists