Messages in this thread | | | Subject | Re: [PATCH] x86: efi: Replace GFP_ATOMIC with GFP_KERNEL in efi_query_variable_store | From | Joe Perches <> | Date | Wed, 24 Jan 2018 18:49:23 -0800 |
| |
On Thu, 2018-01-25 at 10:29 +0800, Jia-Ju Bai wrote: > The function kzalloc here is not called in atomic context. > If nonblocking in efi_query_variable_store is true, > namely it is in atomic context, efi_query_variable_store will return before > this kzalloc is called. > Thus GFP_ATOMIC is not necessary, and it can be replaced with GFP_KERNEL. > > This is found by a static analysis tool named DCNS written by myself. [] > diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c [] > @@ -177,7 +177,7 @@ efi_status_t efi_query_variable_store(u32 attributes, unsigned long size, > * that by attempting to use more space than is available. > */ > unsigned long dummy_size = remaining_size + 1024; > - void *dummy = kzalloc(dummy_size, GFP_ATOMIC); > + void *dummy = kzalloc(dummy_size, GFP_KERNEL);
trivially, kzalloc takes a size_t not an unsigned long and this _could_, though probably doesn't, lose precision.
It might be nicer to convert to size_t where appropriate.
| |