git: 1714029b8a9c - stable/13 - Fix loader detection of vbefb support on !amd64
Toomas Soome
tsoome at FreeBSD.org
Tue Feb 23 07:27:40 UTC 2021
The branch stable/13 has been updated by tsoome:
URL: https://cgit.FreeBSD.org/src/commit/?id=1714029b8a9c069f2f35f5c4ec2df453f0fd3f08
commit 1714029b8a9c069f2f35f5c4ec2df453f0fd3f08
Author: Dimitry Andric <dim at FreeBSD.org>
AuthorDate: 2021-01-27 21:28:43 +0000
Commit: Toomas Soome <tsoome at FreeBSD.org>
CommitDate: 2021-02-21 20:31:56 +0000
Fix loader detection of vbefb support on !amd64
On i386, after 6c7a932d0b8baaaee16eca0ba061bfa6e0e57bfd, the vbefb vt
driver was no longer detected by the loader, if any kernel module was
loaded after the kernel itself.
This was caused by the parse_vt_drv_set() function being called multiple
times, resetting the detection flag. (It was called multiple times,
becuase i386 .ko files are shared objects like the kernel proper, while
this is not the case on amd64.)
Fix this by skipping the set_vt_drv_set lookup if vbefb was already
detected.
Reviewed by: tsoome
(cherry picked from commit 6e26189be406a9a3799074b16925e6cd63cc703b)
---
stand/common/load_elf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/stand/common/load_elf.c b/stand/common/load_elf.c
index 62fdb560ecff..8bb780ef34df 100644
--- a/stand/common/load_elf.c
+++ b/stand/common/load_elf.c
@@ -875,8 +875,8 @@ nosyms:
ef->buckets = ef->hashtab + 2;
ef->chains = ef->buckets + ef->nbuckets;
- gfx_state.tg_kernel_supported = false;
- if (__elfN(lookup_symbol)(ef, "__start_set_vt_drv_set", &sym,
+ if (!gfx_state.tg_kernel_supported &&
+ __elfN(lookup_symbol)(ef, "__start_set_vt_drv_set", &sym,
STT_NOTYPE) == 0) {
p_start = sym.st_value + ef->off;
if (__elfN(lookup_symbol)(ef, "__stop_set_vt_drv_set", &sym,
More information about the dev-commits-src-branches
mailing list