All of lore.kernel.org
 help / color / mirror / Atom feed
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 16/16] staging: vchiq: add more tasks to the TODO list
Date: Wed, 14 Nov 2018 13:59:42 +0100	[thread overview]
Message-ID: <20181114125942.25163-17-nsaenzjulienne@suse.de> (raw)
In-Reply-To: <20181114125942.25163-1-nsaenzjulienne@suse.de>

The TODO list was missing some tasks needed before upstreaming the
device.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
 .../staging/vc04_services/interface/vchi/TODO | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/drivers/staging/vc04_services/interface/vchi/TODO b/drivers/staging/vc04_services/interface/vchi/TODO
index 0b3ec75ff627..fc2752bc95b2 100644
--- a/drivers/staging/vc04_services/interface/vchi/TODO
+++ b/drivers/staging/vc04_services/interface/vchi/TODO
@@ -49,3 +49,45 @@ such as dev_info, dev_dbg, and friends.
 
 A short top-down description of this driver's architecture (function of
 kthreads, userspace, limitations) could be very helpful for reviewers.
+
+7) Review and comment memory barriers
+
+There is a heavy use of memory barriers in this driver, it would be very
+beneficial to go over all of them and, if correct, comment on their merits.
+Extra points to whomever confidently reviews the remote_event_*() family of
+functions.
+
+8) Get rid of custom function return values
+
+Most functions use a custom set of return values, we should force proper Linux
+error numbers. Special care is needed for VCHIQ_RETRY.
+
+9) Reformat core code with more sane indentations
+
+The code follows the 80 characters limitation yet tends to go 3 or 4 levels of
+indentation deep making it very unpleasant to read. This is specially relevant
+in the character driver ioctl code and in the core thread functions.
+
+10) Reorganize file structure: Move char driver to it's own file and join both
+platform files
+
+The cdev is defined alongside with the platform code in vchiq_arm.c. It would
+be nice to completely decouple it from the actual core code. For instance to be
+able to use bcm2835-audio without having /dev/vchiq created. One could argue
+it's better for security reasons or general cleanliness. It could even be
+interesting to create two different kernel modules, something the likes of
+vchiq-core.ko and vchiq-dev.ko. This would also ease the upstreaming process.
+
+The code in vchiq_bcm2835_arm.c should fit in the generic platform file.
+
+12) Get rid of all the struct typedefs
+
+Most structs are typedefd, it's not encouraged in the kernel.
+
+13) Get rid of all non essential global structures and create a proper per
+device structure
+
+The first thing one generally sees in a probe function is a memory allocation
+for all the device specific data. This structure is then passed all over the
+driver. This is good practice since it makes the driver work regardless of the
+number of devices probed.
-- 
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 16/16] staging: vchiq: add more tasks to the TODO list
Date: Wed, 14 Nov 2018 13:59:42 +0100	[thread overview]
Message-ID: <20181114125942.25163-17-nsaenzjulienne@suse.de> (raw)
In-Reply-To: <20181114125942.25163-1-nsaenzjulienne@suse.de>

The TODO list was missing some tasks needed before upstreaming the
device.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
 .../staging/vc04_services/interface/vchi/TODO | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/drivers/staging/vc04_services/interface/vchi/TODO b/drivers/staging/vc04_services/interface/vchi/TODO
index 0b3ec75ff627..fc2752bc95b2 100644
--- a/drivers/staging/vc04_services/interface/vchi/TODO
+++ b/drivers/staging/vc04_services/interface/vchi/TODO
@@ -49,3 +49,45 @@ such as dev_info, dev_dbg, and friends.
 
 A short top-down description of this driver's architecture (function of
 kthreads, userspace, limitations) could be very helpful for reviewers.
+
+7) Review and comment memory barriers
+
+There is a heavy use of memory barriers in this driver, it would be very
+beneficial to go over all of them and, if correct, comment on their merits.
+Extra points to whomever confidently reviews the remote_event_*() family of
+functions.
+
+8) Get rid of custom function return values
+
+Most functions use a custom set of return values, we should force proper Linux
+error numbers. Special care is needed for VCHIQ_RETRY.
+
+9) Reformat core code with more sane indentations
+
+The code follows the 80 characters limitation yet tends to go 3 or 4 levels of
+indentation deep making it very unpleasant to read. This is specially relevant
+in the character driver ioctl code and in the core thread functions.
+
+10) Reorganize file structure: Move char driver to it's own file and join both
+platform files
+
+The cdev is defined alongside with the platform code in vchiq_arm.c. It would
+be nice to completely decouple it from the actual core code. For instance to be
+able to use bcm2835-audio without having /dev/vchiq created. One could argue
+it's better for security reasons or general cleanliness. It could even be
+interesting to create two different kernel modules, something the likes of
+vchiq-core.ko and vchiq-dev.ko. This would also ease the upstreaming process.
+
+The code in vchiq_bcm2835_arm.c should fit in the generic platform file.
+
+12) Get rid of all the struct typedefs
+
+Most structs are typedefd, it's not encouraged in the kernel.
+
+13) Get rid of all non essential global structures and create a proper per
+device structure
+
+The first thing one generally sees in a probe function is a memory allocation
+for all the device specific data. This structure is then passed all over the
+driver. This is good practice since it makes the driver work regardless of the
+number of devices probed.
-- 
2.19.1

  parent reply	other threads:[~2018-11-14 13:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-14 12:59 [PATCH 00/16] staging: vchiq: dead code removal & misc fixes Nicolas Saenz Julienne
2018-11-14 12:59 ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 01/16] staging: vchiq_core: rework vchiq_get_config Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 02/16] staging: vchiq_arm: rework close/remove_service IOCTLS Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 03/16] staging: vchiq_shim: delete vchi_service_create Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 04/16] staging: vchiq_arm: use list_for_each_entry when accessing bulk_waiter_list Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 05/16] staging: vchiq_arm: get rid of vchi_mh.h Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 06/16] staging: vchiq_arm: rework vchiq_ioc_copy_element_data Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 07/16] staging: vchiq-core: get rid of is_master distinction Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 08/16] staging: vchiq_core: remove unnecessary safety checks in vchiq_init_state Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 09/16] staging: vchiq_core: do not initialize semaphores twice Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 10/16] staging: vchiq_core: don't add a wmb() before remote_event_signal() Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 11/16] staging: vchiq: use completions instead of semaphores Nicolas Saenz Julienne
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
2018-11-14 12:59 ` [PATCH 13/16] staging: vchiq_core: fix logic redundancy in parse_open Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 14/16] staging: vchiq_arm: rework probe and init functions Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` [PATCH 15/16] staging: vchiq_arm: fix open/release cdev functions Nicolas Saenz Julienne
2018-11-14 12:59   ` Nicolas Saenz Julienne
2018-11-14 12:59 ` Nicolas Saenz Julienne [this message]
2018-11-14 12:59   ` [PATCH 16/16] staging: vchiq: add more tasks to the TODO list Nicolas Saenz Julienne
2018-11-18 15:55 ` [PATCH 00/16] staging: vchiq: dead code removal & misc fixes Stefan Wahren
2018-11-18 15:55   ` Stefan Wahren
2018-11-20  9:57   ` Greg KH
2018-11-20  9:57     ` Greg KH
2018-11-20 10:04     ` Nicolas Saenz Julienne
2018-11-20 10:04       ` Nicolas Saenz Julienne
2018-11-20 10:08       ` Stefan Wahren
2018-11-20 10:08         ` Stefan Wahren
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

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=20181114125942.25163-17-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: link
Be 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.