Re: [PATCH v16 02/13] virt: sev-guest: Replace GFP_KERNEL_ACCOUNT with GFP_KERNEL

Tom Lendacky
2025-01-07T18:40:59Z

On 1/6/25 06:46, Nikunj A Dadhania wrote:
> Replace GFP_KERNEL_ACCOUNT with GFP_KERNEL in the sev-guest driver code.
> GFP_KERNEL_ACCOUNT is typically used for accounting untrusted userspace
> allocations. After auditing the sev-guest code, the following changes are
> necessary:
>
> * snp_init_crypto(): Use GFP_KERNEL as this is a trusted device probe
> path.
>
> Retain GFP_KERNEL_ACCOUNT in the following cases for robustness and
> specific path requirements:
>
> * alloc_shared_pages(): Although all allocations are limited, retain
> GFP_KERNEL_ACCOUNT for future robustness.
>
> * get_report() and get_ext_report(): These functions are on the unlocked
> ioctl path and should continue using GFP_KERNEL_ACCOUNT.
>
> Suggested-by: Borislav Petkov <bp@alien8.de>
> Signed-off-by: Nikunj A Dadhania <nikunj@amd.com>

Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>

> ---
> drivers/virt/coco/sev-guest/sev-guest.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/virt/coco/sev-guest/sev-guest.c b/drivers/virt/coco/sev-guest/sev-guest.c
> index 62328d0b2cb6..250ce92d816b 100644
> --- a/drivers/virt/coco/sev-guest/sev-guest.c
> +++ b/drivers/virt/coco/sev-guest/sev-guest.c
> @@ -141,7 +141,7 @@ static struct aesgcm_ctx *snp_init_crypto(u8 *key, size_t keylen)
> {
> struct aesgcm_ctx *ctx;
>
> - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL_ACCOUNT);
> + ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
> if (!ctx)
> return NULL;
>