diff options
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c index a12b894f135d..9b9f3f99b39d 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | |||
@@ -763,9 +763,7 @@ static void ch_flower_stats_handler(struct work_struct *work) | |||
763 | 763 | ||
764 | rhashtable_walk_enter(&adap->flower_tbl, &iter); | 764 | rhashtable_walk_enter(&adap->flower_tbl, &iter); |
765 | do { | 765 | do { |
766 | flower_entry = ERR_PTR(rhashtable_walk_start(&iter)); | 766 | rhashtable_walk_start(&iter); |
767 | if (IS_ERR(flower_entry)) | ||
768 | goto walk_stop; | ||
769 | 767 | ||
770 | while ((flower_entry = rhashtable_walk_next(&iter)) && | 768 | while ((flower_entry = rhashtable_walk_next(&iter)) && |
771 | !IS_ERR(flower_entry)) { | 769 | !IS_ERR(flower_entry)) { |
@@ -784,8 +782,9 @@ static void ch_flower_stats_handler(struct work_struct *work) | |||
784 | spin_unlock(&flower_entry->lock); | 782 | spin_unlock(&flower_entry->lock); |
785 | } | 783 | } |
786 | } | 784 | } |
787 | walk_stop: | 785 | |
788 | rhashtable_walk_stop(&iter); | 786 | rhashtable_walk_stop(&iter); |
787 | |||
789 | } while (flower_entry == ERR_PTR(-EAGAIN)); | 788 | } while (flower_entry == ERR_PTR(-EAGAIN)); |
790 | rhashtable_walk_exit(&iter); | 789 | rhashtable_walk_exit(&iter); |
791 | mod_timer(&adap->flower_stats_timer, jiffies + STATS_CHECK_PERIOD); | 790 | mod_timer(&adap->flower_stats_timer, jiffies + STATS_CHECK_PERIOD); |