rdma: fix buggy code that the compiler warns about
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 15 Dec 2016 20:18:42 +0000 (12:18 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 15 Dec 2016 20:18:42 +0000 (12:18 -0800)
Get rid of this warning:

  drivers/infiniband/sw/rdmavt/cq.c: In function ‘rvt_cq_exit’:
  drivers/infiniband/sw/rdmavt/cq.c:542:2: warning: ‘worker’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    kthread_destroy_worker(worker);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

by fixing the function to actually work.

Fixes: 6efaf10f163d ("IB/rdmavt: Avoid queuing work into a destroyed cq kthread worker")
Cc: Petr Mladek <pmladek@suse.com>
Cc: Doug Ledford <dledford@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/infiniband/sw/rdmavt/cq.c

index 4d0b699..7aa7a4e 100644 (file)
@@ -532,7 +532,8 @@ void rvt_cq_exit(struct rvt_dev_info *rdi)
 
        /* block future queuing from send_complete() */
        spin_lock_irq(&rdi->n_cqs_lock);
-       if (!rdi->worker) {
+       worker = rdi->worker;
+       if (!worker) {
                spin_unlock_irq(&rdi->n_cqs_lock);
                return;
        }