]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
char: xilinx_devcfg: Fix regression
authorMichael Hennerich <michael.hennerich@analog.com>
Fri, 27 Oct 2017 09:38:04 +0000 (11:38 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 31 Oct 2017 13:52:27 +0000 (14:52 +0100)
Fixed regression introduced by remove volatile in
'a920e66a043 ("char: xilinx_devcfg: Fix warnings in the driver")'

removed volatile around dma_done and error_status without further actions.
This fix prevents these variables from being optimized away without being
read.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/char/xilinx_devcfg.c

index 81ee11fe7298b2eb3f1f9c719941599bf4177401..81cf118d387b5d36a7b172be86378e3e2066582a 100644 (file)
@@ -349,14 +349,14 @@ xdevcfg_write(struct file *file, const char __user *buf, size_t count,
 
        timeout = jiffies + msecs_to_jiffies(1000);
 
-       while (!drvdata->dma_done) {
+       while (!READ_ONCE(drvdata->dma_done)) {
                if (time_after(jiffies, timeout)) {
                        status = -ETIMEDOUT;
                        goto error;
                }
        }
 
-       if (drvdata->error_status)
+       if (READ_ONCE(drvdata->error_status))
                status = drvdata->error_status;
 
        /* Disable the DMA and error interrupts */