aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/cassini.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 14299f8063af..93e13636f8dd 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -532,8 +532,7 @@ static void cas_spare_free(struct cas *cp)
532 /* free spare buffers */ 532 /* free spare buffers */
533 INIT_LIST_HEAD(&list); 533 INIT_LIST_HEAD(&list);
534 spin_lock(&cp->rx_spare_lock); 534 spin_lock(&cp->rx_spare_lock);
535 list_splice(&cp->rx_spare_list, &list); 535 list_splice_init(&cp->rx_spare_list, &list);
536 INIT_LIST_HEAD(&cp->rx_spare_list);
537 spin_unlock(&cp->rx_spare_lock); 536 spin_unlock(&cp->rx_spare_lock);
538 list_for_each_safe(elem, tmp, &list) { 537 list_for_each_safe(elem, tmp, &list) {
539 cas_page_free(cp, list_entry(elem, cas_page_t, list)); 538 cas_page_free(cp, list_entry(elem, cas_page_t, list));
@@ -546,13 +545,11 @@ static void cas_spare_free(struct cas *cp)
546 * lock than used everywhere else to manipulate this list. 545 * lock than used everywhere else to manipulate this list.
547 */ 546 */
548 spin_lock(&cp->rx_inuse_lock); 547 spin_lock(&cp->rx_inuse_lock);
549 list_splice(&cp->rx_inuse_list, &list); 548 list_splice_init(&cp->rx_inuse_list, &list);
550 INIT_LIST_HEAD(&cp->rx_inuse_list);
551 spin_unlock(&cp->rx_inuse_lock); 549 spin_unlock(&cp->rx_inuse_lock);
552#else 550#else
553 spin_lock(&cp->rx_spare_lock); 551 spin_lock(&cp->rx_spare_lock);
554 list_splice(&cp->rx_inuse_list, &list); 552 list_splice_init(&cp->rx_inuse_list, &list);
555 INIT_LIST_HEAD(&cp->rx_inuse_list);
556 spin_unlock(&cp->rx_spare_lock); 553 spin_unlock(&cp->rx_spare_lock);
557#endif 554#endif
558 list_for_each_safe(elem, tmp, &list) { 555 list_for_each_safe(elem, tmp, &list) {
@@ -573,8 +570,7 @@ static void cas_spare_recover(struct cas *cp, const gfp_t flags)
573 /* make a local copy of the list */ 570 /* make a local copy of the list */
574 INIT_LIST_HEAD(&list); 571 INIT_LIST_HEAD(&list);
575 spin_lock(&cp->rx_inuse_lock); 572 spin_lock(&cp->rx_inuse_lock);
576 list_splice(&cp->rx_inuse_list, &list); 573 list_splice_init(&cp->rx_inuse_list, &list);
577 INIT_LIST_HEAD(&cp->rx_inuse_list);
578 spin_unlock(&cp->rx_inuse_lock); 574 spin_unlock(&cp->rx_inuse_lock);
579 575
580 list_for_each_safe(elem, tmp, &list) { 576 list_for_each_safe(elem, tmp, &list) {