diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-08-08 18:21:54 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-08-08 18:21:54 +0000 |
commit | 1ca4f45ea89f10621bf7e9cfea1705d0a7940bea (patch) | |
tree | 450979718aa99f87a4242d44f7efbd5046175067 | |
parent | bbb2f537156b663560cb0a45933c0fafdd2525a3 (diff) | |
download | src-1ca4f45ea89f10621bf7e9cfea1705d0a7940bea.tar.gz src-1ca4f45ea89f10621bf7e9cfea1705d0a7940bea.zip |
cxgbe: Handle requests for TLS key allocations with no TLS key storage.
If an adapter advertises support for TLS keys but an empty TLS key
storage area in on-board memory, fail the request rather than invoking
vmem_alloc on an uninitialized vmem.
Sponsored by: Chelsio Communications
-rw-r--r-- | sys/dev/cxgbe/crypto/t4_keyctx.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/cxgbe/crypto/t4_keyctx.c b/sys/dev/cxgbe/crypto/t4_keyctx.c index 136aba759a08..a5b15e5243eb 100644 --- a/sys/dev/cxgbe/crypto/t4_keyctx.c +++ b/sys/dev/cxgbe/crypto/t4_keyctx.c @@ -640,6 +640,9 @@ t4_alloc_tls_keyid(struct adapter *sc) { vmem_addr_t addr; + if (sc->vres.key.size == 0) + return (-1); + if (vmem_alloc(sc->key_map, TLS_KEY_CONTEXT_SZ, M_NOWAIT | M_FIRSTFIT, &addr) != 0) return (-1); |