Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96f33712 authored by Nicolas Saenz Julienne's avatar Nicolas Saenz Julienne Committed by Greg Kroah-Hartman
Browse files

staging: vchiq_util: get rid of unneeded memory barriers



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: default avatarNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Acked-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f27e47bc
Loading
Loading
Loading
Loading
+0 −32
Original line number Diff line number Diff line
@@ -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);