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

Nai-Chen(Simone) Cheng
2025-09-09T10:00:23Z

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/

Thanks,
Nai-Chen Cheng