In non-Hyper-V systems during Hyper-V initialization, system initialization was getting hung, as hyperv_identify(),
was returning successful irrespective of the type of the platform.
Details
Details
The change has been tested on Hyper-V on ARM64, but needs to be tested on
non-Hyper-V arm and arm64 system to validate a successful boot.
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/conf/files.arm64 | ||
---|---|---|
216 ↗ | (On Diff #112421) | Can you fix the indentations on these lines? |
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
85 | Can you add some comments on what this function does? And the return values mean? | |
105 | This will set the ret to 0 if they match. The return value is the same as above cases when it cannot find or map the fadt. It doesn't seem right. | |
119 | See comments above. It is not right. |
Comment Actions
This should be 4 commits, one for each file.
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
---|---|---|
92 | This should probably be named is_hyperv or similar and return a bool. The current name looks like it returns the hyper-v ID when it's just checking it it is running under it. | |
124 | No need for the else when the if returns. |
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
---|---|---|
111–112 | These two lines could just be: return (strncmp((char *)&hypervid, "MsHyperV", 8) == 0); |