• Jason Gunthorpe's avatar
    IB/uverbs: Allow all DESTROY commands to succeed after disassociate · 0f50d88a
    Jason Gunthorpe authored
    The disassociate function was broken by design because it failed all
    commands. This prevents userspace from calling destroy on a uobject after
    it has detected a device fatal error and thus reclaiming the resources in
    userspace is prevented.
    
    This fix is now straightforward, when anything destroys a uobject that is
    not the user the object remains on the IDR with a NULL context and object
    pointer. All lookup locking modes other than DESTROY will fail. When the
    user ultimately calls the destroy function it is simply dropped from the
    IDR while any related information is returned.
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    0f50d88a
uverbs_main.c 35.2 KB