Re: [PATCH rdma-core 3/3] srp_daemon: Use consistent format when printing LID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2017-04-13 at 10:48 -0400, Hal Rosenstock wrote:
> %d is not good as LIDs above 32K print as negative numbers.
> %#x seems to be the right choice here; %u was used by IB
> management tools for unicast LID printing.

Hello Hal,

Although the patch itself looks fine to me: LIDs are converted from network
to host format using be16toh(). That function returns an unsigned 16-bit
number. These numbers are converted to type "int" before pr_err() is called.
The type "int" is at least 32 bits on all architectures supported by Linux.
So how could using %d result in a negative number being printed?

> diff --git a/srp_daemon/srp_daemon.c b/srp_daemon/srp_daemon.c
> index 59a6137..4d8476e 100644
> --- a/srp_daemon/srp_daemon.c
> +++ b/srp_daemon/srp_daemon.c
> @@ -632,7 +632,7 @@ recv:
>  			ret = umad_status(in_mad);
>  			if (ret) {
>  				pr_err(
> -					"bad MAD status (%u) from lid %d\n",
> +					"bad MAD status (%u) from lid %#x\n",
>  					ret, (uint16_t) be16toh(out_mad->hdr.addr.lid));
>  				return -ret;

If you have to repost this patch, please remove the (uint16_t) cast since it's
superfluous.

Thanks,

Bart.--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux