On Mon, Aug 19, 2019 at 02:15:36PM +0000, Bernard Metzler wrote: > > >To: "Bernard Metzler" <BMT@xxxxxxxxxxxxxx> > >From: "Jason Gunthorpe" <jgg@xxxxxxxx> > >Date: 08/19/2019 03:52PM > >Cc: "Geert Uytterhoeven" <geert@xxxxxxxxxxxxxx>, "Doug Ledford" > ><dledford@xxxxxxxxxx>, linux-rdma@xxxxxxxxxxxxxxx, > >linux-kernel@xxxxxxxxxxxxxxx > >Subject: [EXTERNAL] Re: Re: [PATCH] RDMA/siw: Fix compiler warnings > >on 32-bit due to u64/pointer abuse > > > >On Mon, Aug 19, 2019 at 01:36:11PM +0000, Bernard Metzler wrote: > >> >If the value is really a kernel pointer, then it ought to be > >printed > >> >with %p. We have been getting demanding on this point lately in > >RDMA > >> >to enforce the ability to keep kernel pointers secret. > >> > > >> >> - wqe->sqe.sge[0].laddr = (u64)&wqe->sqe.sge[1]; > >> >> + wqe->sqe.sge[0].laddr = (uintptr_t)&wqe->sqe.sge[1]; > >> > > >> >[..] > >> > > >> >> rv = siw_rx_kva(srx, > >> >> - (void *)(sge->laddr + frx->sge_off), > >> >> + (void *)(uintptr_t)(sge->laddr + frx->sge_off), > >> >> sge_bytes); > >> > > >> >Bernard, this is nonsense, what is going on here with sge->laddr > >that > >> >it can't be a void *? > >> > > >> siw_sge is defined in siw-abi.h. We make the address u64 to keep > >the ABI > >> arch independent. > > > >Eh? How does the siw-abi.h store a kernel pointer? Sounds like kernel > >and user types are being mixed. > > > > siw-abi.h defines the work queue elements of a siw send queue. > For user land, the send queue is mmapped. Kernel or user land > clients write to its send queue when posting work > (SGE: buffer address, length, local key). Should have different types.. Don't want to accidently mix a laddr under user control with one under kernel control. Jason