summaryrefslogtreecommitdiffstats
path: root/drivers/misc/mic
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2020-04-06 14:42:55 +0200
committerMichael S. Tsirkin <mst@redhat.com>2020-06-02 08:45:13 +0200
commita865e420b9561235851c3f5d483c82ef389d29bd (patch)
tree9c011e62fb646049f2b37002725f98b4654d0c08 /drivers/misc/mic
parentvirtio-mmio: Delete an error message in vm_find_vqs() (diff)
downloadlinux-a865e420b9561235851c3f5d483c82ef389d29bd.tar.xz
linux-a865e420b9561235851c3f5d483c82ef389d29bd.zip
virtio: force spec specified alignment on types
The ring element addresses are passed between components with different alignments assumptions. Thus, if guest/userspace selects a pointer and host then gets and dereferences it, we might need to decrease the compiler-selected alignment to prevent compiler on the host from assuming pointer is aligned. This actually triggers on ARM with -mabi=apcs-gnu - which is a deprecated configuration, but it seems safer to handle this generally. Note that userspace that allocates the memory is actually OK and does not need to be fixed, but userspace that gets it from guest or another process does need to be fixed. The later doesn't generally talk to the kernel so while it might be buggy it's not talking to the kernel in the buggy way - it's just using the header in the buggy way - so fixing header and asking userspace to recompile is the best we can do. I verified that the produced kernel binary on x86 is exactly identical before and after the change. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'drivers/misc/mic')
0 files changed, 0 insertions, 0 deletions