diff mbox series

[net-next,6/9] net: netconsole: track explicitly if msgbody was written to buffer

Message ID 20240903140757.2802765-7-leitao@debian.org (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series netconsole refactoring and warning fix | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 16 this patch: 16
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 5 of 5 maintainers
netdev/build_clang success Errors and warnings before: 16 this patch: 16
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 16 this patch: 16
netdev/checkpatch warning WARNING: line length of 100 exceeds 80 columns WARNING: line length of 81 exceeds 80 columns WARNING: line length of 87 exceeds 80 columns
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-09-04--15-00 (tests: 718)

Commit Message

Breno Leitao Sept. 3, 2024, 2:07 p.m. UTC
The current check to determine if the message body was fully sent is
difficult to follow. To improve clarity, introduce a variable that
explicitly tracks whether the message body (msgbody) has been completely
sent, indicating when it's time to begin sending userdata.

Additionally, add comments to make the code more understandable for
others who may work with it.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 drivers/net/netconsole.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

Comments

Simon Horman Sept. 4, 2024, 11:07 a.m. UTC | #1
On Tue, Sep 03, 2024 at 07:07:49AM -0700, Breno Leitao wrote:
> The current check to determine if the message body was fully sent is
> difficult to follow. To improve clarity, introduce a variable that
> explicitly tracks whether the message body (msgbody) has been completely
> sent, indicating when it's time to begin sending userdata.
> 
> Additionally, add comments to make the code more understandable for
> others who may work with it.
> 
> Signed-off-by: Breno Leitao <leitao@debian.org>

Thanks,

The nit below notwithstanding this looks good to me.

Reviewed-by: Simon Horman <horms@kernel.org>

> ---
>  drivers/net/netconsole.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> index 22ccd9aa016a..c8a23a7684e5 100644
> --- a/drivers/net/netconsole.c
> +++ b/drivers/net/netconsole.c
> @@ -1102,6 +1102,7 @@ static void send_msg_fragmented(struct netconsole_target *nt,
>  	 */
>  	while (offset < body_len) {
>  		int this_header = header_len;
> +		bool msgbody_written = false;
>  		int this_offset = 0;
>  		int this_chunk = 0;
>  
> @@ -1119,12 +1120,22 @@ static void send_msg_fragmented(struct netconsole_target *nt,
>  			memcpy(buf + this_header, msgbody + offset, this_chunk);
>  			this_offset += this_chunk;
>  		}
> +
> +		if (offset + this_offset >= msgbody_len)
> +			/* msgbody was finally written, either in the previous messages
> +			 * and/or in the current buf. Time to write the userdata.
> +			 */

Please consider keeping comments <= 80 columns wide.
Likewise in other patches of this series.

checkpatch can be run with an option to check for this.

> +			msgbody_written = true;
> +
>  		/* Msg body is fully written and there is pending userdata to write,
>  		 * append userdata in this chunk
>  		 */
> -		if (offset + this_offset >= msgbody_len &&
> -		    offset + this_offset < body_len) {
> +		if (msgbody_written && offset + this_offset < body_len) {
> +			/* Track how much user data was already sent. First time here, sent_userdata
> +			 * is zero
> +			 */
>  			int sent_userdata = (offset + this_offset) - msgbody_len;
> +			/* offset of bytes used in current buf */
>  			int preceding_bytes = this_chunk + this_header;
>  
>  			if (WARN_ON_ONCE(sent_userdata < 0))
> -- 
> 2.43.5
>
Breno Leitao Sept. 6, 2024, 8:37 a.m. UTC | #2
On Wed, Sep 04, 2024 at 12:07:26PM +0100, Simon Horman wrote:
> On Tue, Sep 03, 2024 at 07:07:49AM -0700, Breno Leitao wrote:
> > The current check to determine if the message body was fully sent is
> > difficult to follow. To improve clarity, introduce a variable that
> > explicitly tracks whether the message body (msgbody) has been completely
> > sent, indicating when it's time to begin sending userdata.
> > 
> > Additionally, add comments to make the code more understandable for
> > others who may work with it.
> > 
> > Signed-off-by: Breno Leitao <leitao@debian.org>
> 
> Thanks,
> 
> The nit below notwithstanding this looks good to me.
> 
> Reviewed-by: Simon Horman <horms@kernel.org>
> 
> > ---
> >  drivers/net/netconsole.c | 15 +++++++++++++--
> >  1 file changed, 13 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> > index 22ccd9aa016a..c8a23a7684e5 100644
> > --- a/drivers/net/netconsole.c
> > +++ b/drivers/net/netconsole.c
> > @@ -1102,6 +1102,7 @@ static void send_msg_fragmented(struct netconsole_target *nt,
> >  	 */
> >  	while (offset < body_len) {
> >  		int this_header = header_len;
> > +		bool msgbody_written = false;
> >  		int this_offset = 0;
> >  		int this_chunk = 0;
> >  
> > @@ -1119,12 +1120,22 @@ static void send_msg_fragmented(struct netconsole_target *nt,
> >  			memcpy(buf + this_header, msgbody + offset, this_chunk);
> >  			this_offset += this_chunk;
> >  		}
> > +
> > +		if (offset + this_offset >= msgbody_len)
> > +			/* msgbody was finally written, either in the previous messages
> > +			 * and/or in the current buf. Time to write the userdata.
> > +			 */
> 
> Please consider keeping comments <= 80 columns wide.
> Likewise in other patches of this series.
> 
> checkpatch can be run with an option to check for this.

Thanks for the heads-up. I've just added `--max-line-length=80` to my
checkpatch by default

Thanks
diff mbox series

Patch

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 22ccd9aa016a..c8a23a7684e5 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -1102,6 +1102,7 @@  static void send_msg_fragmented(struct netconsole_target *nt,
 	 */
 	while (offset < body_len) {
 		int this_header = header_len;
+		bool msgbody_written = false;
 		int this_offset = 0;
 		int this_chunk = 0;
 
@@ -1119,12 +1120,22 @@  static void send_msg_fragmented(struct netconsole_target *nt,
 			memcpy(buf + this_header, msgbody + offset, this_chunk);
 			this_offset += this_chunk;
 		}
+
+		if (offset + this_offset >= msgbody_len)
+			/* msgbody was finally written, either in the previous messages
+			 * and/or in the current buf. Time to write the userdata.
+			 */
+			msgbody_written = true;
+
 		/* Msg body is fully written and there is pending userdata to write,
 		 * append userdata in this chunk
 		 */
-		if (offset + this_offset >= msgbody_len &&
-		    offset + this_offset < body_len) {
+		if (msgbody_written && offset + this_offset < body_len) {
+			/* Track how much user data was already sent. First time here, sent_userdata
+			 * is zero
+			 */
 			int sent_userdata = (offset + this_offset) - msgbody_len;
+			/* offset of bytes used in current buf */
 			int preceding_bytes = this_chunk + this_header;
 
 			if (WARN_ON_ONCE(sent_userdata < 0))