Thread (16 messages) 16 messages, 5 authors, 2020-11-26

Re: [PATCH 34/36] tty: serial: pmac_zilog: Make disposable variable __always_unused

From: Lee Jones <hidden>
Date: 2020-11-05 09:00:16
Also in: linux-serial, lkml

On Thu, 05 Nov 2020, Jiri Slaby wrote:
On 05. 11. 20, 9:36, Lee Jones wrote:
quoted
On Thu, 05 Nov 2020, Jiri Slaby wrote:
quoted
On 05. 11. 20, 8:04, Christophe Leroy wrote:
quoted

Le 04/11/2020 à 20:35, Lee Jones a écrit :
quoted
Fixes the following W=1 kernel build warning(s):

   drivers/tty/serial/pmac_zilog.h:365:58: warning: variable
‘garbage’ set but not used [-Wunused-but-set-variable]
Explain how you are fixing this warning.

Setting  __always_unused is usually not the good solution for fixing
this warning, but here I guess this is likely the good solution. But it
should be explained why.
There are normally 3 ways to fix this warning;

  - Start using/checking the variable/result
  - Remove the variable
  - Mark it as __{always,maybe}_unused

The later just tells the compiler that not checking the resultant
value is intentional.  There are some functions (as Jiri mentions
below) which are marked as '__must_check' which *require* a dummy
(garbage) variable to be used.
quoted
Or, why is the "garbage =" needed in the first place? read_zsdata is not
defined with __warn_unused_result__.
I used '__always_used' here for fear of breaking something.

However, if it's safe to remove it, then all the better.
Yes please -- this "garbage" is one of the examples of volatile misuses. If
readb didn't work on volatile pointer, marking the return variable as
volatile wouldn't save it.
quoted
quoted
And even if it was, would (void)!read_zsdata(port) fix it?
That's hideous. :D
Sure, marking reads as must_check would be insane.
quoted
*Much* better to just use '__always_used' in that use-case.
Then using a dummy variable to fool must_check must mean must_check is used
incorrectly, no :)? But there are always exceptions…
Agreed on all points.

Will fix.

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help