RDMA/core: Trigger a WARN_ON if the driver causes uobjects to become leaked
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 25 Aug 2020 16:35:38 +0000 (13:35 -0300)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 31 Aug 2020 15:10:11 +0000 (12:10 -0300)
Drivers that fail destroy can cause uverbs to leak uobjects. Drivers are
required to always eventually destroy their ubojects, so trigger a WARN_ON
to detect this driver bug.

Link: https://lore.kernel.org/r/0-v1-b1e0ed400ba9+f7-warn_destroy_ufile_hw_jgg@nvidia.com
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Gal Pressman <galpress@amazon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/core/rdma_core.c

index 6d3ed7c..e1c616e 100644 (file)
@@ -895,8 +895,9 @@ void uverbs_destroy_ufile_hw(struct ib_uverbs_file *ufile,
                if (__uverbs_cleanup_ufile(ufile, reason)) {
                        /*
                         * No entry was cleaned-up successfully during this
-                        * iteration
+                        * iteration. It is a driver bug to fail destruction.
                         */
+                       WARN_ON(!list_empty(&ufile->uobjects));
                        break;
                }