]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
xfrm: reset crypto_done when iterating over multiple input xfrms
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Mon, 3 Sep 2018 11:36:53 +0000 (04:36 -0700)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:54:36 +0000 (19:54 -0600)
BugLink: https://bugs.launchpad.net/bugs/1836654
[ Upstream commit 782710e333a526780d65918d669cb96646983ba2 ]

We only support one offloaded xfrm (we do not have devices that
can handle more than one offload), so reset crypto_done in
xfrm_input() when iterating over multiple transforms in xfrm_input,
so that we can invoke the appropriate x->type->input for the
non-offloaded transforms

Fixes: d77e38e612a0 ("xfrm: Add an IPsec hardware offloading API")
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
net/xfrm/xfrm_input.c

index 9f492dc417d59f09c2378ce1e136ddf1ad7d6e79..8e75319dd9c0cfc1693067307fa1f7835ce66a40 100644 (file)
@@ -453,6 +453,7 @@ resume:
                        XFRM_INC_STATS(net, LINUX_MIB_XFRMINHDRERROR);
                        goto drop;
                }
+               crypto_done = false;
        } while (!err);
 
        err = xfrm_rcv_cb(skb, family, x->type->proto, 0);