git: add99c9c4bae - main - physmem ram: Don't reserve excluded regions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 14 Feb 2024 22:52:45 UTC
The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=add99c9c4bae2769cba14a88b83377ec9c04cad9 commit add99c9c4bae2769cba14a88b83377ec9c04cad9 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2024-02-14 22:07:33 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2024-02-14 22:07:33 +0000 physmem ram: Don't reserve excluded regions These regions can conflict with I/O resources and prevent allocation of those regions by other drivers. It may make sense to reserve them after the boot-time probe of devices has concluded (or after an initial pass to reserve firmware-assigned resources before "wildcard" resources are allocated), but that would require additional changes. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D43893 --- sys/kern/subr_physmem.c | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/sys/kern/subr_physmem.c b/sys/kern/subr_physmem.c index 79fedf58d66d..fda47d4ef697 100644 --- a/sys/kern/subr_physmem.c +++ b/sys/kern/subr_physmem.c @@ -582,7 +582,6 @@ ram_attach(device_t dev) { vm_paddr_t avail_list[PHYS_AVAIL_COUNT]; rman_res_t start, end; - struct region *hwp; int rid, i; rid = 0; @@ -608,30 +607,6 @@ ram_attach(device_t dev) rid++; } - /* Now, reserve the excluded memory regions. */ - for (i = 0, hwp = exregions; i < excnt; i++, hwp++) { - start = hwp->addr; - end = hwp->addr + hwp->size; - - if (bootverbose) - device_printf(dev, - "reserving excluded region: %jx-%jx\n", - (uintmax_t)start, (uintmax_t)(end - 1)); - - /* - * Best-effort attempt to reserve the range. This may fail, as - * sometimes the excluded ranges provided by the device tree - * will cover or overlap some I/O range. - */ - if (bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, start, end, - end - start, 0) == NULL) { - if (bootverbose) - device_printf(dev, "failed to reserve region\n"); - continue; - } - rid++; - } - return (0); }