Description: kernel: unable to read partitions on virtio-block dasd (kvm)
Symptom: unable to read partitions on virtio-block dasd (kvm)
Problem: verify is called before virtio_finalize_features() , so a transitional s390 virtio device still serves native endian
(i.e. big endian) config space, while the driver knows that it
is going to accept VERSION_1, so when reading the config space,
it assumes it got little endian, and byteswaps.
Solution: For QEMU, we can work around the issue by writing out the feature bits with VIRTIO_F_VERSION_1 bit set. We (ab)use the finalize_features config op for this. This isn't enough to address all vhost devices since these do not get the features
until FEATURES_OK, however it looks like the affected devices actually never handled the endianness for legacy mode correctly,
so at least that's not a regression.
Description: kernel: unable to read partitions on virtio-block dasd (kvm) finalize_ features( ) , so a
transitional s390 virtio device still serves native endian
feature bits with VIRTIO_F_VERSION_1 bit set. We (ab)use the
finalize_ features config op for this. This isn't enough to
address all vhost devices since these do not get the features
actually never handled the endianness for legacy mode correctly,
Symptom: unable to read partitions on virtio-block dasd (kvm)
Problem: verify is called before virtio_
(i.e. big endian) config space, while the driver knows that it
is going to accept VERSION_1, so when reading the config space,
it assumes it got little endian, and byteswaps.
Solution: For QEMU, we can work around the issue by writing out the
until FEATURES_OK, however it looks like the affected devices
so at least that's not a regression.