Skip to content

Commit d050fb3

Browse files
committed
vmmplatsupport, vpci: Fix unaligned writes
Data of unaligned configuration space writes were masked out because of incorrect mask. Signed-off-by: Markku Ahvenjärvi <markkux@ssrc.tii.ae>
1 parent 4662171 commit d050fb3

File tree

1 file changed

+2
-1
lines changed
  • libsel4vmmplatsupport/src/arch/arm/devices

1 file changed

+2
-1
lines changed

libsel4vmmplatsupport/src/arch/arm/devices/vpci.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ static void pci_cfg_write_fault(vm_vcpu_t *vcpu, uint8_t offset, size_t len, vmm
9191
uint32_t value;
9292
int err;
9393

94-
mask = get_vcpu_fault_data_mask(vcpu);
94+
seL4_Word s = (get_vcpu_fault_address(vcpu) & 0x3) * 8;
95+
mask = get_vcpu_fault_data_mask(vcpu) >> s;
9596
value = get_vcpu_fault_data(vcpu) & mask;
9697

9798
err = dev->iowrite((void *)dev->cookie, offset, len, value);

0 commit comments

Comments
 (0)