blob: a1d9eb589353da8164947eb961fdaac0de02150a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
device: 0.886
graphic: 0.829
permissions: 0.723
network: 0.720
other: 0.534
debug: 0.512
vnc: 0.511
performance: 0.428
socket: 0.422
files: 0.350
boot: 0.329
semantic: 0.313
PID: 0.302
KVM: 0.059
cputlb: uninitialized local variable in tlb_set_page_with_attrs cause SIGSEGV when a CPU access an unmapped IOMMU page
Description of problem:
When a TCG cpu accesses an unmapped page within an IOMMU region that causes a translation fault, QEMU SIGSEGVs in `io_readx`.
The reason was that in `address_space_translate_for_iotlb`, `xlat` is not set on a permission fault.
As a result, `xlat` in `tlb_set_page_with_attr` is uninitialized. This in turn causes various mis-calculation and eventually crashes in `io_readx`.
|