efi: Move efi_status_to_err() to drivers/firmware/efi/
Move efi_status_to_err() to the architecture independent code as it's generally useful in all bits of EFI code where there is a need to convert an efi_status_t to a kernel error value. Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Kweh Hock Leong <hock.leong.kweh@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: joeyli <jlee@suse.com> Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/1461614832-17633-27-git-send-email-matt@codeblueprint.co.uk Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
06f7d4a161
commit
806b0351c9
@ -636,3 +636,36 @@ u64 __weak efi_mem_attributes(unsigned long phys_addr)
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int efi_status_to_err(efi_status_t status)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
switch (status) {
|
||||||
|
case EFI_SUCCESS:
|
||||||
|
err = 0;
|
||||||
|
break;
|
||||||
|
case EFI_INVALID_PARAMETER:
|
||||||
|
err = -EINVAL;
|
||||||
|
break;
|
||||||
|
case EFI_OUT_OF_RESOURCES:
|
||||||
|
err = -ENOSPC;
|
||||||
|
break;
|
||||||
|
case EFI_DEVICE_ERROR:
|
||||||
|
err = -EIO;
|
||||||
|
break;
|
||||||
|
case EFI_WRITE_PROTECTED:
|
||||||
|
err = -EROFS;
|
||||||
|
break;
|
||||||
|
case EFI_SECURITY_VIOLATION:
|
||||||
|
err = -EACCES;
|
||||||
|
break;
|
||||||
|
case EFI_NOT_FOUND:
|
||||||
|
err = -ENOENT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
err = -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
@ -329,39 +329,6 @@ check_var_size_nonblocking(u32 attributes, unsigned long size)
|
|||||||
return fops->query_variable_store(attributes, size, true);
|
return fops->query_variable_store(attributes, size, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int efi_status_to_err(efi_status_t status)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
|
|
||||||
switch (status) {
|
|
||||||
case EFI_SUCCESS:
|
|
||||||
err = 0;
|
|
||||||
break;
|
|
||||||
case EFI_INVALID_PARAMETER:
|
|
||||||
err = -EINVAL;
|
|
||||||
break;
|
|
||||||
case EFI_OUT_OF_RESOURCES:
|
|
||||||
err = -ENOSPC;
|
|
||||||
break;
|
|
||||||
case EFI_DEVICE_ERROR:
|
|
||||||
err = -EIO;
|
|
||||||
break;
|
|
||||||
case EFI_WRITE_PROTECTED:
|
|
||||||
err = -EROFS;
|
|
||||||
break;
|
|
||||||
case EFI_SECURITY_VIOLATION:
|
|
||||||
err = -EACCES;
|
|
||||||
break;
|
|
||||||
case EFI_NOT_FOUND:
|
|
||||||
err = -ENOENT;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
err = -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor,
|
static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor,
|
||||||
struct list_head *head)
|
struct list_head *head)
|
||||||
{
|
{
|
||||||
|
@ -1080,6 +1080,8 @@ static inline void
|
|||||||
efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {}
|
efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern int efi_status_to_err(efi_status_t status);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Variable Attributes
|
* Variable Attributes
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user