diff options
-rw-r--r-- | drivers/char/ipmi/ipmi_bt_sm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/ipmi/ipmi_bt_sm.c b/drivers/char/ipmi/ipmi_bt_sm.c index 7c4a195dfc9a..58dcdee1cd71 100644 --- a/drivers/char/ipmi/ipmi_bt_sm.c +++ b/drivers/char/ipmi/ipmi_bt_sm.c | |||
@@ -333,8 +333,7 @@ static void error_recovery(struct si_sm_data *bt, char *reason) | |||
333 | bt->state = BT_STATE_HOSED; | 333 | bt->state = BT_STATE_HOSED; |
334 | if (!bt->nonzero_status) | 334 | if (!bt->nonzero_status) |
335 | printk(KERN_ERR "IPMI: BT stuck, try power cycle\n"); | 335 | printk(KERN_ERR "IPMI: BT stuck, try power cycle\n"); |
336 | else if (bt->seq == FIRST_SEQ + BT_RETRY_LIMIT) { | 336 | else if (bt->error_retries <= BT_RETRY_LIMIT + 1) { |
337 | /* most likely during insmod */ | ||
338 | printk(KERN_DEBUG "IPMI: BT reset (takes 5 secs)\n"); | 337 | printk(KERN_DEBUG "IPMI: BT reset (takes 5 secs)\n"); |
339 | bt->state = BT_STATE_RESET1; | 338 | bt->state = BT_STATE_RESET1; |
340 | } | 339 | } |
@@ -475,6 +474,7 @@ static enum si_sm_result bt_event(struct si_sm_data *bt, long time) | |||
475 | break; | 474 | break; |
476 | 475 | ||
477 | case BT_STATE_RESTART: /* don't reset retries! */ | 476 | case BT_STATE_RESTART: /* don't reset retries! */ |
477 | reset_flags(bt); | ||
478 | bt->write_data[2] = ++bt->seq; | 478 | bt->write_data[2] = ++bt->seq; |
479 | bt->read_count = 0; | 479 | bt->read_count = 0; |
480 | bt->nonzero_status = 0; | 480 | bt->nonzero_status = 0; |