Skip to content

Commit ea1f916

Browse files
committed
Merge tag 'acpi-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI fix from Rafael Wysocki: "Revert a recent commit related to memory management that turned out to be problematic (Jia He)" * tag 'acpi-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: Revert "ACPI: Add memory semantics to acpi_os_map_memory()"
2 parents 1b7eaf5 + 12064c1 commit ea1f916

File tree

4 files changed

+10
-43
lines changed

4 files changed

+10
-43
lines changed

arch/arm64/include/asm/acpi.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr);
5050
void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size);
5151
#define acpi_os_ioremap acpi_os_ioremap
5252

53-
void __iomem *acpi_os_memmap(acpi_physical_address phys, acpi_size size);
54-
#define acpi_os_memmap acpi_os_memmap
55-
5653
typedef u64 phys_cpuid_t;
5754
#define PHYS_CPUID_INVALID INVALID_HWID
5855

arch/arm64/kernel/acpi.c

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,7 @@ pgprot_t __acpi_get_mem_attribute(phys_addr_t addr)
273273
return __pgprot(PROT_DEVICE_nGnRnE);
274274
}
275275

276-
static void __iomem *__acpi_os_ioremap(acpi_physical_address phys,
277-
acpi_size size, bool memory)
276+
void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
278277
{
279278
efi_memory_desc_t *md, *region = NULL;
280279
pgprot_t prot;
@@ -300,11 +299,9 @@ static void __iomem *__acpi_os_ioremap(acpi_physical_address phys,
300299
* It is fine for AML to remap regions that are not represented in the
301300
* EFI memory map at all, as it only describes normal memory, and MMIO
302301
* regions that require a virtual mapping to make them accessible to
303-
* the EFI runtime services. Determine the region default
304-
* attributes by checking the requested memory semantics.
302+
* the EFI runtime services.
305303
*/
306-
prot = memory ? __pgprot(PROT_NORMAL_NC) :
307-
__pgprot(PROT_DEVICE_nGnRnE);
304+
prot = __pgprot(PROT_DEVICE_nGnRnE);
308305
if (region) {
309306
switch (region->type) {
310307
case EFI_LOADER_CODE:
@@ -364,16 +361,6 @@ static void __iomem *__acpi_os_ioremap(acpi_physical_address phys,
364361
return __ioremap(phys, size, prot);
365362
}
366363

367-
void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
368-
{
369-
return __acpi_os_ioremap(phys, size, false);
370-
}
371-
372-
void __iomem *acpi_os_memmap(acpi_physical_address phys, acpi_size size)
373-
{
374-
return __acpi_os_ioremap(phys, size, true);
375-
}
376-
377364
/*
378365
* Claim Synchronous External Aborts as a firmware first notification.
379366
*

drivers/acpi/osl.c

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,7 @@ acpi_map_lookup_virt(void __iomem *virt, acpi_size size)
284284
#define should_use_kmap(pfn) page_is_ram(pfn)
285285
#endif
286286

287-
static void __iomem *acpi_map(acpi_physical_address pg_off, unsigned long pg_sz,
288-
bool memory)
287+
static void __iomem *acpi_map(acpi_physical_address pg_off, unsigned long pg_sz)
289288
{
290289
unsigned long pfn;
291290

@@ -295,8 +294,7 @@ static void __iomem *acpi_map(acpi_physical_address pg_off, unsigned long pg_sz,
295294
return NULL;
296295
return (void __iomem __force *)kmap(pfn_to_page(pfn));
297296
} else
298-
return memory ? acpi_os_memmap(pg_off, pg_sz) :
299-
acpi_os_ioremap(pg_off, pg_sz);
297+
return acpi_os_ioremap(pg_off, pg_sz);
300298
}
301299

302300
static void acpi_unmap(acpi_physical_address pg_off, void __iomem *vaddr)
@@ -311,10 +309,9 @@ static void acpi_unmap(acpi_physical_address pg_off, void __iomem *vaddr)
311309
}
312310

313311
/**
314-
* __acpi_os_map_iomem - Get a virtual address for a given physical address range.
312+
* acpi_os_map_iomem - Get a virtual address for a given physical address range.
315313
* @phys: Start of the physical address range to map.
316314
* @size: Size of the physical address range to map.
317-
* @memory: true if remapping memory, false if IO
318315
*
319316
* Look up the given physical address range in the list of existing ACPI memory
320317
* mappings. If found, get a reference to it and return a pointer to it (its
@@ -324,8 +321,8 @@ static void acpi_unmap(acpi_physical_address pg_off, void __iomem *vaddr)
324321
* During early init (when acpi_permanent_mmap has not been set yet) this
325322
* routine simply calls __acpi_map_table() to get the job done.
326323
*/
327-
static void __iomem __ref
328-
*__acpi_os_map_iomem(acpi_physical_address phys, acpi_size size, bool memory)
324+
void __iomem __ref
325+
*acpi_os_map_iomem(acpi_physical_address phys, acpi_size size)
329326
{
330327
struct acpi_ioremap *map;
331328
void __iomem *virt;
@@ -356,7 +353,7 @@ static void __iomem __ref
356353

357354
pg_off = round_down(phys, PAGE_SIZE);
358355
pg_sz = round_up(phys + size, PAGE_SIZE) - pg_off;
359-
virt = acpi_map(phys, size, memory);
356+
virt = acpi_map(phys, size);
360357
if (!virt) {
361358
mutex_unlock(&acpi_ioremap_lock);
362359
kfree(map);
@@ -375,17 +372,11 @@ static void __iomem __ref
375372
mutex_unlock(&acpi_ioremap_lock);
376373
return map->virt + (phys - map->phys);
377374
}
378-
379-
void __iomem *__ref
380-
acpi_os_map_iomem(acpi_physical_address phys, acpi_size size)
381-
{
382-
return __acpi_os_map_iomem(phys, size, false);
383-
}
384375
EXPORT_SYMBOL_GPL(acpi_os_map_iomem);
385376

386377
void *__ref acpi_os_map_memory(acpi_physical_address phys, acpi_size size)
387378
{
388-
return (void *)__acpi_os_map_iomem(phys, size, true);
379+
return (void *)acpi_os_map_iomem(phys, size);
389380
}
390381
EXPORT_SYMBOL_GPL(acpi_os_map_memory);
391382

include/acpi/acpi_io.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,6 @@ static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
1414
}
1515
#endif
1616

17-
#ifndef acpi_os_memmap
18-
static inline void __iomem *acpi_os_memmap(acpi_physical_address phys,
19-
acpi_size size)
20-
{
21-
return ioremap_cache(phys, size);
22-
}
23-
#endif
24-
2517
extern bool acpi_permanent_mmap;
2618

2719
void __iomem __ref

0 commit comments

Comments
 (0)