Procházet zdrojové kódy

ixgbe,rcu: convert call_rcu(ring_free_rcu) to kfree_rcu()

The rcu callback ring_free_rcu() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(ring_free_rcu).

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Lai Jiangshan před 14 roky
rodič
revize
bcec8b6531
1 změnil soubory, kde provedl 1 přidání a 6 odebrání
  1. 1 6
      drivers/net/ixgbe/ixgbe_main.c

+ 1 - 6
drivers/net/ixgbe/ixgbe_main.c

@@ -5100,11 +5100,6 @@ err_set_interrupt:
 	return err;
 	return err;
 }
 }
 
 
-static void ring_free_rcu(struct rcu_head *head)
-{
-	kfree(container_of(head, struct ixgbe_ring, rcu));
-}
-
 /**
 /**
  * ixgbe_clear_interrupt_scheme - Clear the current interrupt scheme settings
  * ixgbe_clear_interrupt_scheme - Clear the current interrupt scheme settings
  * @adapter: board private structure to clear interrupt scheme on
  * @adapter: board private structure to clear interrupt scheme on
@@ -5126,7 +5121,7 @@ void ixgbe_clear_interrupt_scheme(struct ixgbe_adapter *adapter)
 		/* ixgbe_get_stats64() might access this ring, we must wait
 		/* ixgbe_get_stats64() might access this ring, we must wait
 		 * a grace period before freeing it.
 		 * a grace period before freeing it.
 		 */
 		 */
-		call_rcu(&ring->rcu, ring_free_rcu);
+		kfree_rcu(ring, rcu);
 		adapter->rx_ring[i] = NULL;
 		adapter->rx_ring[i] = NULL;
 	}
 	}