2017-07-08 02:51:31

by pierre kuo

[permalink] [raw]
Subject: [PATCH] printk: Modify operators of printed_len

In 8b1742c9c207, we remove printk-recursion detection code in
vprintk_emit(), where it is the first place that printed_len calculated.
After removing above detection, it seems we can directly assign the
result of log_output to printed_len.

Signed-off-by: Pierre Kuo <[email protected]>
---
kernel/printk/printk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index fc47863..a2a8cac 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1701,7 +1701,7 @@ asmlinkage int vprintk_emit(int facility, int level,
size_t text_len = 0;
enum log_flags lflags = 0;
unsigned long flags;
- int printed_len = 0;
+ int printed_len;
bool in_sched = false;

if (level == LOGLEVEL_SCHED) {
@@ -1754,7 +1754,7 @@ asmlinkage int vprintk_emit(int facility, int level,
if (dict)
lflags |= LOG_PREFIX|LOG_NEWLINE;

- printed_len += log_output(facility, level, lflags, dict, dictlen, text, text_len);
+ printed_len = log_output(facility, level, lflags, dict, dictlen, text, text_len);

logbuf_unlock_irqrestore(flags);

--
1.7.9.5


2017-07-08 05:14:48

by Sergey Senozhatsky

[permalink] [raw]
Subject: Re: [PATCH] printk: Modify operators of printed_len

On (07/08/17 10:51), Pierre Kuo wrote:
> In 8b1742c9c207, we remove printk-recursion detection code in
> vprintk_emit(), where it is the first place that printed_len calculated.
> After removing above detection, it seems we can directly assign the
> result of log_output to printed_len.
>
> Signed-off-by: Pierre Kuo <[email protected]>

Reviewed-by: Sergey Senozhatsky <[email protected]>

-ss

> ---
> kernel/printk/printk.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index fc47863..a2a8cac 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -1701,7 +1701,7 @@ asmlinkage int vprintk_emit(int facility, int level,
> size_t text_len = 0;
> enum log_flags lflags = 0;
> unsigned long flags;
> - int printed_len = 0;
> + int printed_len;
> bool in_sched = false;
>
> if (level == LOGLEVEL_SCHED) {
> @@ -1754,7 +1754,7 @@ asmlinkage int vprintk_emit(int facility, int level,
> if (dict)
> lflags |= LOG_PREFIX|LOG_NEWLINE;
>
> - printed_len += log_output(facility, level, lflags, dict, dictlen, text, text_len);
> + printed_len = log_output(facility, level, lflags, dict, dictlen, text, text_len);
>
> logbuf_unlock_irqrestore(flags);
>
> --
> 1.7.9.5
>

2017-07-10 13:51:48

by Petr Mladek

[permalink] [raw]
Subject: Re: [PATCH] printk: Modify operators of printed_len

On Sat 2017-07-08 10:51:13, Pierre Kuo wrote:
> In 8b1742c9c207, we remove printk-recursion detection code in
> vprintk_emit(), where it is the first place that printed_len calculated.
> After removing above detection, it seems we can directly assign the
> result of log_output to printed_len.
>
> Signed-off-by: Pierre Kuo <[email protected]>

Great catch!

I just noticed that the same applies also to text_len
variable. Well, it was caused by another commit ddb9baa822265b55
("printk: report lost messages in printk safe/nmi contexts").
Could you please send a patch for this as well?

I would personally fix both variables in a single patch. But
I do not have a strong opinion about it.


This seems to be your first patch sent to the kernel mailing list.
Let me share some hints that might help you to handle more complex
patchsets ;-)

There is a standard format how to reference older commits. It is
'commit <12+ chars of sha1> ("<title line>")', see my comment above
for an example.

A good practice is to run ./scripts/checkpatch.pl <patch> before
you send the patch. Well, you need to use a common sense and ignore
false positives or hints that make a particular patch less readable
in the end.

Also it is handy to bump the version of the patch when it is
updated, e.g. use [PATCH v2] in the subject. People also
summarize changes against the previous version(s) below
the --- line. Well, this is more useful when there is a longer
delay between the versions and the changes are more complicated.

Best Regards,
Petr

2017-07-11 04:00:14

by pierre kuo

[permalink] [raw]
Subject: Re: [PATCH] printk: Modify operators of printed_len

hi Petr
> I just noticed that the same applies also to text_len
> variable. Well, it was caused by another commit ddb9baa822265b55
> ("printk: report lost messages in printk safe/nmi contexts").
> Could you please send a patch for this as well?
sure and it is my pleasure.

>
> This seems to be your first patch sent to the kernel mailing list.
Yes :-)

> There is a standard format how to reference older commits. It is
> 'commit <12+ chars of sha1> ("<title line>")', see my comment above
> for an example.
>
> A good practice is to run ./scripts/checkpatch.pl <patch> before
> you send the patch. Well, you need to use a common sense and ignore
> false positives or hints that make a particular patch less readable
> in the end.
>
> Also it is handy to bump the version of the patch when it is
> updated, e.g. use [PATCH v2] in the subject. People also
> summarize changes against the previous version(s) below
> the --- line. Well, this is more useful when there is a longer
> delay between the versions and the changes are more complicated.
Really appreciate hints you provided and I will send the v2 patch soon.

Best Regards.