• Doug Ledford's avatar
    IB/ipoib: factor out ah flushing · e135106f
    Doug Ledford authored
    Create a an ipoib_flush_ah and ipoib_stop_ah routines to use at
    appropriate times to flush out all remaining ah entries before we shut
    the device down.
    
    Because neighbors and mcast entries can each have a reference on any
    given ah, we must make sure to free all of those first before our ah
    will actually have a 0 refcount and be able to be reaped.
    
    This factoring is needed in preparation for having per-device work
    queues.  The original per-device workqueue code resulted in the following
    error message:
    
    <ibdev>: ib_dealloc_pd failed
    
    That error was tracked down to this issue.  With the changes to which
    workqueues were flushed when, there were no flushes of the per device
    workqueue after the last ah's were freed, resulting in an attempt to
    dealloc the pd with outstanding resources still allocated.  This code
    puts the explicit flushes in the needed places to avoid that problem.
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    e135106f
ipoib_ib.c 27.9 KB