created | 2022-04-05T08:46:45Z |
---|---|
begin | 2022-03-28T00:00:00Z |
end | 2022-03-29T00:00:00Z |
path | src/sys |
commits | 4 |
date | 2022-03-28T00:22:20Z | |||
---|---|---|---|---|
author | dv | |||
files | src/sys/arch/amd64/amd64/vmm.c | log | diff | annotate |
message |
vmm(4): add quiesce/wakeup hooks to sync vcpu state. If a host suspends or hibernates, a task in the middle of using vcpu state may be rescheduled to another cpu. This is primarily a problem for Intel hosts as vcpu state is kept local to the physical cpu and must be flushed back to physical memory before another cpu can issue certain vmx instructions. This change ensures no tasks are actively using the vmm device, flushes all vcpu state (if Intel hardware), and turns off virtualization mode on the host cpus. Upon wakeup, we reverse the process. Reported on bugs@ by mpi@. OK mlarkin@ |
date | 2022-03-28T06:28:47Z | |||
---|---|---|---|---|
author | tb | |||
files | src/sys/arch/amd64/amd64/vmm.c | log | diff | annotate |
message |
Put call to vmx_remote_vmclear() under #ifdef MULTIPROCESSOR to unbreak build of amd64 GENERIC makes sense to jsing |
date | 2022-03-28T15:47:11Z | |||
---|---|---|---|---|
author | krw | |||
files | src/sys/scsi/scsiconf.c | log | diff | annotate |
message |
Only SLIST_REMOVE() a link when the link is on the list. Avoids a potential panic. |
date | 2022-03-28T16:31:26Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/netinet/igmp.c | log | diff | annotate |
src/sys/netinet/igmp_var.h | log | diff | annotate | |
src/sys/netinet/in.c | log | diff | annotate | |
message |
if_detach() does if_remove(ifp); NET_LOCK(); rti_delete(). New igmp groups may join while sleeping in interface destruction. In this case if_get() in igmp_joingroup() fails and rti_fill() is not called. Then inm->inm_rti may be NULL. This is the condition when syzkaller crashes in igmp_leavegroup(). Pass the ifp the current CPU is already holding down to igmp_joingroup() and igmp_leavegroup() to avoid half constructed igmp groups. Calling if_get() in caller and callee makes no sense anyway. Reported-by: [email protected] OK denis@ |