Page MenuHomeFreeBSD

Don't return errors from the cryptodev_process() method.
ClosedPublic

Authored by jhb on Sep 8 2020, 4:51 PM.
Tags
None
Referenced Files
F154264349: D26361.id76786.diff
Mon, Apr 27, 11:45 AM
Unknown Object (File)
Sun, Apr 26, 6:56 AM
Unknown Object (File)
Sat, Apr 4, 12:35 PM
Unknown Object (File)
Sat, Apr 4, 2:00 AM
Unknown Object (File)
Thu, Apr 2, 5:01 AM
Unknown Object (File)
Mar 27 2026, 4:24 AM
Unknown Object (File)
Mar 19 2026, 9:33 PM
Unknown Object (File)
Jan 24 2026, 12:13 AM
Subscribers

Details

Summary

The cryptodev_process() method should either return 0 if it has
completed a request, or ERESTART to defer the request until later. If
a request encounters an error, the error should be reported via
crp_etype before completing the request via crypto_done().

Fix a few more drivers noticed by asomers@ similar to the fix in
r365389. This is an old bug, but went unnoticed since crypto requests
did not start failing as a normal part of operation until digest
verification was introduced which can fail requests with EBADMSG.

PR: 247986
Reported by: asomers

Test Plan
  • none yet, still need to compile test

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 33444
Build 30728: arc lint + arc unit

Event Timeline

jhb requested review of this revision.Sep 8 2020, 4:51 PM
jhb added inline comments.
sys/dev/safe/safe.c
1262

This is slightly different as we need to pass ERESTART to the caller.

This revision is now accepted and ready to land.Sep 8 2020, 5:44 PM