Re: [PATCH v11 1/6] s390/cert_store: Pin the user session keyring

From: bot+bpf-ci

Date: Sat Nov 14 2026 - 11:52:06 EST


> s390/cert_store: Pin the user session keyring

TL;DR: Commit message only: the stable tag should be v6.6+, not v6.1+, and the
changelog's keyring-lifetime reason looks inaccurate. It also omits the new
ERR_PTR handling. The code change looks worthwhile.

> s390/cert_store: Pin the user session keyring
>
> The user session keyring stays alive only because the session keyring is
> pinned by current_cred().
>
> Pin the reference at:
>
> 1. find_cs_keyring()
> 2. cleanup_cs_keys()
> 3. create_cs_keyring()
>
> Cc: David Howells <dhowells@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx # v6.1+
> Fixes: 8cf57d7217c3 ("s390: add support for user-defined certificates")
> Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

The stable tag says "# v6.1+", but the commit named in Fixes: is not in
v6.1. 8cf57d7217c3 is contained in v6.6 and not in v6.5, and
arch/s390/kernel/cert_store.c does not exist in v6.1 through v6.5, so there
is nothing to backport there.

The other patches in this series that fix the same commit use "# v6.6+".
Should this be:

Cc: stable@xxxxxxxxxxxxxxx # v6.6+

The changelog says the user session keyring stays alive only because the
session keyring is pinned by current_cred(). Is that accurate?

look_up_user_keyrings() links the user session keyring into the per-user_ns
register:

ret = key_link(reg_keyring, session_keyring);

and get_user_register() notes that "the keyring is pinned by the user_ns".
That link is what normally keeps it alive.

cred->session_keyring is usually a different keyring, either a "_ses"
keyring from join_session_keyring() or pam_keyinit, or NULL. It is the user
session keyring only when install_session_keyring(user_session) happened to
run for that process.

The change itself looks worthwhile, since the owner has KEY_USR_ALL on that
keyring and can revoke or invalidate it, after which keyring_gc() can drop
the register link while cert_store still uses the pointer. Could the
changelog give that reason instead?

The changelog also does not mention that the three callers now handle an
ERR_PTR return from get_user_session_keyring(). Before this patch that
ERR_PTR was passed straight into keyring_search(), key_unlink() and
keyring_alloc(), which dereference keyring->type. Could that be described
as well?


---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

CI run summary: https://github.com/kernel-patches/bpf/actions/runs/43615900108