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. -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html