From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> To: stefan.wahren@i2se.com, eric@anholt.net, dave.stevenson@raspberrypi.org Cc: linux-rpi-kernel@lists.infradead.org, gregkh@linuxfoundation.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Subject: [PATCH 12/16] staging: vchiq_util: get rid of unneeded memory barriers Date: Tue, 20 Nov 2018 15:53:47 +0100 [thread overview] Message-ID: <20181120145351.30390-13-nsaenzjulienne@suse.de> (raw) In-Reply-To: <20181120145351.30390-1-nsaenzjulienne@suse.de> 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> --- .../interface/vchiq_arm/vchiq_util.c | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c index 44b954daa74a..4b8554bc647e 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c @@ -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); -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: nsaenzjulienne@suse.de (Nicolas Saenz Julienne) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 12/16] staging: vchiq_util: get rid of unneeded memory barriers Date: Tue, 20 Nov 2018 15:53:47 +0100 [thread overview] Message-ID: <20181120145351.30390-13-nsaenzjulienne@suse.de> (raw) In-Reply-To: <20181120145351.30390-1-nsaenzjulienne@suse.de> 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> --- .../interface/vchiq_arm/vchiq_util.c | 32 ------------------- 1 file changed, 32 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c index 44b954daa74a..4b8554bc647e 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_util.c @@ -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); -- 2.19.1
next prev parent reply other threads:[~2018-11-20 14:54 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-20 14:53 [PATCH 00/16] staging: vchiq: dead code removal & misc fixes Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 01/16] staging: vchiq_core: rework vchiq_get_config Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 02/16] staging: vchiq_arm: rework close/remove_service IOCTLS Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 03/16] staging: vchiq_shim: delete vchi_service_create Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 04/16] staging: vchiq_arm: use list_for_each_entry when accessing bulk_waiter_list Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 05/16] staging: vchiq_arm: get rid of vchi_mh.h Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 06/16] staging: vchiq_arm: rework vchiq_ioc_copy_element_data Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 07/16] staging: vchiq-core: get rid of is_master distinction Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 08/16] staging: vchiq_core: remove unnecessary safety checks in vchiq_init_state Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 09/16] staging: vchiq_core: do not initialize semaphores twice Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 10/16] staging: vchiq_core: don't add a wmb() before remote_event_signal() Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 11/16] staging: vchiq: use completions instead of semaphores Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne [this message] 2018-11-20 14:53 ` [PATCH 12/16] staging: vchiq_util: get rid of unneeded memory barriers Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 13/16] staging: vchiq_core: fix logic redundancy in parse_open Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 14/16] staging: vchiq_arm: rework probe and init functions Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 15/16] staging: vchiq_arm: fix open/release cdev functions Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-20 14:53 ` [PATCH 16/16] staging: vchiq: add more tasks to the TODO list Nicolas Saenz Julienne 2018-11-20 14:53 ` Nicolas Saenz Julienne 2018-11-26 19:36 ` [PATCH 00/16] staging: vchiq: dead code removal & misc fixes Stefan Wahren 2018-11-26 19:36 ` Stefan Wahren 2018-11-27 9:13 ` Greg KH 2018-11-27 9:13 ` Greg KH -- strict thread matches above, loose matches on Subject: below -- 2018-11-14 12:59 Nicolas Saenz Julienne 2018-11-14 12:59 ` [PATCH 12/16] staging: vchiq_util: get rid of unneeded memory barriers Nicolas Saenz Julienne 2018-11-14 12:59 ` Nicolas Saenz Julienne
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181120145351.30390-13-nsaenzjulienne@suse.de \ --to=nsaenzjulienne@suse.de \ --cc=dave.stevenson@raspberrypi.org \ --cc=devel@driverdev.osuosl.org \ --cc=eric@anholt.net \ --cc=gregkh@linuxfoundation.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=stefan.wahren@i2se.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.