Browse Source

xfrm: reset crypto_done when iterating over multiple input xfrms

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>
Sowmini Varadhan 7 years ago
parent
commit
782710e333
1 changed files with 1 additions and 0 deletions
  1. 1 0
      net/xfrm/xfrm_input.c

+ 1 - 0
net/xfrm/xfrm_input.c

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