Add workaround for vt efifb's early use of PHYS_TO_DMAP
In vt_efifb_init the framebuffer's physaddr is passed to PHYS_TO_DMAP before the DMAP is setup. The result is not actually accessed until after the mapping is setup, though. Loosen the assertion in PHYS_TO_DMAP for now, to allow use when dmaplimit == 0. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D1142
This commit is contained in:
parent
843c718fa7
commit
96699e86a3
@ -175,8 +175,14 @@
|
||||
#define VM_MAX_ADDRESS UPT_MAX_ADDRESS
|
||||
#define VM_MIN_ADDRESS (0)
|
||||
|
||||
/*
|
||||
* XXX Allowing dmaplimit == 0 is a temporary workaround for vt(4) efifb's
|
||||
* early use of PHYS_TO_DMAP before the mapping is actually setup. This works
|
||||
* because the result is not actually accessed until later, but the early
|
||||
* vt fb startup needs to be reworked.
|
||||
*/
|
||||
#define PHYS_TO_DMAP(x) ({ \
|
||||
KASSERT((x) < dmaplimit, \
|
||||
KASSERT(dmaplimit == 0 || (x) < dmaplimit, \
|
||||
("physical address %#jx not covered by the DMAP", \
|
||||
(uintmax_t)x)); \
|
||||
(x) | DMAP_MIN_ADDRESS; })
|
||||
|
Loading…
Reference in New Issue
Block a user