Re: [GIT PULL] please pull infiniband.git

From: Eli Cohen
Date: Mon Nov 03 2014 - 02:16:01 EST


On Mon, Nov 03, 2014 at 06:06:45AM +1000, Dave Airlie wrote:
> On 17 October 2014 08:52, Roland Dreier <roland@xxxxxxxxxx> wrote:
> > Hi Linus,
> >
> > Please pull from
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git tags/rdma-for-linus
> >
> > ----------------------------------------------------------------
> > Main set of InfiniBand/RDMA updates for 3.18 merge window:
> >
> > - Large set of iSER initiator improvements
> > - Hardware driver fixes for cxgb4, mlx5 and ocrdma
> > - Small fixes to core midlayer
> >
>
> building on 32-bit x86.
>
> CC [M] drivers/infiniband/ulp/iser/iser_verbs.o
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function âiser_handle_comp_errorâ:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1171:33:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> if (is_iser_tx_desc(iser_conn, (void *)wc->wr_id)) {
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1172:31:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> struct iser_tx_desc *desc = (struct iser_tx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:
> In function âiser_handle_wcâ:
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1198:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> rx_desc = (struct iser_rx_desc *)wc->wr_id;
> ^
> /home/airlied/devel/kernel/linux-2.6/drivers/infiniband/ulp/iser/iser_verbs.c:1203:14:
> warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> tx_desc = (struct iser_tx_desc *)wc->wr_id;
> ^
>
> Not sure anyone would ever want to run this code on 32-bit boxes, but
> I'm a bit worried if wr_id is a 64-bit value, and we encode it into a
> 32-bit pointer, you'd always lose the top 32-bits.
>
On 32 bit systems your pointer is 32 bits as well so assigning to u64
and casting back to a pointer you don't loose anything. Maybe casting
from u64 to a pointer should go through casting to uintptr_t to avoid
warnings.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/