Commit 4d42cd6b authored by Jakub Kicinski's avatar Jakub Kicinski

tls: rx: fix return value for async crypto

Gaurav reports that TLS Rx is broken with async crypto
accelerators. The commit under fixes missed updating
the retval byte counting logic when updating how records
are stored. Even tho both before and after the change
'decrypted' was updated inside the main loop, it was
completely overwritten when processing the async
completions. Now that the rx_list only holds
non-zero-copy records we need to add, not overwrite.
Reported-and-bisected-by: default avatarGaurav Jain <gaurav.jain@nxp.com>
Fixes: cbbdee99 ("tls: rx: async: don't put async zc on the list")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217064Tested-by: default avatarGaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20230227181201.1793772-1-kuba@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ca643ccf
...@@ -2127,7 +2127,7 @@ int tls_sw_recvmsg(struct sock *sk, ...@@ -2127,7 +2127,7 @@ int tls_sw_recvmsg(struct sock *sk,
else else
err = process_rx_list(ctx, msg, &control, 0, err = process_rx_list(ctx, msg, &control, 0,
async_copy_bytes, is_peek); async_copy_bytes, is_peek);
decrypted = max(err, 0); decrypted += max(err, 0);
} }
copied += decrypted; copied += decrypted;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment