[PATCH slab/for-next 11/14] smack: specify SLAB_MAY_ACCOUNT for smack_rule cache

Casey Schaufler casey at schaufler-ca.com
Wed Oct 21 16:59:15 UTC 2026


On 10/21/2026 4:46 AM, Harry Yoo (Meta) wrote:
> smk_copy_rules() allocates rules with the gfp passed from
> security_prepare_creds(), which is GFP_KERNEL_ACCOUNT. Specify
> SLAB_MAY_ACCOUNT when the object may be charged to a memcg.
> __GFP_ACCOUNT without SLAB_MAY_ACCOUNT will not be allowed.
>
> Path: fork() -> copy_creds() -> prepare_creds()
>   -> security_prepare_creds(GFP_KERNEL_ACCOUNT) -> smack_cred_prepare()
>   -> smk_copy_rules() -> kmem_cache_zalloc(smack_rule_cache)
>
> Assisted-by: LLM
> Cc: Casey Schaufler <casey at schaufler-ca.com>
> Cc: Paul Moore <paul at paul-moore.com>
> Cc: James Morris <jmorris at namei.org>
> Cc: "Serge E. Hallyn" <serge at hallyn.com>
> Cc: linux-security-module at vger.kernel.org
> Signed-off-by: Harry Yoo (Meta) <harry at kernel.org>

How was this change tested?

> ---
>  security/smack/smack_lsm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
> index 8e88ac65fd7f..8a802578ac29 100644
> --- a/security/smack/smack_lsm.c
> +++ b/security/smack/smack_lsm.c
> @@ -5352,7 +5352,7 @@ static __init int smack_init(void)
>  	struct cred *cred = (struct cred *) current->cred;
>  	struct task_smack *tsp;
>  
> -	smack_rule_cache = KMEM_CACHE(smack_rule, 0);
> +	smack_rule_cache = KMEM_CACHE(smack_rule, SLAB_MAY_ACCOUNT);
>  	if (!smack_rule_cache)
>  		return -ENOMEM;
>  
>



More information about the Linux-security-module-archive mailing list