On Mon, Jun 22, 2026 at 03:20:11PM +0100, Ben Dooks wrote:
> The dev_err() call in btt_log_read() is passing a seq value
> into dev_err() which is a __le32 without any conversion.
> 
> Fix the following (prototype) sparse warnings:
> drivers/nvdimm/btt.c:342:17: warning: incorrect type in argument 5 (different 
> base types)
> drivers/nvdimm/btt.c:342:17:    expected int
> drivers/nvdimm/btt.c:342:17:    got restricted __le32 [usertype] seq
> drivers/nvdimm/btt.c:342:17: warning: incorrect type in argument 6 (different 
> base types)
> drivers/nvdimm/btt.c:342:17:    expected int
> drivers/nvdimm/btt.c:342:17:    got restricted __le32 [usertype] seq

Hi Ben,

Please revise the commit log.

The commit log is a message to all future readers, not a place to
paste static analysis warnings and leave the user visible impact
assumed, or as an exercise for the reader.

Prefer something like this:

        When BTT log corruption is detected, btt_log_read() reports the
        sequence numbers of the two log entries. Those values are stored
        little-endian, so printing them without conversion can report
        byte-swapped sequence numbers on big-endian systems.

        Convert the sequence numbers to CPU endianness before passing
        them to dev_err().

        Issue reported by sparse.


(There is no need for the sparse pastings.)

-- Alison

> 
> Signed-off-by: Ben Dooks <[email protected]>
> ---
>  drivers/nvdimm/btt.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c
> index 7e1112960d7f..e9d548442884 100644
> --- a/drivers/nvdimm/btt.c
> +++ b/drivers/nvdimm/btt.c
> @@ -341,8 +341,9 @@ static int btt_log_read(struct arena_info *arena, u32 
> lane,
>       if (old_ent < 0 || old_ent > 1) {
>               dev_err(to_dev(arena),
>                               "log corruption (%d): lane %d seq [%d, %d]\n",
> -                             old_ent, lane, log.ent[arena->log_index[0]].seq,
> -                             log.ent[arena->log_index[1]].seq);
> +                             old_ent, lane,
> +                             le32_to_cpu(log.ent[arena->log_index[0]].seq),
> +                             le32_to_cpu(log.ent[arena->log_index[1]].seq));
>               /* TODO set error state? */
>               return -EIO;
>       }
> -- 
> 2.37.2.352.g3c44437643
> 

Reply via email to