diff options
Diffstat (limited to 'drivers/firmware')
| -rw-r--r-- | drivers/firmware/arm_scmi/bus.c | 9 | ||||
| -rw-r--r-- | drivers/firmware/efi/arm-runtime.c | 5 | ||||
| -rw-r--r-- | drivers/firmware/efi/efi.c | 4 | ||||
| -rw-r--r-- | drivers/firmware/efi/libstub/arm-stub.c | 3 | ||||
| -rw-r--r-- | drivers/firmware/efi/runtime-wrappers.c | 7 |
5 files changed, 17 insertions, 11 deletions
diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c index 472c88ae1c0f..92f843eaf1e0 100644 --- a/drivers/firmware/arm_scmi/bus.c +++ b/drivers/firmware/arm_scmi/bus.c | |||
| @@ -119,6 +119,11 @@ void scmi_driver_unregister(struct scmi_driver *driver) | |||
| 119 | } | 119 | } |
| 120 | EXPORT_SYMBOL_GPL(scmi_driver_unregister); | 120 | EXPORT_SYMBOL_GPL(scmi_driver_unregister); |
| 121 | 121 | ||
| 122 | static void scmi_device_release(struct device *dev) | ||
| 123 | { | ||
| 124 | kfree(to_scmi_dev(dev)); | ||
| 125 | } | ||
| 126 | |||
| 122 | struct scmi_device * | 127 | struct scmi_device * |
| 123 | scmi_device_create(struct device_node *np, struct device *parent, int protocol) | 128 | scmi_device_create(struct device_node *np, struct device *parent, int protocol) |
| 124 | { | 129 | { |
| @@ -138,6 +143,7 @@ scmi_device_create(struct device_node *np, struct device *parent, int protocol) | |||
| 138 | scmi_dev->dev.parent = parent; | 143 | scmi_dev->dev.parent = parent; |
| 139 | scmi_dev->dev.of_node = np; | 144 | scmi_dev->dev.of_node = np; |
| 140 | scmi_dev->dev.bus = &scmi_bus_type; | 145 | scmi_dev->dev.bus = &scmi_bus_type; |
| 146 | scmi_dev->dev.release = scmi_device_release; | ||
| 141 | dev_set_name(&scmi_dev->dev, "scmi_dev.%d", id); | 147 | dev_set_name(&scmi_dev->dev, "scmi_dev.%d", id); |
| 142 | 148 | ||
| 143 | retval = device_register(&scmi_dev->dev); | 149 | retval = device_register(&scmi_dev->dev); |
| @@ -156,9 +162,8 @@ free_mem: | |||
| 156 | void scmi_device_destroy(struct scmi_device *scmi_dev) | 162 | void scmi_device_destroy(struct scmi_device *scmi_dev) |
| 157 | { | 163 | { |
| 158 | scmi_handle_put(scmi_dev->handle); | 164 | scmi_handle_put(scmi_dev->handle); |
| 159 | device_unregister(&scmi_dev->dev); | ||
| 160 | ida_simple_remove(&scmi_bus_id, scmi_dev->id); | 165 | ida_simple_remove(&scmi_bus_id, scmi_dev->id); |
| 161 | kfree(scmi_dev); | 166 | device_unregister(&scmi_dev->dev); |
| 162 | } | 167 | } |
| 163 | 168 | ||
| 164 | void scmi_set_handle(struct scmi_device *scmi_dev) | 169 | void scmi_set_handle(struct scmi_device *scmi_dev) |
diff --git a/drivers/firmware/efi/arm-runtime.c b/drivers/firmware/efi/arm-runtime.c index 23ea1ed409d1..352bd2473162 100644 --- a/drivers/firmware/efi/arm-runtime.c +++ b/drivers/firmware/efi/arm-runtime.c | |||
| @@ -37,8 +37,9 @@ extern u64 efi_system_table; | |||
| 37 | static struct ptdump_info efi_ptdump_info = { | 37 | static struct ptdump_info efi_ptdump_info = { |
| 38 | .mm = &efi_mm, | 38 | .mm = &efi_mm, |
| 39 | .markers = (struct addr_marker[]){ | 39 | .markers = (struct addr_marker[]){ |
| 40 | { 0, "UEFI runtime start" }, | 40 | { 0, "UEFI runtime start" }, |
| 41 | { DEFAULT_MAP_WINDOW_64, "UEFI runtime end" } | 41 | { DEFAULT_MAP_WINDOW_64, "UEFI runtime end" }, |
| 42 | { -1, NULL } | ||
| 42 | }, | 43 | }, |
| 43 | .base_addr = 0, | 44 | .base_addr = 0, |
| 44 | }; | 45 | }; |
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 4c46ff6f2242..55b77c576c42 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c | |||
| @@ -592,11 +592,7 @@ int __init efi_config_parse_tables(void *config_tables, int count, int sz, | |||
| 592 | 592 | ||
| 593 | early_memunmap(tbl, sizeof(*tbl)); | 593 | early_memunmap(tbl, sizeof(*tbl)); |
| 594 | } | 594 | } |
| 595 | return 0; | ||
| 596 | } | ||
| 597 | 595 | ||
| 598 | int __init efi_apply_persistent_mem_reservations(void) | ||
| 599 | { | ||
| 600 | if (efi.mem_reserve != EFI_INVALID_TABLE_ADDR) { | 596 | if (efi.mem_reserve != EFI_INVALID_TABLE_ADDR) { |
| 601 | unsigned long prsv = efi.mem_reserve; | 597 | unsigned long prsv = efi.mem_reserve; |
| 602 | 598 | ||
diff --git a/drivers/firmware/efi/libstub/arm-stub.c b/drivers/firmware/efi/libstub/arm-stub.c index eee42d5e25ee..c037c6c5d0b7 100644 --- a/drivers/firmware/efi/libstub/arm-stub.c +++ b/drivers/firmware/efi/libstub/arm-stub.c | |||
| @@ -75,9 +75,6 @@ void install_memreserve_table(efi_system_table_t *sys_table_arg) | |||
| 75 | efi_guid_t memreserve_table_guid = LINUX_EFI_MEMRESERVE_TABLE_GUID; | 75 | efi_guid_t memreserve_table_guid = LINUX_EFI_MEMRESERVE_TABLE_GUID; |
| 76 | efi_status_t status; | 76 | efi_status_t status; |
| 77 | 77 | ||
| 78 | if (IS_ENABLED(CONFIG_ARM)) | ||
| 79 | return; | ||
| 80 | |||
| 81 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, sizeof(*rsv), | 78 | status = efi_call_early(allocate_pool, EFI_LOADER_DATA, sizeof(*rsv), |
| 82 | (void **)&rsv); | 79 | (void **)&rsv); |
| 83 | if (status != EFI_SUCCESS) { | 80 | if (status != EFI_SUCCESS) { |
diff --git a/drivers/firmware/efi/runtime-wrappers.c b/drivers/firmware/efi/runtime-wrappers.c index 8903b9ccfc2b..e2abfdb5cee6 100644 --- a/drivers/firmware/efi/runtime-wrappers.c +++ b/drivers/firmware/efi/runtime-wrappers.c | |||
| @@ -147,6 +147,13 @@ void efi_call_virt_check_flags(unsigned long flags, const char *call) | |||
| 147 | static DEFINE_SEMAPHORE(efi_runtime_lock); | 147 | static DEFINE_SEMAPHORE(efi_runtime_lock); |
| 148 | 148 | ||
| 149 | /* | 149 | /* |
| 150 | * Expose the EFI runtime lock to the UV platform | ||
| 151 | */ | ||
| 152 | #ifdef CONFIG_X86_UV | ||
| 153 | extern struct semaphore __efi_uv_runtime_lock __alias(efi_runtime_lock); | ||
| 154 | #endif | ||
| 155 | |||
| 156 | /* | ||
| 150 | * Calls the appropriate efi_runtime_service() with the appropriate | 157 | * Calls the appropriate efi_runtime_service() with the appropriate |
| 151 | * arguments. | 158 | * arguments. |
| 152 | * | 159 | * |
