Public bug reported:

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.

** Affects: linux (Ubuntu)
     Importance: Undecided
     Assignee: Skipper Bug Screeners (skipper-screen-team)
         Status: New


** Tags: architecture-s39064 bugnameltc-195009 severity-high 
targetmilestone-inin---

** Tags added: architecture-s39064 bugnameltc-195009 severity-high
targetmilestone-inin---

** Changed in: ubuntu
     Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)

** Package changed: ubuntu => linux (Ubuntu)

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1950144

Title:
  [UBUNTU 20.04] kernel:  unable to read partitions on virtio-block dasd
  (kvm)

Status in linux package in Ubuntu:
  New

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1950144/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to