Re: [PATCH v2 5/7] hw/hyperv/syndbg: common compilation unit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/7/25 11:10, Pierrick Bouvier wrote:
Replace TARGET_PAGE.* by runtime calls

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@xxxxxxxxxx>
---
  hw/hyperv/syndbg.c    | 10 +++++++---
  hw/hyperv/meson.build |  2 +-
  2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/hw/hyperv/syndbg.c b/hw/hyperv/syndbg.c
index d3e39170772..ee91266c070 100644
--- a/hw/hyperv/syndbg.c
+++ b/hw/hyperv/syndbg.c
@@ -14,7 +14,7 @@
  #include "migration/vmstate.h"
  #include "hw/qdev-properties.h"
  #include "hw/loader.h"
-#include "cpu.h"
+#include "exec/target_page.h"
  #include "hw/hyperv/hyperv.h"
  #include "hw/hyperv/vmbus-bridge.h"
  #include "hw/hyperv/hyperv-proto.h"
@@ -183,12 +183,14 @@ static bool create_udp_pkt(HvSynDbg *syndbg, void *pkt, uint32_t pkt_len,
      return true;
  }
+#define MSG_BUFSZ 4096
+
  static uint16_t handle_recv_msg(HvSynDbg *syndbg, uint64_t outgpa,
                                  uint32_t count, bool is_raw, uint32_t options,
                                  uint64_t timeout, uint32_t *retrieved_count)
  {
      uint16_t ret;
-    uint8_t data_buf[TARGET_PAGE_SIZE - UDP_PKT_HEADER_SIZE];
+    uint8_t data_buf[MSG_BUFSZ];
      hwaddr out_len;
      void *out_data;
      ssize_t recv_byte_count;
@@ -201,7 +203,7 @@ static uint16_t handle_recv_msg(HvSynDbg *syndbg, uint64_t outgpa,
          recv_byte_count = 0;
      } else {
          recv_byte_count = recv(syndbg->socket, data_buf,
-                               MIN(sizeof(data_buf), count), MSG_WAITALL);
+                               MIN(MSG_BUFSZ, count), MSG_WAITALL);
          if (recv_byte_count == -1) {
              return HV_STATUS_INVALID_PARAMETER;
          }
@@ -374,6 +376,8 @@ static const Property hv_syndbg_properties[] = {
static void hv_syndbg_class_init(ObjectClass *klass, void *data)
  {
+    g_assert(MSG_BUFSZ > qemu_target_page_size());
+

Should be >= here.

      DeviceClass *dc = DEVICE_CLASS(klass);
device_class_set_props(dc, hv_syndbg_properties);
diff --git a/hw/hyperv/meson.build b/hw/hyperv/meson.build
index c855fdcf04c..a9f2045a9af 100644
--- a/hw/hyperv/meson.build
+++ b/hw/hyperv/meson.build
@@ -1,6 +1,6 @@
  specific_ss.add(when: 'CONFIG_HYPERV', if_true: files('hyperv.c'))
  specific_ss.add(when: 'CONFIG_HYPERV_TESTDEV', if_true: files('hyperv_testdev.c'))
  system_ss.add(when: 'CONFIG_VMBUS', if_true: files('vmbus.c'))
-specific_ss.add(when: 'CONFIG_SYNDBG', if_true: files('syndbg.c'))
+system_ss.add(when: 'CONFIG_SYNDBG', if_true: files('syndbg.c'))
  specific_ss.add(when: 'CONFIG_HV_BALLOON', if_true: files('hv-balloon.c', 'hv-balloon-page_range_tree.c', 'hv-balloon-our_range_memslots.c'))
  system_ss.add(when: 'CONFIG_HV_BALLOON', if_false: files('hv-balloon-stub.c'))





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux