linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] printk: remove unneeded dead-store assignment
@ 2020-11-06  3:40 Lukas Bulwahn
  2020-11-06  3:49 ` Nathan Chancellor
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Lukas Bulwahn @ 2020-11-06  3:40 UTC (permalink / raw)
  To: Petr Mladek, Sergey Senozhatsky, Steven Rostedt, John Ogness
  Cc: Nathan Chancellor, Nick Desaulniers, linux-kernel,
	clang-built-linux, kernel-janitors, linux-safety, Lukas Bulwahn

make clang-analyzer on x86_64 defconfig caught my attention with:

  kernel/printk/printk_ringbuffer.c:885:3: warning:
  Value stored to 'desc' is never read [clang-analyzer-deadcode.DeadStores]
                desc = to_desc(desc_ring, head_id);
                ^

Commit b6cf8b3f3312 ("printk: add lockless ringbuffer") introduced
desc_reserve() with this unneeded dead-store assignment.

As discussed with John Ogness privately, this is probably just some minor
left-over from previous iterations of the ringbuffer implementation. So,
simply remove this unneeded dead assignment to make clang-analyzer happy.

As compilers will detect this unneeded assignment and optimize this anyway,
the resulting object code is identical before and after this change.

No functional change. No change to object code.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---
applies cleanly on current master and next-20201105

John, please ack.
Petr, please pick this minor non-urgent clean-up patch.

 kernel/printk/printk_ringbuffer.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c
index 6b1525685277..74e25a1704f2 100644
--- a/kernel/printk/printk_ringbuffer.c
+++ b/kernel/printk/printk_ringbuffer.c
@@ -882,8 +882,6 @@ static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out)
 	head_id = atomic_long_read(&desc_ring->head_id); /* LMM(desc_reserve:A) */
 
 	do {
-		desc = to_desc(desc_ring, head_id);
-
 		id = DESC_ID(head_id + 1);
 		id_prev_wrap = DESC_ID_PREV_WRAP(desc_ring, id);
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] printk: remove unneeded dead-store assignment
  2020-11-06  3:40 [PATCH] printk: remove unneeded dead-store assignment Lukas Bulwahn
@ 2020-11-06  3:49 ` Nathan Chancellor
  2020-11-06  5:12 ` Sergey Senozhatsky
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Nathan Chancellor @ 2020-11-06  3:49 UTC (permalink / raw)
  To: Lukas Bulwahn
  Cc: Petr Mladek, Sergey Senozhatsky, Steven Rostedt, John Ogness,
	Nick Desaulniers, linux-kernel, clang-built-linux,
	kernel-janitors, linux-safety

On Fri, Nov 06, 2020 at 04:40:05AM +0100, Lukas Bulwahn wrote:
> make clang-analyzer on x86_64 defconfig caught my attention with:
> 
>   kernel/printk/printk_ringbuffer.c:885:3: warning:
>   Value stored to 'desc' is never read [clang-analyzer-deadcode.DeadStores]
>                 desc = to_desc(desc_ring, head_id);
>                 ^
> 
> Commit b6cf8b3f3312 ("printk: add lockless ringbuffer") introduced
> desc_reserve() with this unneeded dead-store assignment.
> 
> As discussed with John Ogness privately, this is probably just some minor
> left-over from previous iterations of the ringbuffer implementation. So,
> simply remove this unneeded dead assignment to make clang-analyzer happy.
> 
> As compilers will detect this unneeded assignment and optimize this anyway,
> the resulting object code is identical before and after this change.
> 
> No functional change. No change to object code.
> 
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>

> ---
> applies cleanly on current master and next-20201105
> 
> John, please ack.
> Petr, please pick this minor non-urgent clean-up patch.
> 
>  kernel/printk/printk_ringbuffer.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c
> index 6b1525685277..74e25a1704f2 100644
> --- a/kernel/printk/printk_ringbuffer.c
> +++ b/kernel/printk/printk_ringbuffer.c
> @@ -882,8 +882,6 @@ static bool desc_reserve(struct printk_ringbuffer *rb, unsigned long *id_out)
>  	head_id = atomic_long_read(&desc_ring->head_id); /* LMM(desc_reserve:A) */
>  
>  	do {
> -		desc = to_desc(desc_ring, head_id);
> -
>  		id = DESC_ID(head_id + 1);
>  		id_prev_wrap = DESC_ID_PREV_WRAP(desc_ring, id);
>  
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] printk: remove unneeded dead-store assignment
  2020-11-06  3:40 [PATCH] printk: remove unneeded dead-store assignment Lukas Bulwahn
  2020-11-06  3:49 ` Nathan Chancellor
@ 2020-11-06  5:12 ` Sergey Senozhatsky
  2020-11-06  8:18 ` John Ogness
  2020-11-06 12:57 ` Petr Mladek
  3 siblings, 0 replies; 5+ messages in thread
From: Sergey Senozhatsky @ 2020-11-06  5:12 UTC (permalink / raw)
  To: Lukas Bulwahn
  Cc: Petr Mladek, Sergey Senozhatsky, Steven Rostedt, John Ogness,
	Nathan Chancellor, Nick Desaulniers, linux-kernel,
	clang-built-linux, kernel-janitors, linux-safety

On (20/11/06 04:40), Lukas Bulwahn wrote:
> make clang-analyzer on x86_64 defconfig caught my attention with:
> 
>   kernel/printk/printk_ringbuffer.c:885:3: warning:
>   Value stored to 'desc' is never read [clang-analyzer-deadcode.DeadStores]
>                 desc = to_desc(desc_ring, head_id);
>                 ^
> 
> Commit b6cf8b3f3312 ("printk: add lockless ringbuffer") introduced
> desc_reserve() with this unneeded dead-store assignment.
> 
> As discussed with John Ogness privately, this is probably just some minor
> left-over from previous iterations of the ringbuffer implementation. So,
> simply remove this unneeded dead assignment to make clang-analyzer happy.
> 
> As compilers will detect this unneeded assignment and optimize this anyway,
> the resulting object code is identical before and after this change.
> 
> No functional change. No change to object code.
> 
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>

	-ss

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] printk: remove unneeded dead-store assignment
  2020-11-06  3:40 [PATCH] printk: remove unneeded dead-store assignment Lukas Bulwahn
  2020-11-06  3:49 ` Nathan Chancellor
  2020-11-06  5:12 ` Sergey Senozhatsky
@ 2020-11-06  8:18 ` John Ogness
  2020-11-06 12:57 ` Petr Mladek
  3 siblings, 0 replies; 5+ messages in thread
From: John Ogness @ 2020-11-06  8:18 UTC (permalink / raw)
  To: Lukas Bulwahn, Petr Mladek, Sergey Senozhatsky, Steven Rostedt
  Cc: Nathan Chancellor, Nick Desaulniers, linux-kernel,
	clang-built-linux, kernel-janitors, linux-safety, Lukas Bulwahn

On 2020-11-06, Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
> make clang-analyzer on x86_64 defconfig caught my attention with:
>
>   kernel/printk/printk_ringbuffer.c:885:3: warning:
>   Value stored to 'desc' is never read [clang-analyzer-deadcode.DeadStores]
>                 desc = to_desc(desc_ring, head_id);
>                 ^
>
> Commit b6cf8b3f3312 ("printk: add lockless ringbuffer") introduced
> desc_reserve() with this unneeded dead-store assignment.
>
> As discussed with John Ogness privately, this is probably just some minor
> left-over from previous iterations of the ringbuffer implementation. So,
> simply remove this unneeded dead assignment to make clang-analyzer happy.
>
> As compilers will detect this unneeded assignment and optimize this anyway,
> the resulting object code is identical before and after this change.
>
> No functional change. No change to object code.
>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

Reviewed-by: John Ogness <john.ogness@linutronix.de>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] printk: remove unneeded dead-store assignment
  2020-11-06  3:40 [PATCH] printk: remove unneeded dead-store assignment Lukas Bulwahn
                   ` (2 preceding siblings ...)
  2020-11-06  8:18 ` John Ogness
@ 2020-11-06 12:57 ` Petr Mladek
  3 siblings, 0 replies; 5+ messages in thread
From: Petr Mladek @ 2020-11-06 12:57 UTC (permalink / raw)
  To: Lukas Bulwahn
  Cc: Sergey Senozhatsky, Steven Rostedt, John Ogness,
	Nathan Chancellor, Nick Desaulniers, linux-kernel,
	clang-built-linux, kernel-janitors, linux-safety

On Fri 2020-11-06 04:40:05, Lukas Bulwahn wrote:
> make clang-analyzer on x86_64 defconfig caught my attention with:
> 
>   kernel/printk/printk_ringbuffer.c:885:3: warning:
>   Value stored to 'desc' is never read [clang-analyzer-deadcode.DeadStores]
>                 desc = to_desc(desc_ring, head_id);
>                 ^
> 
> Commit b6cf8b3f3312 ("printk: add lockless ringbuffer") introduced
> desc_reserve() with this unneeded dead-store assignment.
> 
> As discussed with John Ogness privately, this is probably just some minor
> left-over from previous iterations of the ringbuffer implementation. So,
> simply remove this unneeded dead assignment to make clang-analyzer happy.
> 
> As compilers will detect this unneeded assignment and optimize this anyway,
> the resulting object code is identical before and after this change.
> 
> No functional change. No change to object code.
> 
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>

The patch is committed in printk/linux.git, branch for-5.10-trivial.

It might still go into 5.10 when there is another important fix.
Otherwise, it would need to wait for 5.11 merge window.

Best Regards,
Petr

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-11-06 12:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-06  3:40 [PATCH] printk: remove unneeded dead-store assignment Lukas Bulwahn
2020-11-06  3:49 ` Nathan Chancellor
2020-11-06  5:12 ` Sergey Senozhatsky
2020-11-06  8:18 ` John Ogness
2020-11-06 12:57 ` Petr Mladek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).