diff mbox series

selftests/arm64: Fix build warnings for abi

Message ID 20240827051851.3738533-1-dev.jain@arm.com (mailing list archive)
State New
Headers show
Series selftests/arm64: Fix build warnings for abi | expand

Commit Message

Dev Jain Aug. 27, 2024, 5:18 a.m. UTC
A "%s" is missing in ksft_exit_fail_msg(); instead, use the newly
introduced ksft_exit_fail_perror(). Also, uint64_t corresponds to
unsigned 64-bit integer, so use %lx instead of %llx.

Signed-off-by: Dev Jain <dev.jain@arm.com>
---
The changes in ptrace.c were earlier a part of the following:
https://lore.kernel.org/all/20240625122408.1439097-6-dev.jain@arm.com/
which were reviewed by Mark.

 tools/testing/selftests/arm64/abi/ptrace.c      | 4 ++--
 tools/testing/selftests/arm64/abi/syscall-abi.c | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

Comments

Will Deacon Aug. 27, 2024, 12:33 p.m. UTC | #1
On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:
> A "%s" is missing in ksft_exit_fail_msg(); instead, use the newly
> introduced ksft_exit_fail_perror(). Also, uint64_t corresponds to
> unsigned 64-bit integer, so use %lx instead of %llx.

What's wrong with using %llx for a uint64_t? I think that part of the
code is fine as-is.

Will
Dev Jain Aug. 28, 2024, 3:49 a.m. UTC | #2
On 8/27/24 18:03, Will Deacon wrote:
> On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:
>> A "%s" is missing in ksft_exit_fail_msg(); instead, use the newly
>> introduced ksft_exit_fail_perror(). Also, uint64_t corresponds to
>> unsigned 64-bit integer, so use %lx instead of %llx.
> What's wrong with using %llx for a uint64_t? I think that part of the
> code is fine as-is.

I get a lot of warnings like these:
https://www.codedump.xyz/cpp/Zs6d7saC1IRuWV2O

>
> Will
Mark Brown Aug. 28, 2024, 10:40 a.m. UTC | #3
On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:

> -		ksft_exit_fail_msg("PTRACE_TRACEME", strerror(errno));
> +		ksft_exit_fail_perror("PTRACE_TRACEME");
>  
>  	if (raise(SIGSTOP))
> -		ksft_exit_fail_msg("raise(SIGSTOP)", strerror(errno));
> +		ksft_exit_fail_perror("raise(SIGSTOP)");

The idea with these is to include the error code as well so adding the
%s would be better.

