Re: [PATCH] infiniband hfi1: fix misuse of %x in ipoib_tx.c

From: 郭志
Date: Thu Sep 23 2021 - 08:52:06 EST


I have tried using %px rather than %p. However when checking the new patch through scripts/checkpatch.pl, there is a warning: Using vsprintf specifier '%px' potentially exposes the kernel memory layout.

Maybe %pK is the right one?

Thanks.

Guo

----- Original Message -----
From: "Mike Marciniszyn" <mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx>
To: "Guo Zhi" <qtxuning1999@xxxxxxxxxxx>, "Dennis Dalessandro" <dennis.dalessandro@xxxxxxxxxxxxxxxxxxxx>, "dledford" <dledford@xxxxxxxxxx>
Cc: "linux-rdma" <linux-rdma@xxxxxxxxxxxxxxx>, "linux-kernel" <linux-kernel@xxxxxxxxxxxxxxx>
Sent: Thursday, September 23, 2021 1:51:08 AM
Subject: RE: [PATCH] infiniband hfi1: fix misuse of %x in ipoib_tx.c

> Subject: [PATCH] infiniband hfi1: fix misuse of %x in ipoib_tx.c
>
> Pointers should be printed with %p or %px rather than cast to (unsigned long
> long) and printed with %llx.
> Change %llx to %p to print the pointer.
>
> Signed-off-by: Guo Zhi <qtxuning1999@xxxxxxxxxxx>

The unsigned long long was originally used to insure the entire accurate pointer as emitted.

This is to ensure the pointers in prints and event traces match values in stacks and register dumps.

I think the %p will obfuscate the pointer so %px is correct for our use case.

Mike