lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 2 Feb 2014 17:08:05 -0800 From: Jesse Gross <jesse@...ira.com> To: David Miller <davem@...emloft.net> Cc: netdev@...r.kernel.org, dev@...nvswitch.com, Pravin B Shelar <pshelar@...ira.com>, Jesse Gross <jesse@...ira.com> Subject: [PATCH net 4/5] openvswitch: Fix ovs_flow_free() ovs-lock assert. From: Pravin B Shelar <pshelar@...ira.com> ovs_flow_free() is not called under ovs-lock during packet execute path (ovs_packet_cmd_execute()). Since packet execute does not touch flow->mask, there is no need to take that lock either. So move assert in case where flow->mask is checked. Found by code inspection. Signed-off-by: Pravin B Shelar <pshelar@...ira.com> Signed-off-by: Jesse Gross <jesse@...ira.com> --- net/openvswitch/flow_table.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index bd14052..ad0bda0 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -158,11 +158,12 @@ void ovs_flow_free(struct sw_flow *flow, bool deferred) if (!flow) return; - ASSERT_OVSL(); - if (flow->mask) { struct sw_flow_mask *mask = flow->mask; + /* ovs-lock is required to protect mask-refcount and + * mask list. */ + ASSERT_OVSL(); BUG_ON(!mask->ref_count); mask->ref_count--; -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists