Bug 217064

Summary: Kernel TLS with CAAM is Broken (net/tls/tls_sw.c)
Product: Drivers Reporter: Gaurav Jain (gaurav.jain)
Component: NetworkAssignee: drivers_network (drivers_network)
Status: NEW ---    
Severity: normal CC: davem, kubakici
Priority: P1    
Hardware: ARM   
OS: Linux   
Kernel Version: 6.1 Subsystem:
Regression: Yes Bisected commit-id:

Description Gaurav Jain 2023-02-21 07:07:22 UTC
I am running Kernel TLS with CAAM on iMX8M board.
KTLS + CAAM is broken in 6.1 kernel when async and zero copy is true.

**Commit id causing the issue: **

commit cbbdee9918a2662914f411aa999f2f80bf044a30
Author: Jakub Kicinski kuba@kernel.org
Date:   Thu Jul 14 22:22:34 2022 -0700

    tls: rx: async: don't put async zc on the list

    The "zero-copy" path in SW TLS will engage either for no skbs or
    for all but last. If the recvmsg parameters are right and the
    socket can do ZC we'll ZC until the iterator can't fit a full
    record at which point we'll decrypt one more record and copy
    over the necessary bits to fill up the request.

    The only reason we hold onto the ZC skbs which went thru the async
    path until the end of recvmsg() is to count bytes. We need an accurate
    count of zc'ed bytes so that we can calculate how much of the non-zc'd
    data to copy. To allow freeing input skbs on the ZC path count only
    how much of the list we'll need to consume.

    Signed-off-by: Jakub Kicinski kuba@kernel.org
    Signed-off-by: David S. Miller davem@davemloft.net