datapath: Reduce loop limit by one to 4.
authorJesse Gross <jesse@nicira.com>
Tue, 12 Mar 2013 19:36:03 +0000 (12:36 -0700)
committerJesse Gross <jesse@nicira.com>
Tue, 12 Mar 2013 20:23:48 +0000 (13:23 -0700)
We currently allow five trips through the kernel datapath
before dropping the packet to protect the stack.  However, there
have been a few reports recently involving tunneling that this is
still too much.  Although it's not a complete solution, this reduces
the limit by one to balance safety in common situations with
flexibility.

Bug #15477

Reported-by: Paul Ingram <paul@nicira.com>
Reported-by: 謝秉融 <faithfulman@gmail.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
datapath/actions.c

index bc126a7..0dac658 100644 (file)
@@ -532,7 +532,7 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
 
 /* We limit the number of times that we pass into execute_actions()
  * to avoid blowing out the stack in the event that we have a loop. */
-#define MAX_LOOPS 5
+#define MAX_LOOPS 4
 
 struct loop_counter {
        u8 count;               /* Count. */