mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 14:54:49 +08:00
virtio_balloon: fix up endian-ness for free cmd id
free cmd id is read using virtio endian, spec says all fields
in balloon are LE. Fix it up.
Fixes: 86a559787e
("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
Cc: stable@vger.kernel.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Wei Wang <wei.w.wang@intel.com>
Acked-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
parent
ca72cc3483
commit
168c358af2
@ -578,10 +578,14 @@ static int init_vqs(struct virtio_balloon *vb)
|
||||
static u32 virtio_balloon_cmd_id_received(struct virtio_balloon *vb)
|
||||
{
|
||||
if (test_and_clear_bit(VIRTIO_BALLOON_CONFIG_READ_CMD_ID,
|
||||
&vb->config_read_bitmap))
|
||||
&vb->config_read_bitmap)) {
|
||||
virtio_cread(vb->vdev, struct virtio_balloon_config,
|
||||
free_page_hint_cmd_id,
|
||||
&vb->cmd_id_received_cache);
|
||||
/* Legacy balloon config space is LE, unlike all other devices. */
|
||||
if (!virtio_has_feature(vb->vdev, VIRTIO_F_VERSION_1))
|
||||
vb->cmd_id_received_cache = le32_to_cpu((__force __le32)vb->cmd_id_received_cache);
|
||||
}
|
||||
|
||||
return vb->cmd_id_received_cache;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user