>  	for (i = 9; i < ARRAY_SIZE(gpr_in); i++) {
>  		if (gpr_in[i] != gpr_out[i]) {
> -			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %llx != %llx\n",
> +			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %lx != %lx\n",
>  				       cfg->name, sve_vl, i,
>  				       gpr_in[i], gpr_out[i]);
>  			errors++;

This is a different pattern of warning, it'd be easier to review if each
patch only followed one pattern.  There's no code overlap between the
changes.
Mark Brown Aug. 28, 2024, 11:01 a.m. UTC | #4
On Tue, Aug 27, 2024 at 01:33:47PM +0100, Will Deacon wrote:
> On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:
> > A "%s" is missing in ksft_exit_fail_msg(); instead, use the newly
> > introduced ksft_exit_fail_perror(). Also, uint64_t corresponds to
> > unsigned 64-bit integer, so use %lx instead of %llx.

> What's wrong with using %llx for a uint64_t? I think that part of the
> code is fine as-is.

IIRC there's some printf format specifiers specific to uint64_t which
are probably a better choice here.
Dev Jain Aug. 29, 2024, 6:25 a.m. UTC | #5
On 8/28/24 16:10, Mark Brown wrote:
> On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:
>
>> -		ksft_exit_fail_msg("PTRACE_TRACEME", strerror(errno));
>> +		ksft_exit_fail_perror("PTRACE_TRACEME");
>>   
>>   	if (raise(SIGSTOP))
>> -		ksft_exit_fail_msg("raise(SIGSTOP)", strerror(errno));
>> +		ksft_exit_fail_perror("raise(SIGSTOP)");
> The idea with these is to include the error code as well so adding the
> %s would be better.

ksft_exit_fail_perror() can do that thing for us.

>
>>   	for (i = 9; i < ARRAY_SIZE(gpr_in); i++) {
>>   		if (gpr_in[i] != gpr_out[i]) {
>> -			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %llx != %llx\n",
>> +			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %lx != %lx\n",
>>   				       cfg->name, sve_vl, i,
>>   				       gpr_in[i], gpr_out[i]);
>>   			errors++;
> This is a different pattern of warning, it'd be easier to review if each
> patch only followed one pattern.  There's no code overlap between the
> changes.
Dev Jain Aug. 29, 2024, 6:28 a.m. UTC | #6
On 8/28/24 16:31, Mark Brown wrote:
> On Tue, Aug 27, 2024 at 01:33:47PM +0100, Will Deacon wrote:
>> On Tue, Aug 27, 2024 at 10:48:51AM +0530, Dev Jain wrote:
>>> A "%s" is missing in ksft_exit_fail_msg(); instead, use the newly
>>> introduced ksft_exit_fail_perror(). Also, uint64_t corresponds to
>>> unsigned 64-bit integer, so use %lx instead of %llx.
>> What's wrong with using %llx for a uint64_t? I think that part of the
>> code is fine as-is.
> IIRC there's some printf format specifiers specific to uint64_t which
> are probably a better choice here.

Well, then I will just send a patch fixing only the %s thing; I don't
want to get lost into format specifiers right now :)
Mark Brown Aug. 29, 2024, 11:02 a.m. UTC | #7
On Thu, Aug 29, 2024 at 11:55:33AM +0530, Dev Jain wrote:
> On 8/28/24 16:10, Mark Brown wrote:

> > > -		ksft_exit_fail_msg("raise(SIGSTOP)", strerror(errno));
> > > +		ksft_exit_fail_perror("raise(SIGSTOP)");

> > The idea with these is to include the error code as well so adding the
> > %s would be better.

> ksft_exit_fail_perror() can do that thing for us.

Oh, sorry - I missed that it was changing to _perror() as well as
removing the argument.  Yes, that's fine.
diff mbox series

Patch

diff --git a/tools/testing/selftests/arm64/abi/ptrace.c b/tools/testing/selftests/arm64/abi/ptrace.c
index e4fa507cbdd0..b51d21f78cf9 100644
--- a/tools/testing/selftests/arm64/abi/ptrace.c
+++ b/tools/testing/selftests/arm64/abi/ptrace.c
@@ -163,10 +163,10 @@  static void test_hw_debug(pid_t child, int type, const char *type_name)
 static int do_child(void)
 {
 	if (ptrace(PTRACE_TRACEME, -1, NULL, NULL))
-		ksft_exit_fail_msg("PTRACE_TRACEME", strerror(errno));
+		ksft_exit_fail_perror("PTRACE_TRACEME");
 
 	if (raise(SIGSTOP))
-		ksft_exit_fail_msg("raise(SIGSTOP)", strerror(errno));
+		ksft_exit_fail_perror("raise(SIGSTOP)");
 
 	return EXIT_SUCCESS;
 }
diff --git a/tools/testing/selftests/arm64/abi/syscall-abi.c b/tools/testing/selftests/arm64/abi/syscall-abi.c
index d704511a0955..5ec9a18ec802 100644
--- a/tools/testing/selftests/arm64/abi/syscall-abi.c
+++ b/tools/testing/selftests/arm64/abi/syscall-abi.c
@@ -81,7 +81,7 @@  static int check_gpr(struct syscall_cfg *cfg, int sve_vl, int sme_vl, uint64_t s
 	 */
 	for (i = 9; i < ARRAY_SIZE(gpr_in); i++) {
 		if (gpr_in[i] != gpr_out[i]) {
-			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %llx != %llx\n",
+			ksft_print_msg("%s SVE VL %d mismatch in GPR %d: %lx != %lx\n",
 				       cfg->name, sve_vl, i,
 				       gpr_in[i], gpr_out[i]);
 			errors++;
@@ -112,7 +112,7 @@  static int check_fpr(struct syscall_cfg *cfg, int sve_vl, int sme_vl,
 	if (!sve_vl && !(svcr & SVCR_SM_MASK)) {
 		for (i = 0; i < ARRAY_SIZE(fpr_in); i++) {
 			if (fpr_in[i] != fpr_out[i]) {
-				ksft_print_msg("%s Q%d/%d mismatch %llx != %llx\n",
+				ksft_print_msg("%s Q%d/%d mismatch %lx != %lx\n",
 					       cfg->name,
 					       i / 2, i % 2,
 					       fpr_in[i], fpr_out[i]);
@@ -294,13 +294,13 @@  static int check_svcr(struct syscall_cfg *cfg, int sve_vl, int sme_vl,
 	int errors = 0;
 
 	if (svcr_out & SVCR_SM_MASK) {
-		ksft_print_msg("%s Still in SM, SVCR %llx\n",
+		ksft_print_msg("%s Still in SM, SVCR %lx\n",
 			       cfg->name, svcr_out);
 		errors++;
 	}
 
 	if ((svcr_in & SVCR_ZA_MASK) != (svcr_out & SVCR_ZA_MASK)) {
-		ksft_print_msg("%s PSTATE.ZA changed, SVCR %llx != %llx\n",
+		ksft_print_msg("%s PSTATE.ZA changed, SVCR %lx != %lx\n",
 			       cfg->name, svcr_in, svcr_out);
 		errors++;
 	}