linux/drivers/firmware
Ard Biesheuvel 136d5d57e3 efi/esrt: Fix handling of early ESRT table mapping
As reported by Tyler, efi_esrt_init() will return without releasing the
ESRT table header mapping if it encounters a table with an unexpected
version. Replacing the 'return' with 'goto err_memunmap' would fix this
particular occurrence, but, as it turns out, the code is rather peculiar
to begin with:

 - it never uses the header mapping after memcpy()'ing out its contents,
 - it maps and unmaps the entire table without ever looking at the
   contents.

So let's refactor this code to unmap the table header right after the
memcpy() so we can get rid of the error handling path altogether, and
drop the second mapping entirely.

Reported-by: Tyler Baicar <tbaicar@codeaurora.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Jones <pjones@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20180312084500.10764-5-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-03-12 10:05:01 +01:00
..
broadcom tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
efi efi/esrt: Fix handling of early ESRT table mapping 2018-03-12 10:05:01 +01:00
google firmware: vpd: Fix platform driver and device registration/unregistration 2017-11-28 16:57:18 +01:00
meson firmware: meson-sm: Allow 0 as valid return value 2017-03-23 12:22:40 -07:00
tegra ARM: SoC driver updates for v4.15 2017-11-16 16:05:01 -08:00
arm_scpi.c firmware: arm_scpi: Revert updates made during v4.15 merge window 2017-12-03 19:39:22 -08:00
arm_sdei.c firmware: arm_sdei: Fix return value check in sdei_present_dt() 2018-01-15 18:16:59 +00:00
dcdbas.c firmware/dcdbas: Constify attribute_group structures 2017-08-21 09:43:51 +02:00
dcdbas.h
dell_rbu.c
dmi_scan.c firmware: dmi: handle missing DMI data gracefully 2018-02-03 11:25:20 +01:00
dmi-id.c firmware: dmi: Fix permissions of product_family 2017-06-15 13:46:01 +02:00
dmi-sysfs.c firmware: dmi: handle missing DMI data gracefully 2018-02-03 11:25:20 +01:00
edd.c edd: Deprecate pci_get_bus_and_slot() 2018-01-11 17:26:28 -06:00
iscsi_ibft_find.c
iscsi_ibft.c ibft: Deprecate pci_get_bus_and_slot() 2018-01-11 17:26:55 -06:00
Kconfig ARM: SoC driver updates for 4.16 2018-02-01 16:35:31 -08:00
Makefile firmware: arm_sdei: Add driver for Software Delegated Exceptions 2018-01-13 10:44:56 +00:00
memmap.c drivers/firmware/memmap.c: fix kernel-doc format 2015-06-25 17:00:41 -07:00
pcdp.c x86, mpparse, x86/acpi, x86/PCI, x86/dmi, SFI: Use memremap() for RAM mappings 2017-07-18 11:37:58 +02:00
pcdp.h
psci_checker.c drivers: psci: remove cluster terminology and dependency on physical_package_id 2018-01-17 12:59:33 +01:00
psci.c firmware/psci: Expose SMCCC version through psci_ops 2018-02-06 22:54:11 +00:00
qcom_scm-32.c remoteproc updates for v4.15 2017-11-17 20:14:10 -08:00
qcom_scm-64.c remoteproc updates for v4.15 2017-11-17 20:14:10 -08:00
qcom_scm.c firmware: qcom_scm: drop redandant of_platform_populate 2017-12-20 15:38:34 -06:00
qcom_scm.h remoteproc updates for v4.15 2017-11-17 20:14:10 -08:00
qemu_fw_cfg.c firmware: Use PTR_ERR_OR_ZERO() 2018-01-31 01:47:34 +02:00
raspberrypi.c firmware: raspberrypi: print time using time64_t 2017-11-28 16:24:33 -08:00
scpi_pm_domain.c firmware: scpi: add device power domain support using genpd 2016-06-21 10:26:51 +01:00
ti_sci.c firmware: ti_sci: Use %zu for size_t print format 2017-12-16 14:41:33 -08:00
ti_sci.h firmware: ti_sci: Add support for reboot core service 2016-10-27 12:09:12 +03:00