lkml.org 
[lkml]   [2019]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Re: Re: [PATCH] RDMA/siw: Fix compiler warnings on 32-bit due to u64/pointer abuse
    On Mon, Aug 19, 2019 at 02:15:36PM +0000, Bernard Metzler wrote:
    >
    > >To: "Bernard Metzler" <BMT@zurich.ibm.com>
    > >From: "Jason Gunthorpe" <jgg@ziepe.ca>
    > >Date: 08/19/2019 03:52PM
    > >Cc: "Geert Uytterhoeven" <geert@linux-m68k.org>, "Doug Ledford"
    > ><dledford@redhat.com>, linux-rdma@vger.kernel.org,
    > >linux-kernel@vger.kernel.org
    > >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

    \
     
     \ /
      Last update: 2019-08-19 16:20    [W:5.728 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site