Re: Re: [PATCH] RDMA/siw: Fix compiler warnings on 32-bit due to u64/pointer abuse
From: Jason Gunthorpe
Date: Mon Aug 19 2019 - 09:52:17 EST
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.laddr = (u64)&wqe->sqe.sge;
> >> + wqe->sqe.sge.laddr = (uintptr_t)&wqe->sqe.sge;
> >> 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.