diff options
Diffstat (limited to 'drivers/net/bfin_mac.c')
-rw-r--r-- | drivers/net/bfin_mac.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 14bd3801f7d3..8ffea3990d07 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c | |||
@@ -554,8 +554,8 @@ static void adjust_tx_list(void) | |||
554 | { | 554 | { |
555 | int timeout_cnt = MAX_TIMEOUT_CNT; | 555 | int timeout_cnt = MAX_TIMEOUT_CNT; |
556 | 556 | ||
557 | if (tx_list_head->status.status_word != 0 | 557 | if (tx_list_head->status.status_word != 0 && |
558 | && current_tx_ptr != tx_list_head) { | 558 | current_tx_ptr != tx_list_head) { |
559 | goto adjust_head; /* released something, just return; */ | 559 | goto adjust_head; /* released something, just return; */ |
560 | } | 560 | } |
561 | 561 | ||
@@ -567,8 +567,8 @@ static void adjust_tx_list(void) | |||
567 | if (current_tx_ptr->next->next == tx_list_head) { | 567 | if (current_tx_ptr->next->next == tx_list_head) { |
568 | while (tx_list_head->status.status_word == 0) { | 568 | while (tx_list_head->status.status_word == 0) { |
569 | udelay(10); | 569 | udelay(10); |
570 | if (tx_list_head->status.status_word != 0 | 570 | if (tx_list_head->status.status_word != 0 || |
571 | || !(bfin_read_DMA2_IRQ_STATUS() & DMA_RUN)) { | 571 | !(bfin_read_DMA2_IRQ_STATUS() & DMA_RUN)) { |
572 | goto adjust_head; | 572 | goto adjust_head; |
573 | } | 573 | } |
574 | if (timeout_cnt-- < 0) { | 574 | if (timeout_cnt-- < 0) { |
@@ -596,8 +596,8 @@ adjust_head: | |||
596 | ": no sk_buff in a transmitted frame!\n"); | 596 | ": no sk_buff in a transmitted frame!\n"); |
597 | } | 597 | } |
598 | tx_list_head = tx_list_head->next; | 598 | tx_list_head = tx_list_head->next; |
599 | } while (tx_list_head->status.status_word != 0 | 599 | } while (tx_list_head->status.status_word != 0 && |
600 | && current_tx_ptr != tx_list_head); | 600 | current_tx_ptr != tx_list_head); |
601 | return; | 601 | return; |
602 | 602 | ||
603 | } | 603 | } |