datapath: Remove unused ->set_stats() function from vport_ops.
[openvswitch] / datapath / datapath.h
index c55e2059409274ac8c50380f3a20784a45641369..28ce0dae4ded0d212cbc3a80e36c640f1c66d2c1 100644 (file)
@@ -59,6 +59,7 @@ struct dp_stats_percpu {
 
 /**
  * struct datapath - datapath for flow-based packet switching
+ * @rcu: RCU callback head for deferred destruction.
  * @mutex: Mutual exclusion for ioctls.
  * @dp_idx: Datapath number (index into the dps[] array in datapath.c).
  * @ifobj: Represents /sys/class/net/<devname>/brif.
@@ -66,7 +67,7 @@ struct dp_stats_percpu {
  * @queues: %DP_N_QUEUES sets of queued packets for userspace to handle.
  * @waitqueue: Waitqueue, for waiting for new packets in @queues.
  * @n_flows: Number of flows currently in flow table.
- * @table: Current flow table (RCU protected).
+ * @table: Current flow table.
  * @n_ports: Number of ports currently in @ports.
  * @ports: Map from port number to &struct vport.  %ODPP_LOCAL port
  * always exists, other ports may be %NULL.
@@ -77,6 +78,7 @@ struct dp_stats_percpu {
  * sampling a given packet.
  */
 struct datapath {
+       struct rcu_head rcu;
        struct mutex mutex;
        int dp_idx;
        struct kobject ifobj;
@@ -88,15 +90,15 @@ struct datapath {
        wait_queue_head_t waitqueue;
 
        /* Flow table. */
-       struct tbl *table;
+       struct tbl __rcu *table;
 
        /* Switch ports. */
        unsigned int n_ports;
-       struct vport *ports[DP_MAX_PORTS];
+       struct vport __rcu *ports[DP_MAX_PORTS];
        struct list_head port_list;
 
        /* Stats. */
-       struct dp_stats_percpu *stats_percpu;
+       struct dp_stats_percpu __percpu *stats_percpu;
 
        /* sFlow Sampling */
        unsigned int sflow_probability;