scsi: sym53c8xx_2: Use complete() instead complete_all()
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Tue, 13 Sep 2016 08:58:49 +0000 (10:58 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 14 Sep 2016 17:19:29 +0000 (13:19 -0400)
There is only one waiter for the completion, therefore there is no need
to use complete_all(). Let's make that clear by using complete() instead
of complete_all().

The usage pattern of the completion is:

waiter context                          waker context

sym_eh_handler()
  struct completion eh_done
  init_completion(eh_done)
  pci_channel_offline()
  wait_for_completion_timeout(eh_done)

                                        sym2_io_resume()
                                          complete(eh_done)

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/sym53c8xx_2/sym_glue.c

index 5d00e51..d32e3ba 100644 (file)
@@ -1874,7 +1874,7 @@ static void sym2_io_resume(struct pci_dev *pdev)
 
        spin_lock_irq(shost->host_lock);
        if (sym_data->io_reset)
-               complete_all(sym_data->io_reset);
+               complete(sym_data->io_reset);
        spin_unlock_irq(shost->host_lock);
 }