aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/char/ipmi/ipmi_ssif.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index f6e378dac5f5..f40e3bd2c69c 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -468,11 +468,13 @@ static int ipmi_ssif_thread(void *data)
468 int result; 468 int result;
469 469
470 /* Wait for something to do */ 470 /* Wait for something to do */
471 wait_for_completion(&ssif_info->wake_thread); 471 result = wait_for_completion_interruptible(
472 init_completion(&ssif_info->wake_thread); 472 &ssif_info->wake_thread);
473
474 if (ssif_info->stopping) 473 if (ssif_info->stopping)
475 break; 474 break;
475 if (result == -ERESTARTSYS)
476 continue;
477 init_completion(&ssif_info->wake_thread);
476 478
477 if (ssif_info->i2c_read_write == I2C_SMBUS_WRITE) { 479 if (ssif_info->i2c_read_write == I2C_SMBUS_WRITE) {
478 result = i2c_smbus_write_block_data( 480 result = i2c_smbus_write_block_data(