kernel: bump 4.19 to 4.19.51
[openwrt/staging/jogo.git] / target / linux / generic / backport-4.19 / 370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
index cc8e00353d023b3ed72feb413ed77390645aa0c8..69f0a5fd2484f5424403bfc89649fdedeb147cb5 100644 (file)
@@ -54,11 +54,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                                nf_ct_gc_expired(tmp);
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -183,8 +183,27 @@ static const struct rhashtable_params nf
+@@ -183,6 +183,24 @@ static const struct rhashtable_params nf
        .automatic_shrinking    = true,
  };
  
-+#define       DAY     (86400 * HZ)
++#define        DAY     (86400 * HZ)
 +
 +/* Set an arbitrary timeout large enough not to ever expire, this save
 + * us a check for the IPS_OFFLOAD_BIT from the packet path via
@@ -78,11 +78,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +
  int flow_offload_add(struct nf_flowtable *flow_table, struct flow_offload *flow)
  {
+       int err;
+@@ -203,6 +221,7 @@ int flow_offload_add(struct nf_flowtable
+               return err;
+       }
 +      nf_ct_offload_timeout(flow);
        flow->timeout = (u32)jiffies;
-       rhashtable_insert_fast(&flow_table->rhashtable,
-@@ -305,6 +324,8 @@ static int nf_flow_offload_gc_step(struc
+       return 0;
+ }
+@@ -316,6 +335,8 @@ static int nf_flow_offload_gc_step(struc
        rhashtable_walk_start(&hti);
  
        while ((tuplehash = rhashtable_walk_next(&hti))) {
@@ -91,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                if (IS_ERR(tuplehash)) {
                        err = PTR_ERR(tuplehash);
                        if (err != -EAGAIN)
-@@ -317,9 +338,13 @@ static int nf_flow_offload_gc_step(struc
+@@ -328,9 +349,13 @@ static int nf_flow_offload_gc_step(struc
  
                flow = container_of(tuplehash, struct flow_offload, tuplehash[0]);