Skip to contentSkip to conversation

lpfc 8.3.0 : Add support for Power Management Suspend/Resume operations

PATCH In review James Smart 1 participant 1 message Dec 5, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/14 lpfc 8.3.0 : Add support for Power Management Suspend/Resume operations

lpfc 8.3.0 : Add support for Power Management Suspend/Resume operations

Implement lpfc_pci_suspend_one() and lpfc_pci_resume_one() and register them in the pci_driver table.

---

 drivers/scsi/lpfc/lpfc_hbadisc.c |   13 +++--
 drivers/scsi/lpfc/lpfc_init.c    |  109 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 117 insertions(+), 5 deletions(-)
drivers/scsi/lpfc/lpfc_hbadisc.c +9 -4
@@ -585,20 +585,25 @@ lpfc_do_work(void *p)
 	set_user_nice(current, -20);
 	phba->data_flags = 0;
 
-	while (1) {
+	while (!kthread_should_stop()) {
 		/* wait and check worker queue activities */
 		rc = wait_event_interruptible(phba->work_waitq,
 					(test_and_clear_bit(LPFC_DATA_READY,
 							    &phba->data_flags)
 					 || kthread_should_stop()));
-		BUG_ON(rc);
-
-		if (kthread_should_stop())
+		/* Signal wakeup shall terminate the worker thread */
+		if (rc) {
+			lpfc_printf_log(phba, KERN_ERR, LOG_ELS,
+					"0433 Wakeup on signal: rc=x%x\n", rc);
 			break;
+		}
 
 		/* Attend pending lpfc data processing */
 		lpfc_work_done(phba);
 	}
+	phba->worker_thread = NULL;
+	lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
+			"0432 Worker thread stopped.\n");
 	return 0;
 }
 
drivers/scsi/lpfc/lpfc_init.c +108 -1

127 lines not on this page · raw message