diff options
| -rw-r--r-- | drivers/firewire/fw-card.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/firewire/fw-card.c b/drivers/firewire/fw-card.c index f2b363ea443e..b3463b8d8c60 100644 --- a/drivers/firewire/fw-card.c +++ b/drivers/firewire/fw-card.c | |||
| @@ -368,9 +368,11 @@ static void fw_card_bm_work(struct work_struct *work) | |||
| 368 | atomic_read(&root_device->state) == FW_DEVICE_RUNNING; | 368 | atomic_read(&root_device->state) == FW_DEVICE_RUNNING; |
| 369 | root_device_is_cmc = root_device && root_device->cmc; | 369 | root_device_is_cmc = root_device && root_device->cmc; |
| 370 | root_id = root_node->node_id; | 370 | root_id = root_node->node_id; |
| 371 | grace = time_after(jiffies, card->reset_jiffies + DIV_ROUND_UP(HZ, 10)); | ||
| 372 | irm_device = irm_node->data; | 371 | irm_device = irm_node->data; |
| 373 | local_device = local_node->data; | 372 | local_device = local_node->data; |
| 373 | |||
| 374 | grace = time_after(jiffies, card->reset_jiffies + DIV_ROUND_UP(HZ, 8)); | ||
| 375 | |||
| 374 | if (is_next_generation(generation, card->bm_generation) || | 376 | if (is_next_generation(generation, card->bm_generation) || |
| 375 | (card->bm_generation != generation && grace)) { | 377 | (card->bm_generation != generation && grace)) { |
| 376 | /* | 378 | /* |
| @@ -434,12 +436,11 @@ static void fw_card_bm_work(struct work_struct *work) | |||
| 434 | } | 436 | } |
| 435 | } else if (card->bm_generation != generation) { | 437 | } else if (card->bm_generation != generation) { |
| 436 | /* | 438 | /* |
| 437 | * OK, we weren't BM in the last generation, and it's | 439 | * We weren't BM in the last generation, and the last |
| 438 | * less than 100ms since last bus reset. Reschedule | 440 | * bus reset is less than 125ms ago. Reschedule this job. |
| 439 | * this task 100ms from now. | ||
| 440 | */ | 441 | */ |
| 441 | spin_unlock_irqrestore(&card->lock, flags); | 442 | spin_unlock_irqrestore(&card->lock, flags); |
| 442 | fw_schedule_bm_work(card, DIV_ROUND_UP(HZ, 10)); | 443 | fw_schedule_bm_work(card, DIV_ROUND_UP(HZ, 8)); |
| 443 | goto out; | 444 | goto out; |
| 444 | } | 445 | } |
| 445 | 446 | ||
