diff options
author | Matt Fleming <matt@codeblueprint.co.uk> | 2016-04-25 16:06:58 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-04-28 05:34:03 -0400 |
commit | 806b0351c9ff9890c1ef0ba2c46237baef49ac79 (patch) | |
tree | ec1a82709839331cd57e66e25cde7ec09e357657 /drivers/firmware | |
parent | 06f7d4a1618dbb086e738c93cd1ef416ab01027d (diff) |
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>
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/efi/efi.c | 33 | ||||
-rw-r--r-- | drivers/firmware/efi/vars.c | 33 |
2 files changed, 33 insertions, 33 deletions
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 4991371012b4..05509f3aaee8 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c | |||
@@ -636,3 +636,36 @@ u64 __weak efi_mem_attributes(unsigned long phys_addr) | |||
636 | } | 636 | } |
637 | return 0; | 637 | return 0; |
638 | } | 638 | } |
639 | |||
640 | int efi_status_to_err(efi_status_t status) | ||
641 | { | ||
642 | int err; | ||
643 | |||
644 | switch (status) { | ||
645 | case EFI_SUCCESS: | ||
646 | err = 0; | ||
647 | break; | ||
648 | case EFI_INVALID_PARAMETER: | ||
649 | err = -EINVAL; | ||
650 | break; | ||
651 | case EFI_OUT_OF_RESOURCES: | ||
652 | err = -ENOSPC; | ||
653 | break; | ||
654 | case EFI_DEVICE_ERROR: | ||
655 | err = -EIO; | ||
656 | break; | ||
657 | case EFI_WRITE_PROTECTED: | ||
658 | err = -EROFS; | ||
659 | break; | ||
660 | case EFI_SECURITY_VIOLATION: | ||
661 | err = -EACCES; | ||
662 | break; | ||
663 | case EFI_NOT_FOUND: | ||
664 | err = -ENOENT; | ||
665 | break; | ||
666 | default: | ||
667 | err = -EINVAL; | ||
668 | } | ||
669 | |||
670 | return err; | ||
671 | } | ||
diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c index 34b741940494..0012331d5a3d 100644 --- a/drivers/firmware/efi/vars.c +++ b/drivers/firmware/efi/vars.c | |||
@@ -329,39 +329,6 @@ check_var_size_nonblocking(u32 attributes, unsigned long size) | |||
329 | return fops->query_variable_store(attributes, size, true); | 329 | return fops->query_variable_store(attributes, size, true); |
330 | } | 330 | } |
331 | 331 | ||
332 | static int efi_status_to_err(efi_status_t status) | ||
333 | { | ||
334 | int err; | ||
335 | |||
336 | switch (status) { | ||
337 | case EFI_SUCCESS: | ||
338 | err = 0; | ||
339 | break; | ||
340 | case EFI_INVALID_PARAMETER: | ||
341 | err = -EINVAL; | ||
342 | break; | ||
343 | case EFI_OUT_OF_RESOURCES: | ||
344 | err = -ENOSPC; | ||
345 | break; | ||
346 | case EFI_DEVICE_ERROR: | ||
347 | err = -EIO; | ||
348 | break; | ||
349 | case EFI_WRITE_PROTECTED: | ||
350 | err = -EROFS; | ||
351 | break; | ||
352 | case EFI_SECURITY_VIOLATION: | ||
353 | err = -EACCES; | ||
354 | break; | ||
355 | case EFI_NOT_FOUND: | ||
356 | err = -ENOENT; | ||
357 | break; | ||
358 | default: | ||
359 | err = -EINVAL; | ||
360 | } | ||
361 | |||
362 | return err; | ||
363 | } | ||
364 | |||
365 | static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor, | 332 | static bool variable_is_present(efi_char16_t *variable_name, efi_guid_t *vendor, |
366 | struct list_head *head) | 333 | struct list_head *head) |
367 | { | 334 | { |