mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
virtio_balloon: fix up endian-ness for free cmd id
commit168c358af2upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
fa3c45b30f
commit
82742151b6
@@ -578,10 +578,14 @@ static int init_vqs(struct virtio_balloon *vb)
|
|||||||
static u32 virtio_balloon_cmd_id_received(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,
|
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,
|
virtio_cread(vb->vdev, struct virtio_balloon_config,
|
||||||
free_page_hint_cmd_id,
|
free_page_hint_cmd_id,
|
||||||
&vb->cmd_id_received_cache);
|
&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;
|
return vb->cmd_id_received_cache;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user