Re: Re: Re: Re: Re: Re: [PATCH] RDMA/siw: Fix compiler warnings on 32-bit due to u64/pointer abuse

From: Jason Gunthorpe
Date: Mon Aug 19 2019 - 18:22:12 EST


On Mon, Aug 19, 2019 at 09:40:10PM +0000, Bernard Metzler wrote:

> >It is either an iova & lkey pair, or SGE information is inlined into
> >the WR ring.
> >
> In siw, the reference to any type of memory is kept uninterpreted
> in the send/receive queue until it gets accessed by a data
> transfer. The information on what type of memory is being referenced
> is deducted from the local memory key. As said, this step is
> being executed only when the actual buffer is to be touched.
> All it needs before that translation is to keep the 32bit key +
> length and the up to 64bit address in a work queue element within
> the send queue.
> lkey lookup and memory translation + access validation happens
> after the work queue element left the send/receive queue and a
> local copy of it is being processed by the kernel driver
> during RX or TX operations.
>
> Inline data is implemented similar to how HW providers do
> it - user data are copied immediately into the WR array.

I still don't understand how kernel void *'s are getting into WQEs.

Jason