This restored previous behaviour. If caller does not want ports to be
filled, we should not break.

Fixes: 06635a35d13d ("flow_dissect: use programable dissector in 
skb_flow_dissect and friends")
Signed-off-by: Jiri Pirko <j...@resnulli.us>
---
 net/core/flow_dissector.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
index 703d059..1f2d893 100644
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -221,13 +221,13 @@ flow_label:
                        key_basic->ip_proto = ip_proto;
                        key_basic->thoff = (u16)nhoff;
 
-                       if (!skb_flow_dissector_uses_key(flow_dissector,
-                                                        
FLOW_DISSECTOR_KEY_PORTS))
-                               break;
-                       key_ports = skb_flow_dissector_target(flow_dissector,
-                                                             
FLOW_DISSECTOR_KEY_PORTS,
-                                                             target_container);
-                       key_ports->ports = flow_label;
+                       if (skb_flow_dissector_uses_key(flow_dissector,
+                                                       
FLOW_DISSECTOR_KEY_PORTS)) {
+                               key_ports = 
skb_flow_dissector_target(flow_dissector,
+                                                                     
FLOW_DISSECTOR_KEY_PORTS,
+                                                                     
target_container);
+                               key_ports->ports = flow_label;
+                       }
 
                        return true;
                }
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to