mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
virtio-balloon: use virtio wrappers to access page frame numbers
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> [ pass VirtIODevice * to memory accessors, Greg Kurz <gkurz@linux.vnet.ibm.com> ] Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Reviewed-by: Alexander Graf <agraf@suse.de> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
1399c60d70
commit
8609d2a87a
1 changed files with 5 additions and 3 deletions
|
@ -31,6 +31,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "hw/virtio/virtio-bus.h"
|
#include "hw/virtio/virtio-bus.h"
|
||||||
|
#include "hw/virtio/virtio-access.h"
|
||||||
|
|
||||||
static void balloon_page(void *addr, int deflate)
|
static void balloon_page(void *addr, int deflate)
|
||||||
{
|
{
|
||||||
|
@ -206,8 +207,9 @@ static void virtio_balloon_handle_output(VirtIODevice *vdev, VirtQueue *vq)
|
||||||
while (iov_to_buf(elem.out_sg, elem.out_num, offset, &pfn, 4) == 4) {
|
while (iov_to_buf(elem.out_sg, elem.out_num, offset, &pfn, 4) == 4) {
|
||||||
ram_addr_t pa;
|
ram_addr_t pa;
|
||||||
ram_addr_t addr;
|
ram_addr_t addr;
|
||||||
|
int p = virtio_ldl_p(vdev, &pfn);
|
||||||
|
|
||||||
pa = (ram_addr_t)ldl_p(&pfn) << VIRTIO_BALLOON_PFN_SHIFT;
|
pa = (ram_addr_t) p << VIRTIO_BALLOON_PFN_SHIFT;
|
||||||
offset += 4;
|
offset += 4;
|
||||||
|
|
||||||
/* FIXME: remove get_system_memory(), but how? */
|
/* FIXME: remove get_system_memory(), but how? */
|
||||||
|
@ -248,8 +250,8 @@ static void virtio_balloon_receive_stats(VirtIODevice *vdev, VirtQueue *vq)
|
||||||
|
|
||||||
while (iov_to_buf(elem->out_sg, elem->out_num, offset, &stat, sizeof(stat))
|
while (iov_to_buf(elem->out_sg, elem->out_num, offset, &stat, sizeof(stat))
|
||||||
== sizeof(stat)) {
|
== sizeof(stat)) {
|
||||||
uint16_t tag = tswap16(stat.tag);
|
uint16_t tag = virtio_tswap16(vdev, stat.tag);
|
||||||
uint64_t val = tswap64(stat.val);
|
uint64_t val = virtio_tswap64(vdev, stat.val);
|
||||||
|
|
||||||
offset += sizeof(stat);
|
offset += sizeof(stat);
|
||||||
if (tag < VIRTIO_BALLOON_S_NR)
|
if (tag < VIRTIO_BALLOON_S_NR)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue