]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: vchiq_util: get rid of unneeded memory barriers
authorNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Tue, 20 Nov 2018 14:53:47 +0000 (15:53 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Nov 2018 09:13:37 +0000 (10:13 +0100)
All the memory operations featured in this file modify/access memory
that is only accessed by the CPU. So we can assume that all the memory
barrier handling done by the completion routines is good enough for us.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c

index 44b954daa74aa9bf8ed7f8f3ebaa578a6a1b130e..4b8554bc647e3287594fc76003c29936d6c1d815 100644 (file)
@@ -84,20 +84,7 @@ void vchiu_queue_push(VCHIU_QUEUE_T *queue, VCHIQ_HEADER_T *header)
                        flush_signals(current);
        }
 
-       /*
-        * Write to queue->storage must be visible after read from
-        * queue->read
-        */
-       smp_mb();
-
        queue->storage[queue->write & (queue->size - 1)] = header;
-
-       /*
-        * Write to queue->storage must be visible before write to
-        * queue->write
-        */
-       smp_wmb();
-
        queue->write++;
 
        complete(&queue->push);
@@ -112,12 +99,6 @@ VCHIQ_HEADER_T *vchiu_queue_peek(VCHIU_QUEUE_T *queue)
 
        complete(&queue->push); // We haven't removed anything from the queue.
 
-       /*
-        * Read from queue->storage must be visible after read from
-        * queue->write
-        */
-       smp_rmb();
-
        return queue->storage[queue->read & (queue->size - 1)];
 }
 
@@ -130,20 +111,7 @@ VCHIQ_HEADER_T *vchiu_queue_pop(VCHIU_QUEUE_T *queue)
                        flush_signals(current);
        }
 
-       /*
-        * Read from queue->storage must be visible after read from
-        * queue->write
-        */
-       smp_rmb();
-
        header = queue->storage[queue->read & (queue->size - 1)];
-
-       /*
-        * Read from queue->storage must be visible before write to
-        * queue->read
-        */
-       smp_mb();
-
        queue->read++;
 
        complete(&queue->pop);