[Bug 252981] panic with ZFS encryption and QAT: VERIFY3(0 == spa_do_crypt_bad(...

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Jan 25 20:21:56 UTC 2021


Mark Johnston <markj at FreeBSD.org> changed:

           What    |Removed                     |Added
             Status|New                         |Open

--- Comment #1 from Mark Johnston <markj at FreeBSD.org> ---
This looks like a bug in zfs_crypto_dispatch() which is only tickled when
cryptop dispatch is asynchronous (i.e., a hardware driver is handling the
request): it needs to set session->fs_done = false earlier.

More generally the code is assuming that only one thread is dispatching crypto
requests for a given freebsd_session_t.  From my reading of the code this isn't
obviously true: zio_do_crypt_data() uses key->zk_session but there doesn't
appear to be any mutual exclusion.  Again this is only a problem with hw
crypto.  I think it should be sufficient to make fs_done truly thread local.

You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-fs mailing list