mbox series

[net-next,0/2] Update R8152 module to version 2

Message ID 20221104132526.64530-1-albert.zhou.50@gmail.com
Headers show
Series Update R8152 module to version 2 | expand

Message

Albert Zhou Nov. 4, 2022, 1:25 p.m. UTC
As per my discussion with Greg K H, here is a patch for the updated
R8152 module, version 2, obtained from Realtek website. This is my
first ever patch, I hope it's useful.

Albert Zhou (2):
  Reverse 744d49daf8bd3b17b345c836f2e6f97d49fa6ae8 so that the v2 r8152
    driver can use netif_set_gso_max_*
  Update R8152 module to v2 obtained from the Realtek website, included
    in a comment in r8152.c. The only other modification to r8152.c is
    amending netif_napi_add, see comment for explanation.

 drivers/net/usb/r8152.c               | 17938 +++++++++++++++++++-----
 drivers/net/usb/r8152_compatibility.h |   658 +
 include/linux/netdevice.h             |    21 +
 net/core/dev.h                        |    21 -
 4 files changed, 15151 insertions(+), 3487 deletions(-)
 create mode 100644 drivers/net/usb/r8152_compatibility.h


base-commit: ee6050c8af96bba2f81e8b0793a1fc2f998fcd20

Comments

Greg Kroah-Hartman Nov. 4, 2022, 2:40 p.m. UTC | #1
On Sat, Nov 05, 2022 at 12:25:26AM +1100, Albert Zhou wrote:
> ---
>  drivers/net/usb/r8152.c               | 17938 +++++++++++++++++++-----
>  drivers/net/usb/r8152_compatibility.h |   658 +
>  2 files changed, 15130 insertions(+), 3466 deletions(-)
>  create mode 100644 drivers/net/usb/r8152_compatibility.h
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- Your patch contains warnings and/or errors noticed by the
  scripts/checkpatch.pl tool.

- Your patch does not have a Signed-off-by: line.  Please read the
  kernel file, Documentation/SubmittingPatches and resend it after
  adding that line.  Note, the line needs to be in the body of the
  email, before the patch, not at the bottom of the patch or in the
  email signature.

- Your patch did many different things all at once, making it difficult
  to review.  All Linux kernel patches need to only do one thing at a
  time.  If you need to do multiple things (such as clean up all coding
  style issues in a file/driver), do it in a sequence of patches, each
  one doing only one thing.  This will make it easier to review the
  patches to ensure that they are correct, and to help alleviate any
  merge issues that larger patches can cause.

- You did not specify a description of why the patch is needed, or
  possibly, any description at all, in the email body.  Please read the
  section entitled "The canonical patch format" in the kernel file,
  Documentation/SubmittingPatches for what is needed in order to
  properly describe the change.

- You did not write a descriptive Subject: for the patch, allowing Greg,
  and everyone else, to know what this patch is all about.  Please read
  the section entitled "The canonical patch format" in the kernel file,
  Documentation/SubmittingPatches for what a proper Subject: line should
  look like.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot
Albert Zhou Nov. 5, 2022, 9:46 a.m. UTC | #2
Hi Greg,

I realised several things. Firstly, when I initially contacted you, it was simply based on looking up who maintained drivers/net/usb in the MAINTAINERS file, however when running scripts/get_maintainer.pl, I realise that there are many other people who maintain drivers/net/usb/r8152.c. Should I include them in future submissions? Or should I just stick to you for now?

Secondly, running scripts/checkpatch.pl on Realtek's code gives many warnings and errors. E.g. the code is written to be compatible
for old versions of the kernel, whereas checkpatch.pl insists that each kernel version should have dedicated code for itself.

I am hesitant to edit the original code more than I already have, but if necessary, I can make another patch when I resubmit to iron out all the trivial style issues. However I may need some guidance, e.g. on the use of the volatile keyword; since I am not the original developer, it will be difficult for met to judge whether its usage is critical for the code.

Thirdly, if I do remove all of the macros for backwards compatibility, (# if LINUX_VERSION_CODE >= KERNEL_VERSION(a,b,c)), it will be difficult for distros like Ubuntu to incorporate the updated module into their older kernels.  How can the version-two module also be included in the other stable/longerm kernels?

Best,

 From Albert Zhou

On 5/11/22 01:40, Greg KH wrote:
> On Sat, Nov 05, 2022 at 12:25:26AM +1100, Albert Zhou wrote:
>> ---
>>   drivers/net/usb/r8152.c               | 17938 +++++++++++++++++++-----
>>   drivers/net/usb/r8152_compatibility.h |   658 +
>>   2 files changed, 15130 insertions(+), 3466 deletions(-)
>>   create mode 100644 drivers/net/usb/r8152_compatibility.h
>>
> 
> Hi,
> 
> This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
> a patch that has triggered this response.  He used to manually respond
> to these common problems, but in order to save his sanity (he kept
> writing the same thing over and over, yet to different people), I was
> created.  Hopefully you will not take offence and will fix the problem
> in your patch and resubmit it so that it can be accepted into the Linux
> kernel tree.
> 
> You are receiving this message because of the following common error(s)
> as indicated below:
> 
> - Your patch contains warnings and/or errors noticed by the
>    scripts/checkpatch.pl tool.
> 
> - Your patch does not have a Signed-off-by: line.  Please read the
>    kernel file, Documentation/SubmittingPatches and resend it after
>    adding that line.  Note, the line needs to be in the body of the
>    email, before the patch, not at the bottom of the patch or in the
>    email signature.
> 
> - Your patch did many different things all at once, making it difficult
>    to review.  All Linux kernel patches need to only do one thing at a
>    time.  If you need to do multiple things (such as clean up all coding
>    style issues in a file/driver), do it in a sequence of patches, each
>    one doing only one thing.  This will make it easier to review the
>    patches to ensure that they are correct, and to help alleviate any
>    merge issues that larger patches can cause.
> 
> - You did not specify a description of why the patch is needed, or
>    possibly, any description at all, in the email body.  Please read the
>    section entitled "The canonical patch format" in the kernel file,
>    Documentation/SubmittingPatches for what is needed in order to
>    properly describe the change.
> 
> - You did not write a descriptive Subject: for the patch, allowing Greg,
>    and everyone else, to know what this patch is all about.  Please read
>    the section entitled "The canonical patch format" in the kernel file,
>    Documentation/SubmittingPatches for what a proper Subject: line should
>    look like.
> 
> If you wish to discuss this problem further, or you have questions about
> how to resolve this issue, please feel free to respond to this email and
> Greg will reply once he has dug out from the pending patches received
> from other developers.
> 
> thanks,
> 
> greg k-h's patch email bot
Greg Kroah-Hartman Nov. 5, 2022, 10:28 a.m. UTC | #3
On Sat, Nov 05, 2022 at 08:46:25PM +1100, Albert Zhou wrote:
> Hi Greg,

Hi!

Some meta-comments, please don't top-post and try line-wrapping your
emails at 72 columns to make it easier to respond properly.  See the
mailing list archives for examples.

> I realised several things. Firstly, when I initially contacted you, it was simply based on looking up who maintained drivers/net/usb in the MAINTAINERS file, however when running scripts/get_maintainer.pl, I realise that there are many other people who maintain drivers/net/usb/r8152.c. Should I include them in future submissions? Or should I just stick to you for now?

Yes, include everyone that get_maintainer.pl tells you to, that's what
it is there for.

> Secondly, running scripts/checkpatch.pl on Realtek's code gives many warnings and errors. E.g. the code is written to be compatible
> for old versions of the kernel, whereas checkpatch.pl insists that each kernel version should have dedicated code for itself.

And that's not needed for in-kernel drivers at all, which is why it is
complaining.  You should remove all of that compatibility cruft as it
just clutters up the code and is not needed for obvious reasons.

> I am hesitant to edit the original code more than I already have, but if necessary, I can make another patch when I resubmit to iron out all the trivial style issues. However I may need some guidance, e.g. on the use of the volatile keyword; since I am not the original developer, it will be difficult for met to judge whether its usage is critical for the code.

Look at how it is being used and see if it is required.  For a USB
driver, volitile should never be used as it makes no sense at all,
right?

> Thirdly, if I do remove all of the macros for backwards compatibility, (# if LINUX_VERSION_CODE >= KERNEL_VERSION(a,b,c)), it will be difficult for distros like Ubuntu to incorporate the updated module into their older kernels.  How can the version-two module also be included in the other stable/longerm kernels?

We do kernel development for the latest release only.  If distros want
to backport things, that's up to them to do on their own.  For
stable/long term kernels, see the stable documentation for what is a
valid acceptable change (hint, bug fixes and quirks and device ids only,
not new features or new drivers.)

So all of that code for old kernels needs to be removed.  Do that and
you will end up with a much smaller and actually maintable codebase, so
that's a good thing to do.

hope this helps,

greg k-h