Re: [PATCH rdma-next v3-v5] Add OPA extended LID support

Leon Romanovsky
2017-08-12T06:29:41Z

[-- Attachment #1: Type: text/plain, Size: 1779 bytes --]

On Fri, Aug 11, 2017 at 02:35:46PM -0400, Don Hiatt wrote:
> This patch series primarily increases sizes of variables that hold
> lid values from 16 to 32 bits. Additionally, it adds a check in
> the IB mad stack to verify a properly formatted MAD when OPA
> extended LIDs are used.
>
> Signed-off-by: Don Hiatt <don.hiatt-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> Reviewed-by: Dennis Dalessandro <dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>
>

<...>

>
> -/* Return slid in 16bit CPU encoding */
> -static inline u16 ib_slid_cpu16(u32 slid)
> +/**
> + * ib_lid_cpu16 - Return lid in 16bit CPU encoding.
> + * In the current implementation the only way to get
> + * get the 32bit lid is from other sources for OPA.
> + * For IB, lids will always be 16bits so cast the
> + * value accordingly.
> + *
> + * @lid: A 32bit LID
> + */
> +static inline u16 ib_lid_cpu16(u32 lid)
> {
> - return (u16)slid;
> + WARN_ON_ONCE(lid && 0xFFFF0000);

It will print warning for first lid > 0
The proper lines should be "lid & 0xFFFF0000" (one ampersand).

> + return (u16)lid;
> }
>
> -/* Return slid in 16bit BE encoding */
> -static inline u16 ib_slid_be16(u32 slid)
> +/**
> + * ib_lid_be16 - Return lid in 16bit BE encoding.
> + *
> + * @lid: A 32bit LID
> + */
> +static inline u16 ib_lid_be16(u32 lid)

This function returns be16 and not u16.

> {
> - return cpu_to_be16((u16)slid);
> + WARN_ON_ONCE(lid && 0xFFFF0000);

The same as above.

> + return cpu_to_be16((u16)lid);
> }
> #endif /* IB_VERBS_H */
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html