Thread (5 messages) 5 messages, 2 authors, 2025-09-10

Re: [PATCH] selftests/net: fix unused return value warnings in ksft.h

From: Nai-Chen(Simone) Cheng <hidden>
Date: 2025-09-09 10:00:23
Also in: linux-kernel-mentees, linux-kselftest, lkml

On 2025-09-09 09:20, Jakub Kicinski wrote:
 > Is it just a GCC warning or rather a combination of GCC and some
 > misguided glibc decorator to force check the return of read/write?
 > Naming the compiler versions and the warning flag which enables
 > this would be useful. We don't see it building with normal warning
 > level today.

Thanks for the review!

I found that the warnings occur under specific build
conditions that explain why it's not consistently seen:

The warning appears when manually cleaning and rebuilding net/lib/:
   cd tools/testing/selftests/net/lib/
   make clean && make

The warning messages are:

ksft.h: In function ‘ksft_ready’:
ksft.h:27:9: warning: ignoring return value of ‘write’ declared with 
attribute ‘warn_unused_result’ [-Wunused-result]

ksft.h: In function ‘ksft_wait’:
ksft.h:51:9: warning: ignoring return value of ‘read’ declared with 
attribute ‘warn_unused_result’ [-Wunused-result]

This is triggered by:
- GCC version: 14.2.0
- -Wall flag (which includes -Wunused-result)

During investigation of this unused result warning and following up on 
the patch by Minh-Quang Bui [1], I also discovered an issue with the 
selftests build system: running 'make clean' from 
tools/testing/selftests/ doesn't clean objects in net/lib/ because the 
clean target doesn't include $(INSTALL_DEPS_TARGET). This explains why 
net/lib compiled objects persist after cleaning and why the warning only
appears with manual cleaning of that specific directory.

 > Can you not cast the read() to void directly?

Sure. Direct casting is much cleaner. I haven't noticed it... Thanks for 
the advice.

Would it be acceptable to:
1. Send a v2 of this patch with the direct void casting approach and 
more precise commit message?
2. Send a separate patch to fix the selftests Makefile clean target to 
include $(INSTALL_DEPS_TARGET)?

[1] 
https://lore.kernel.org/all/20250601142914.13379-1-minhquangbui99@gmail.com/ (local)

Thanks,
Nai-Chen Cheng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help