On Mon, Sep 20, 2021 at 2:18 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Mon, Sep 20, 2021 at 02:13:44PM +0200, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > When enabling -Wunused warnings by building with W=1, I get an > > instance of the -Wunused-but-set-parameter warning in the io_uring code: > > > > fs/io_uring.c: In function 'io_queue_async_work': > > fs/io_uring.c:1445:61: error: parameter 'locked' set but not used [-Werror=unused-but-set-parameter] > > 1445 | static void io_queue_async_work(struct io_kiocb *req, bool *locked) > > | ~~~~~~^~~~~~ > > > > There are very few warnings of this type, so it would be nice to enable > > this by default and fix all the existing instances. I was almost > > done, but this was added recently as a precaution to prevent code > > from using the parameter, which could be done by either removing > > the initialization, or by adding a (fake) use of the variable, which > > I do here with the cast to void. > > Please don't. These warning are utterly stupid and should not be > enabled. For anything that is a "method" of sorts (that is assigned > to a function pointer), unused argument are perfectly normal. I'm not suggesting to enable -Wunused-parameter, which would be complete madness of crouse, only -Wunused-but-set-parameter, which is already part of W=1 and has the potential of catching actual bugs such as int f(int val) { if (val = 1) return 0; return -1; } Arnd