Browse Source

PCI: ibmphp_hpc: don't release hw sem twice if kthread stops

If we stop the kthread, we may end up up'ing the sem twice, which seems
unintended.

Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Jesse Barnes 15 years ago
parent
commit
5c788a695a
1 changed files with 2 additions and 1 deletions
  1. 2 1
      drivers/pci/hotplug/ibmphp_hpc.c

+ 2 - 1
drivers/pci/hotplug/ibmphp_hpc.c

@@ -890,7 +890,7 @@ static int poll_hpc(void *data)
 			msleep(POLL_INTERVAL_SEC * 1000);
 			msleep(POLL_INTERVAL_SEC * 1000);
 
 
 			if (kthread_should_stop())
 			if (kthread_should_stop())
-				break;
+				goto out_sleep;
 			
 			
 			down (&semOperations);
 			down (&semOperations);
 			
 			
@@ -904,6 +904,7 @@ static int poll_hpc(void *data)
 		/* give up the hardware semaphore */
 		/* give up the hardware semaphore */
 		up (&semOperations);
 		up (&semOperations);
 		/* sleep for a short time just for good measure */
 		/* sleep for a short time just for good measure */
+out_sleep:
 		msleep(100);
 		msleep(100);
 	}
 	}
 	up (&sem_exit);
 	up (&sem_exit);