lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1623698773.git.ojaswin98@gmail.com>
Date:   Tue, 15 Jun 2021 01:02:32 +0530
From:   Ojaswin Mujoo <ojaswin98@...il.com>
To:     nsaenz@...nel.org
Cc:     gregkh@...uxfoundation.org, dan.carpenter@...cle.com,
        phil@...pberrypi.com, bcm-kernel-feedback-list@...adcom.com,
        linux-arm-kernel@...ts.infradead.org,
        linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: [PATCH 0/1] Request to review progress decoupling vchiq platform code

Greetings,

I'm working on addressing item 10 of the following TODO list:

    drivers/staging/vc04-services/interface/TODO

For reference, the task is:

    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.


This patch is the first step towards decoupling the platform and the cdev code.
It moves all the cdev related code from vchiq_arm.c to vchiq_dev.c. However, for
now, I have aimed to keep the functionality untouched, hence the platform code
still calls the cdev initialisation function, and isn't truly decoupled yet.

The summary of the changes is as follows:


 *  Definition of functions and variables shared by cdev and platform
    code are moved to vchiq_arm.h while declaration stays in vchiq_arm.c

 *  Declaration and definition of functions and variables only used by
    cdev code are moved to vchiq_dev.c file.

 *  Defined vchiq_deregister_chrdev() and vchiq_register_chrdev(..) in
    vchiq_dev.c which handle cdev creation and deletion. They are called by the
    platfrom code during probe().


I mainly wanted to put this patch out to see if I have the right idea of the
task at hand and to ensure I'm heading into the right direction. I would love to
hear your thoughts and suggestions on this. Once I have some feedback on this, I
can accordingly work towards a newer version to completely decouple the code. 

Lastly, I had some questions related to the the task: 

1. So regarding the following line in the TODO:

    "For instance to be able to use bcm2835-audio without having /dev/vchiq
    created." 

  I was wondering about the possible ways to achieve this. Specifically, I was
  thinking of the following 2 ways:

  1.1  Making a KConfig entry for Cdev creation, like CONFIG_VCHIQ_CDEV, and
       then do something like:

         vchiq_probe(..) 
         {
           /* platform init code */

           #if defined(CONFIG_VCHIQ_CDEV)

           /* Call cdev register function */

           #endif 
         }

  1.2  The second approach is creating an entirely separate module for the cdev,
       as suggested in the TODO. 

  So I'm just wondering what the right approach should be?

2. Second, I currently tested by installing my patches to a pi3 B+ and running
   `cat /dev/vchiq` to compare the output with the original kernel.  Also, to
   see if the platform code works without the cdev code, I commented out the
   call to vchiq_register_cdev() and made sure the platform device (and
   children) was registered but the char device was not present. However, I'm
   not sure if these tests are comprehensive enough. What would be the right way
   to test my changes?

3. Lastly, I think the git diff is acting up a bit because of the code
   rearrangement.  I tried to check online if this is normal or if I messed it
   up somehow, but couldn't find much. Can someone please confirm this? 

Thank you in advance for looking into this and for helping me out upto this
point!

Regards,
Ojaswin

Ojaswin Mujoo (1):
  staging: vchiq: Move vchiq char driver to its own file

 drivers/staging/vc04_services/Makefile        |    1 +
 .../interface/vchiq_arm/vchiq_arm.c           | 1885 ++---------------
 .../interface/vchiq_arm/vchiq_arm.h           |   73 +
 .../interface/vchiq_arm/vchiq_dev.c           | 1488 +++++++++++++
 4 files changed, 1770 insertions(+), 1677 deletions(-)
 create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c

-- 
2.25.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