]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
IB/core: uverbs: Do not wait for uverbs dev closure during forced system shutdown.
authorRama Nichanamatlu <rama.nichanamatlu@oracle.com>
Thu, 10 Nov 2016 08:30:07 +0000 (00:30 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 25 Nov 2016 22:31:20 +0000 (14:31 -0800)
Waiting for uverbs dev file closure in the system forced shutdown [e.g
reboot -f] path locks up the reboot process forever preventing system
shutdown as application closure of this device file is very unlikely at
this time. This closure happens in orderly shutdown [e.g reboot] as
processes are sent SIGTERM.

Orabug: 24918039

Signed-off-by: Rama Nichanamatlu <rama.nichanamatlu@oracle.com>
Reviewed-by: Avinash Repaka <avinash.repaka@oracle.com>
drivers/infiniband/core/uverbs_main.c

index 59bf2aca2036efc5254dd6454dd5cc05d7a8c35a..b2a8bd749170c82a52e964d2c8f4d5e98ef44846 100644 (file)
@@ -1111,7 +1111,10 @@ static void ib_uverbs_remove_one(struct ib_device *device)
 
        if (atomic_dec_and_test(&uverbs_dev->refcount))
                ib_uverbs_comp_dev(uverbs_dev);
-       wait_for_completion(&uverbs_dev->comp);
+
+       if (system_state == SYSTEM_RUNNING)
+               wait_for_completion(&uverbs_dev->comp);
+
        kobject_put(&uverbs_dev->kobj);
 }