flow_table.c (6c8ff877cdf13cd5287ed9d700cfb6cb70e2bfa1) flow_table.c (9b996e544a6bc7d201060fdcbdb5d4a9b734aa1b)
1/*
1/*
2 * Copyright (c) 2007-2013 Nicira, Inc.
2 * Copyright (c) 2007-2014 Nicira, Inc.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of version 2 of the GNU General Public
6 * License as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

--- 234 unchanged lines hidden (view full) ---

245
246skip_flows:
247 if (deferred)
248 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb);
249 else
250 __table_instance_destroy(ti);
251}
252
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of version 2 of the GNU General Public
6 * License as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

--- 234 unchanged lines hidden (view full) ---

245
246skip_flows:
247 if (deferred)
248 call_rcu(&ti->rcu, flow_tbl_destroy_rcu_cb);
249 else
250 __table_instance_destroy(ti);
251}
252
253void ovs_flow_tbl_destroy(struct flow_table *table, bool deferred)
253/* No need for locking this function is called from RCU callback or
254 * error path.
255 */
256void ovs_flow_tbl_destroy(struct flow_table *table)
254{
257{
255 struct table_instance *ti = ovsl_dereference(table->ti);
258 struct table_instance *ti = rcu_dereference_raw(table->ti);
256
259
257 table_instance_destroy(ti, deferred);
260 table_instance_destroy(ti, false);
258}
259
260struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *ti,
261 u32 *bucket, u32 *last)
262{
263 struct sw_flow *flow;
264 struct hlist_head *head;
265 int ver;

--- 382 unchanged lines hidden ---
261}
262
263struct sw_flow *ovs_flow_tbl_dump_next(struct table_instance *ti,
264 u32 *bucket, u32 *last)
265{
266 struct sw_flow *flow;
267 struct hlist_head *head;
268 int ver;

--- 382 unchanged lines hidden ---