aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-11-13 15:38:26 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-13 15:38:26 -0500
commit8e9a2dba8686187d8c8179e5b86640e653963889 (patch)
treea4ba543649219cbb28d91aab65b785d763f5d069 /drivers/edac
parent6098850e7e6978f95a958f79a645a653228d0002 (diff)
parent450cbdd0125cfa5d7bbf9e2a6b6961cc48d29730 (diff)
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core locking updates from Ingo Molnar: "The main changes in this cycle are: - Another attempt at enabling cross-release lockdep dependency tracking (automatically part of CONFIG_PROVE_LOCKING=y), this time with better performance and fewer false positives. (Byungchul Park) - Introduce lockdep_assert_irqs_enabled()/disabled() and convert open-coded equivalents to lockdep variants. (Frederic Weisbecker) - Add down_read_killable() and use it in the VFS's iterate_dir() method. (Kirill Tkhai) - Convert remaining uses of ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE(). Most of the conversion was Coccinelle driven. (Mark Rutland, Paul E. McKenney) - Get rid of lockless_dereference(), by strengthening Alpha atomics, strengthening READ_ONCE() with smp_read_barrier_depends() and thus being able to convert users of lockless_dereference() to READ_ONCE(). (Will Deacon) - Various micro-optimizations: - better PV qspinlocks (Waiman Long), - better x86 barriers (Michael S. Tsirkin) - better x86 refcounts (Kees Cook) - ... plus other fixes and enhancements. (Borislav Petkov, Juergen Gross, Miguel Bernal Marin)" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits) locking/x86: Use LOCK ADD for smp_mb() instead of MFENCE rcu: Use lockdep to assert IRQs are disabled/enabled netpoll: Use lockdep to assert IRQs are disabled/enabled timers/posix-cpu-timers: Use lockdep to assert IRQs are disabled/enabled sched/clock, sched/cputime: Use lockdep to assert IRQs are disabled/enabled irq_work: Use lockdep to assert IRQs are disabled/enabled irq/timings: Use lockdep to assert IRQs are disabled/enabled perf/core: Use lockdep to assert IRQs are disabled/enabled x86: Use lockdep to assert IRQs are disabled/enabled smp/core: Use lockdep to assert IRQs are disabled/enabled timers/hrtimer: Use lockdep to assert IRQs are disabled/enabled timers/nohz: Use lockdep to assert IRQs are disabled/enabled workqueue: Use lockdep to assert IRQs are disabled/enabled irq/softirqs: Use lockdep to assert IRQs are disabled/enabled locking/lockdep: Add IRQs disabled/enabled assertion APIs: lockdep_assert_irqs_enabled()/disabled() locking/pvqspinlock: Implement hybrid PV queued/unfair locks locking/rwlocks: Fix comments x86/paravirt: Set up the virt_spin_lock_key after static keys get initialized block, locking/lockdep: Assign a lock_class per gendisk used for wait_for_completion() workqueue: Remove now redundant lock acquisitions wrt. workqueue flushes ...
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/altera_edac.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c
index 346c4987b284..11d6419788c2 100644
--- a/drivers/edac/altera_edac.c
+++ b/drivers/edac/altera_edac.c
@@ -175,11 +175,11 @@ static ssize_t altr_sdr_mc_err_inject_write(struct file *file,
175 /* 175 /*
176 * To trigger the error, we need to read the data back 176 * To trigger the error, we need to read the data back
177 * (the data was written with errors above). 177 * (the data was written with errors above).
178 * The ACCESS_ONCE macros and printk are used to prevent the 178 * The READ_ONCE macros and printk are used to prevent the
179 * the compiler optimizing these reads out. 179 * the compiler optimizing these reads out.
180 */ 180 */
181 reg = ACCESS_ONCE(ptemp[0]); 181 reg = READ_ONCE(ptemp[0]);
182 read_reg = ACCESS_ONCE(ptemp[1]); 182 read_reg = READ_ONCE(ptemp[1]);
183 /* Force Read */ 183 /* Force Read */
184 rmb(); 184 rmb();
185 185
@@ -618,7 +618,7 @@ static ssize_t altr_edac_device_trig(struct file *file,
618 for (i = 0; i < (priv->trig_alloc_sz / sizeof(*ptemp)); i++) { 618 for (i = 0; i < (priv->trig_alloc_sz / sizeof(*ptemp)); i++) {
619 /* Read data so we're in the correct state */ 619 /* Read data so we're in the correct state */
620 rmb(); 620 rmb();
621 if (ACCESS_ONCE(ptemp[i])) 621 if (READ_ONCE(ptemp[i]))
622 result = -1; 622 result = -1;
623 /* Toggle Error bit (it is latched), leave ECC enabled */ 623 /* Toggle Error bit (it is latched), leave ECC enabled */
624 writel(error_mask, (drvdata->base + priv->set_err_ofst)); 624 writel(error_mask, (drvdata->base + priv->set_err_ofst));
@@ -635,7 +635,7 @@ static ssize_t altr_edac_device_trig(struct file *file,
635 635
636 /* Read out written data. ECC error caused here */ 636 /* Read out written data. ECC error caused here */
637 for (i = 0; i < ALTR_TRIGGER_READ_WRD_CNT; i++) 637 for (i = 0; i < ALTR_TRIGGER_READ_WRD_CNT; i++)
638 if (ACCESS_ONCE(ptemp[i]) != i) 638 if (READ_ONCE(ptemp[i]) != i)
639 edac_printk(KERN_ERR, EDAC_DEVICE, 639 edac_printk(KERN_ERR, EDAC_DEVICE,
640 "Read doesn't match written data\n"); 640 "Read doesn't match written data\n");
641 641