Re: [PATCH] rpmsg: char: Remove useless includes

From: Arnaud POULIQUEN
Date: Tue May 04 2021 - 03:16:19 EST


Hello Mathieu,

On 5/3/21 7:42 PM, Mathieu Poirier wrote:
> On Thu, Apr 29, 2021 at 10:06:39AM +0200, Arnaud Pouliquen wrote:
>> Remove includes that are not requested to build the module.
>>
>> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@xxxxxxxxxxx>
>> ---
>> applied without issue on Bjorn next branch (dc0e14fa833b)
>> ---
>> drivers/rpmsg/rpmsg_char.c | 9 ---------
>> 1 file changed, 9 deletions(-)
>>
>> diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c
>> index 2bebc9b2d163..e4e54f515af6 100644
>> --- a/drivers/rpmsg/rpmsg_char.c
>> +++ b/drivers/rpmsg/rpmsg_char.c
>> @@ -10,19 +10,10 @@
>> * was based on TI & Google OMX rpmsg driver.
>> */
>> #include <linux/cdev.h>
>> -#include <linux/device.h>
>
> This is where the declaration for struct device is along with other goodies like
> get/put_device().
>
>> -#include <linux/fs.h>
>
> That is where struct file is declared.
>
>> -#include <linux/idr.h>
>
> This is where you get ida_simple_get() and ida_simple_remove() from.
>
>> #include <linux/kernel.h>
>> #include <linux/module.h>
>> -#include <linux/poll.h>
>
> This is where struct poll_table and poll_wait() comes from.
>
>> #include <linux/rpmsg.h>
>> #include <linux/skbuff.h>
>> -#include <linux/slab.h>
>
> This gives you kzalloc() and kfree().
>
>> -#include <linux/uaccess.h>
>
> This gives you copy_from_user().
>
>> -#include <uapi/linux/rpmsg.h>
>
> This gives you RPMSG_CREATE_EPT_IOCTL and RPMSG_DESTROY_EPT_IOCTL.
>
>> -
>> -#include "rpmsg_internal.h"
>
> That one I agree with.

I started by this one and then I got carried away tested the other include...
You are right, I just don't follow her the first rule of the "submit checklist"

"If you use a facility then #include the file that defines/declares that
facility. Don’t depend on other header files pulling in ones that you use."

That said I just have a doubt for uapi/linux/rpmsg.h that will be include
by rpmsg.h[2], as these includes are part of the rpmsg framework API, should we
keep both, considering the rule as strict?

[1] https://www.kernel.org/doc/html/latest/process/submit-checklist.html
[2]
https://patchwork.kernel.org/project/linux-remoteproc/patch/20210311140413.31725-3-arnaud.pouliquen@xxxxxxxxxxx/

Thanks,
Arnaud

>
> Thanks,
> Mathieu
>
>>
>> #define RPMSG_DEV_MAX (MINORMASK + 1)
>>
>> --
>> 2.17.1
>>