• N
    RDMA/ocrdma: Dont use PD 0 for userpace CQ DB · cffce990
    Naresh Gottumukkala 提交于
    Create_CQ verb doesn't provide a PD pointer.  So, until now we are
    creating all (both userspace and kernel) CQ DB regions from PD0.  This
    will result in mmapping PD0 to applications.  A rogue userspace
    application can mess things up.
    
    Also more serious issues is even the be2net NIC uses PD0.
    
    This patch addresses this problem by:
    
    1) Create a PD page for every userspace application when the
       alloc_ucontext is called. This will be destroyed in
       dealloc_ucontext.
    2) All CQs for that context will use the PD allocated in ucontext.
    3) The first create_PD call from application will result in returning
       the PD address from its ucontext (no new PD will be created).
    4) For subsecquent create_pd calls from application, we create new PDs for
       the application.
    Signed-off-by: NNaresh Gottumukkala <bgottumukkala@emulex.com>
    Signed-off-by: NRoland Dreier <roland@purestorage.com>
    cffce990
ocrdma_hw.c 70.0 KB