On Thu, May 17, 2018 at 04:39:38PM +0000, Parav Pandit wrote: > > > @@ -1297,6 +1355,12 @@ void ib_cache_cleanup_one(struct ib_device > > *device) > > > ib_unregister_event_handler(&device->cache.event_handler); > > > flush_workqueue(ib_wq); > > > gid_table_cleanup_one(device); > > > + > > > + /* > > > + * Flush the wq second time for any pending GID delete > > > + * work for RoCE device. > > > + */ > > > + flush_workqueue(ib_wq); > > > } > > > > Humm.. Either this flush is not needed or it isn't strong enough. > > > > I think we need to wait until the gid table is fully free'd and all PENDING_DELS > > are completed ? > > > This second flush waits for gid table being fully freed. No, it only waits for frees in progress to complete, it doesn't wait for anyone out there holding a kref to drop the ref. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html