All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/6] Vga 20190628 patches
@ 2019-06-28 10:39 Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/ Gerd Hoffmann
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

The following changes since commit 474f3938d79ab36b9231c9ad3b5a9314c2aeacde:

  Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-jun-21-2019' into staging (2019-06-21 15:40:50 +0100)

are available in the Git repository at:

  git://git.kraxel.org/qemu tags/vga-20190628-pull-request

for you to fetch changes up to 263807f4e85e94f2d4e988d61d2fc0319b1dd36b:

  ati-vga: switch to vgabios-ati.bin (2019-06-28 10:49:36 +0200)

----------------------------------------------------------------
vga: ati fixes, add ati vgabios.

----------------------------------------------------------------

BALATON Zoltan (3):
  i2c: Move bitbang_i2c.h to include/hw/i2c/
  ati-vga: Implement DDC and EDID info from monitor
  ati-vga: Fixes to offset and pitch registers

Gerd Hoffmann (3):
  seabios: add config for ati vgabios
  seabios: add ati vgabios binary
  ati-vga: switch to vgabios-ati.bin

 hw/display/ati_int.h                 |   6 ++
 hw/display/ati_regs.h                |   6 +-
 {hw => include/hw}/i2c/bitbang_i2c.h |   2 +
 include/hw/i2c/i2c.h                 |   2 -
 include/hw/i2c/ppc4xx_i2c.h          |   2 +-
 hw/display/ati.c                     |  99 +++++++++++++++++++++++----
 hw/display/ati_2d.c                  |  26 ++++---
 hw/display/ati_dbg.c                 |   2 +
 hw/i2c/bitbang_i2c.c                 |   2 +-
 hw/i2c/ppc4xx_i2c.c                  |   1 -
 hw/i2c/versatile_i2c.c               |   2 +-
 hw/display/Kconfig                   |   2 +
 pc-bios/vgabios-ati.bin              | Bin 0 -> 38912 bytes
 roms/config.vga-ati                  |   4 ++
 14 files changed, 127 insertions(+), 29 deletions(-)
 rename {hw => include/hw}/i2c/bitbang_i2c.h (80%)
 create mode 100644 pc-bios/vgabios-ati.bin
 create mode 100644 roms/config.vga-ati

-- 
2.18.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-06-29  5:02   ` David Gibson
  2019-06-28 10:39 ` [Qemu-devel] [PULL 2/6] ati-vga: Implement DDC and EDID info from monitor Gerd Hoffmann
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

The bitbang i2c implementation is also useful for other device models
such as DDC in display controllers. Move the header to include/hw/i2c/
to allow it to be used from other device models and adjust users of
this include. This also reverts commit 2b4c1125ac which is no longer
needed.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
Message-id: 5d1fe4db846ab9be4b77ddb0d43cc74cd200a003.1561028123.git.balaton@eik.bme.hu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 {hw => include/hw}/i2c/bitbang_i2c.h | 2 ++
 include/hw/i2c/i2c.h                 | 2 --
 include/hw/i2c/ppc4xx_i2c.h          | 2 +-
 hw/i2c/bitbang_i2c.c                 | 2 +-
 hw/i2c/ppc4xx_i2c.c                  | 1 -
 hw/i2c/versatile_i2c.c               | 2 +-
 6 files changed, 5 insertions(+), 6 deletions(-)
 rename {hw => include/hw}/i2c/bitbang_i2c.h (80%)

diff --git a/hw/i2c/bitbang_i2c.h b/include/hw/i2c/bitbang_i2c.h
similarity index 80%
rename from hw/i2c/bitbang_i2c.h
rename to include/hw/i2c/bitbang_i2c.h
index 9443021710d7..3a7126d5dee8 100644
--- a/hw/i2c/bitbang_i2c.h
+++ b/include/hw/i2c/bitbang_i2c.h
@@ -3,6 +3,8 @@
 
 #include "hw/i2c/i2c.h"
 
+typedef struct bitbang_i2c_interface bitbang_i2c_interface;
+
 #define BITBANG_I2C_SDA 0
 #define BITBANG_I2C_SCL 1
 
diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h
index 8e236f7bb428..75c5bd638bb9 100644
--- a/include/hw/i2c/i2c.h
+++ b/include/hw/i2c/i2c.h
@@ -81,8 +81,6 @@ uint8_t i2c_recv(I2CBus *bus);
 
 DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr);
 
-typedef struct bitbang_i2c_interface bitbang_i2c_interface;
-
 /* lm832x.c */
 void lm832x_key_event(DeviceState *dev, int key, int state);
 
diff --git a/include/hw/i2c/ppc4xx_i2c.h b/include/hw/i2c/ppc4xx_i2c.h
index aa2a2bf9dec2..8437bf070b8b 100644
--- a/include/hw/i2c/ppc4xx_i2c.h
+++ b/include/hw/i2c/ppc4xx_i2c.h
@@ -28,7 +28,7 @@
 #define PPC4XX_I2C_H
 
 #include "hw/sysbus.h"
-#include "hw/i2c/i2c.h"
+#include "hw/i2c/bitbang_i2c.h"
 
 #define TYPE_PPC4xx_I2C "ppc4xx-i2c"
 #define PPC4xx_I2C(obj) OBJECT_CHECK(PPC4xxI2CState, (obj), TYPE_PPC4xx_I2C)
diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
index 5dfc72d9d7b7..3cb0509b0200 100644
--- a/hw/i2c/bitbang_i2c.c
+++ b/hw/i2c/bitbang_i2c.c
@@ -12,7 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/hw.h"
-#include "bitbang_i2c.h"
+#include "hw/i2c/bitbang_i2c.h"
 #include "hw/sysbus.h"
 #include "qemu/module.h"
 
diff --git a/hw/i2c/ppc4xx_i2c.c b/hw/i2c/ppc4xx_i2c.c
index d606d3dbeb81..5fb4f86c38f1 100644
--- a/hw/i2c/ppc4xx_i2c.c
+++ b/hw/i2c/ppc4xx_i2c.c
@@ -30,7 +30,6 @@
 #include "cpu.h"
 #include "hw/hw.h"
 #include "hw/i2c/ppc4xx_i2c.h"
-#include "bitbang_i2c.h"
 
 #define PPC4xx_I2C_MEM_SIZE 18
 
diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c
index e07be9890c8a..24b6e36b6d52 100644
--- a/hw/i2c/versatile_i2c.c
+++ b/hw/i2c/versatile_i2c.c
@@ -23,7 +23,7 @@
 
 #include "qemu/osdep.h"
 #include "hw/sysbus.h"
-#include "bitbang_i2c.h"
+#include "hw/i2c/bitbang_i2c.h"
 #include "qemu/log.h"
 #include "qemu/module.h"
 
-- 
2.18.1



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 2/6] ati-vga: Implement DDC and EDID info from monitor
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/ Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 3/6] ati-vga: Fixes to offset and pitch registers Gerd Hoffmann
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

This adds DDC support to ati-vga and connects i2c-ddc to it. This
allows at least MacOS with an ATI ndrv, Linux radeonfb and MorphOS to
get monitor EDID info (although MorphOS splash screen is not displayed
and radeonfb needs additional tables from vgabios-rv100). Xorg needs
additional support from VESA vgabios, it's missing INT10 0x4F15
function (see
https://gitlab.freedesktop.org/xorg/xserver/blob/master/hw/xfree86/vbe/vbe.c)
without which no DDC is available that also prevents loading the
accelerated X driver.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 046ddebb7ec8db48c4e877ee444ec1c41e385a74.1561028123.git.balaton@eik.bme.hu

ati-vga: Clarify comment

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190620195213.C54127461AE@zero.eik.bme.hu

ati-vga: Add DDC reg names for debug

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190621181459.2F8207462AA@zero.eik.bme.hu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/display/ati_int.h  |  5 ++++
 hw/display/ati_regs.h |  2 ++
 hw/display/ati.c      | 65 +++++++++++++++++++++++++++++++++++++++++--
 hw/display/ati_dbg.c  |  2 ++
 hw/display/Kconfig    |  2 ++
 5 files changed, 74 insertions(+), 2 deletions(-)

diff --git a/hw/display/ati_int.h b/hw/display/ati_int.h
index 2f426064cf7d..51465f563066 100644
--- a/hw/display/ati_int.h
+++ b/hw/display/ati_int.h
@@ -10,6 +10,7 @@
 #define ATI_INT_H
 
 #include "hw/pci/pci.h"
+#include "hw/i2c/bitbang_i2c.h"
 #include "vga_int.h"
 
 /*#define DEBUG_ATI*/
@@ -35,6 +36,9 @@ typedef struct ATIVGARegs {
     uint32_t crtc_gen_cntl;
     uint32_t crtc_ext_cntl;
     uint32_t dac_cntl;
+    uint32_t gpio_vga_ddc;
+    uint32_t gpio_dvi_ddc;
+    uint32_t gpio_monid;
     uint32_t crtc_h_total_disp;
     uint32_t crtc_h_sync_strt_wid;
     uint32_t crtc_v_total_disp;
@@ -83,6 +87,7 @@ typedef struct ATIVGAState {
     uint16_t cursor_size;
     uint32_t cursor_offset;
     QEMUCursor *cursor;
+    bitbang_i2c_interface *bbi2c;
     MemoryRegion io;
     MemoryRegion mm;
     ATIVGARegs regs;
diff --git a/hw/display/ati_regs.h b/hw/display/ati_regs.h
index 923bfd33ceb7..1ec3498b731c 100644
--- a/hw/display/ati_regs.h
+++ b/hw/display/ati_regs.h
@@ -37,6 +37,8 @@
 #define CRTC_GEN_CNTL                           0x0050
 #define CRTC_EXT_CNTL                           0x0054
 #define DAC_CNTL                                0x0058
+#define GPIO_VGA_DDC                            0x0060
+#define GPIO_DVI_DDC                            0x0064
 #define GPIO_MONID                              0x0068
 #define I2C_CNTL_1                              0x0094
 #define PALETTE_INDEX                           0x00b0
diff --git a/hw/display/ati.c b/hw/display/ati.c
index 76595d951181..25d5077ba077 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -26,6 +26,7 @@
 #include "qapi/error.h"
 #include "hw/hw.h"
 #include "ui/console.h"
+#include "hw/display/i2c-ddc.h"
 #include "trace.h"
 
 #define ATI_DEBUG_HW_CURSOR 0
@@ -215,6 +216,24 @@ static void ati_cursor_draw_line(VGACommonState *vga, uint8_t *d, int scr_y)
     }
 }
 
+static uint64_t ati_i2c(bitbang_i2c_interface *i2c, uint64_t data, int base)
+{
+    bool c = (data & BIT(base + 17) ? !!(data & BIT(base + 1)) : 1);
+    bool d = (data & BIT(base + 16) ? !!(data & BIT(base)) : 1);
+
+    bitbang_i2c_set(i2c, BITBANG_I2C_SCL, c);
+    d = bitbang_i2c_set(i2c, BITBANG_I2C_SDA, d);
+
+    data &= ~0xf00ULL;
+    if (c) {
+        data |= BIT(base + 9);
+    }
+    if (d) {
+        data |= BIT(base + 8);
+    }
+    return data;
+}
+
 static inline uint64_t ati_reg_read_offs(uint32_t reg, int offs,
                                          unsigned int size)
 {
@@ -266,7 +285,16 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size)
     case DAC_CNTL:
         val = s->regs.dac_cntl;
         break;
-/*    case GPIO_MONID: FIXME hook up DDC I2C here */
+    case GPIO_VGA_DDC:
+        val = s->regs.gpio_vga_ddc;
+        break;
+    case GPIO_DVI_DDC:
+        val = s->regs.gpio_dvi_ddc;
+        break;
+    case GPIO_MONID ... GPIO_MONID + 3:
+        val = ati_reg_read_offs(s->regs.gpio_monid,
+                                addr - GPIO_MONID, size);
+        break;
     case PALETTE_INDEX:
         /* FIXME unaligned access */
         val = vga_ioport_read(&s->vga, VGA_PEL_IR) << 16;
@@ -497,7 +525,33 @@ static void ati_mm_write(void *opaque, hwaddr addr,
         s->regs.dac_cntl = data & 0xffffe3ff;
         s->vga.dac_8bit = !!(data & DAC_8BIT_EN);
         break;
-/*    case GPIO_MONID: FIXME hook up DDC I2C here */
+    case GPIO_VGA_DDC:
+        if (s->dev_id != PCI_DEVICE_ID_ATI_RAGE128_PF) {
+            /* FIXME: Maybe add a property to select VGA or DVI port? */
+        }
+        break;
+    case GPIO_DVI_DDC:
+        if (s->dev_id != PCI_DEVICE_ID_ATI_RAGE128_PF) {
+            s->regs.gpio_dvi_ddc = ati_i2c(s->bbi2c, data, 0);
+        }
+        break;
+    case GPIO_MONID ... GPIO_MONID + 3:
+        /* FIXME What does Radeon have here? */
+        if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
+            ati_reg_write_offs(&s->regs.gpio_monid,
+                               addr - GPIO_MONID, data, size);
+            /*
+             * Rage128p accesses DDC used to get EDID via these bits.
+             * Only touch i2c when write overlaps 3rd byte because some
+             * drivers access this reg via multiple partial writes and
+             * without this spurious bits would be sent.
+             */
+            if ((s->regs.gpio_monid & BIT(25)) &&
+                addr <= GPIO_MONID + 2 && addr + size > GPIO_MONID + 2) {
+                s->regs.gpio_monid = ati_i2c(s->bbi2c, s->regs.gpio_monid, 1);
+            }
+        }
+        break;
     case PALETTE_INDEX ... PALETTE_INDEX + 3:
         if (size == 4) {
             vga_ioport_write(&s->vga, VGA_PEL_IR, (data >> 16) & 0xff);
@@ -788,6 +842,12 @@ static void ati_vga_realize(PCIDevice *dev, Error **errp)
         vga->cursor_draw_line = ati_cursor_draw_line;
     }
 
+    /* ddc, edid */
+    I2CBus *i2cbus = i2c_init_bus(DEVICE(s), "ati-vga.ddc");
+    s->bbi2c = bitbang_i2c_init(i2cbus);
+    I2CSlave *i2cddc = I2C_SLAVE(qdev_create(BUS(i2cbus), TYPE_I2CDDC));
+    i2c_set_slave_address(i2cddc, 0x50);
+
     /* mmio register space */
     memory_region_init_io(&s->mm, OBJECT(s), &ati_mm_ops, s,
                           "ati.mmregs", 0x4000);
@@ -813,6 +873,7 @@ static void ati_vga_exit(PCIDevice *dev)
     ATIVGAState *s = ATI_VGA(dev);
 
     graphic_console_close(s->vga.con);
+    g_free(s->bbi2c);
 }
 
 static Property ati_vga_properties[] = {
diff --git a/hw/display/ati_dbg.c b/hw/display/ati_dbg.c
index b045f81d0602..88b3a11315d8 100644
--- a/hw/display/ati_dbg.c
+++ b/hw/display/ati_dbg.c
@@ -19,6 +19,8 @@ static struct ati_regdesc ati_reg_names[] = {
     {"CRTC_GEN_CNTL", 0x0050},
     {"CRTC_EXT_CNTL", 0x0054},
     {"DAC_CNTL", 0x0058},
+    {"GPIO_VGA_DDC", 0x0060},
+    {"GPIO_DVI_DDC", 0x0064},
     {"GPIO_MONID", 0x0068},
     {"I2C_CNTL_1", 0x0094},
     {"PALETTE_INDEX", 0x00b0},
diff --git a/hw/display/Kconfig b/hw/display/Kconfig
index 910dccb2f7a5..cbdf7b1a675b 100644
--- a/hw/display/Kconfig
+++ b/hw/display/Kconfig
@@ -130,3 +130,5 @@ config ATI_VGA
     default y if PCI_DEVICES
     depends on PCI
     select VGA
+    select BITBANG_I2C
+    select DDC
-- 
2.18.1



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 3/6] ati-vga: Fixes to offset and pitch registers
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/ Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 2/6] ati-vga: Implement DDC and EDID info from monitor Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 4/6] seabios: add config for ati vgabios Gerd Hoffmann
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

Fix bit masks of registers for offset and pitch and also handle
default values for both R128P and RV100. This improves picture a bit
but does not resolve all problems yet so there might be some more bugs
somewhere.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190624100005.7A1CA746395@zero.eik.bme.hu
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/display/ati_int.h  |  1 +
 hw/display/ati_regs.h |  4 ++--
 hw/display/ati.c      | 32 ++++++++++++++++++++++----------
 hw/display/ati_2d.c   | 26 ++++++++++++++++++--------
 4 files changed, 43 insertions(+), 20 deletions(-)

diff --git a/hw/display/ati_int.h b/hw/display/ati_int.h
index 51465f563066..9b67d0022ad9 100644
--- a/hw/display/ati_int.h
+++ b/hw/display/ati_int.h
@@ -74,6 +74,7 @@ typedef struct ATIVGARegs {
     uint32_t dp_write_mask;
     uint32_t default_offset;
     uint32_t default_pitch;
+    uint32_t default_tile;
     uint32_t default_sc_bottom_right;
 } ATIVGARegs;
 
diff --git a/hw/display/ati_regs.h b/hw/display/ati_regs.h
index 1ec3498b731c..d7155c93d53b 100644
--- a/hw/display/ati_regs.h
+++ b/hw/display/ati_regs.h
@@ -370,8 +370,8 @@
 #define BRUSH_SOLIDCOLOR                        0x00000d00
 
 /* DP_GUI_MASTER_CNTL bit constants */
-#define GMC_SRC_PITCH_OFFSET_DEFAULT            0x00000000
-#define GMC_DST_PITCH_OFFSET_DEFAULT            0x00000000
+#define GMC_SRC_PITCH_OFFSET_CNTL               0x00000001
+#define GMC_DST_PITCH_OFFSET_CNTL               0x00000002
 #define GMC_SRC_CLIP_DEFAULT                    0x00000000
 #define GMC_DST_CLIP_DEFAULT                    0x00000000
 #define GMC_BRUSH_SOLIDCOLOR                    0x000000d0
diff --git a/hw/display/ati.c b/hw/display/ati.c
index 25d5077ba077..e1bde5e0b1e3 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -419,9 +419,15 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size)
         break;
     case DEFAULT_OFFSET:
         val = s->regs.default_offset;
+        if (s->dev_id != PCI_DEVICE_ID_ATI_RAGE128_PF) {
+            val >>= 10;
+            val |= s->regs.default_pitch << 16;
+            val |= s->regs.default_tile << 30;
+        }
         break;
     case DEFAULT_PITCH:
         val = s->regs.default_pitch;
+        val |= s->regs.default_tile << 16;
         break;
     case DEFAULT_SC_BOTTOM_RIGHT:
         val = s->regs.default_sc_bottom_right;
@@ -682,22 +688,22 @@ static void ati_mm_write(void *opaque, hwaddr addr,
         break;
     case SRC_PITCH_OFFSET:
         if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
-            s->regs.src_offset = (data & 0x1fffff) << 5;
-            s->regs.src_pitch = (data >> 21) & 0x3ff;
+            s->regs.src_offset = (data & 0x1fffff) << 4;
+            s->regs.src_pitch = (data & 0x7fe00000) >> 21;
             s->regs.src_tile = data >> 31;
         } else {
-            s->regs.src_offset = (data & 0x3fffff) << 11;
+            s->regs.src_offset = (data & 0x3fffff) << 10;
             s->regs.src_pitch = (data & 0x3fc00000) >> 16;
             s->regs.src_tile = (data >> 30) & 1;
         }
         break;
     case DST_PITCH_OFFSET:
         if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
-            s->regs.dst_offset = (data & 0x1fffff) << 5;
-            s->regs.dst_pitch = (data >> 21) & 0x3ff;
+            s->regs.dst_offset = (data & 0x1fffff) << 4;
+            s->regs.dst_pitch = (data & 0x7fe00000) >> 21;
             s->regs.dst_tile = data >> 31;
         } else {
-            s->regs.dst_offset = (data & 0x3fffff) << 11;
+            s->regs.dst_offset = (data & 0x3fffff) << 10;
             s->regs.dst_pitch = (data & 0x3fc00000) >> 16;
             s->regs.dst_tile = data >> 30;
         }
@@ -777,13 +783,19 @@ static void ati_mm_write(void *opaque, hwaddr addr,
         s->regs.dp_write_mask = data;
         break;
     case DEFAULT_OFFSET:
-        data &= (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF ?
-                 0x03fffc00 : 0xfffffc00);
-        s->regs.default_offset = data;
+        if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
+            s->regs.default_offset = data & 0xfffffff0;
+        } else {
+            /* Radeon has DEFAULT_PITCH_OFFSET here like DST_PITCH_OFFSET */
+            s->regs.default_offset = (data & 0x3fffff) << 10;
+            s->regs.default_pitch = (data & 0x3fc00000) >> 16;
+            s->regs.default_tile = data >> 30;
+        }
         break;
     case DEFAULT_PITCH:
         if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
-            s->regs.default_pitch = data & 0x103ff;
+            s->regs.default_pitch = data & 0x3fff;
+            s->regs.default_tile = (data >> 16) & 1;
         }
         break;
     case DEFAULT_SC_BOTTOM_RIGHT:
diff --git a/hw/display/ati_2d.c b/hw/display/ati_2d.c
index d83c29c6d933..2dbf53f03936 100644
--- a/hw/display/ati_2d.c
+++ b/hw/display/ati_2d.c
@@ -51,8 +51,9 @@ void ati_2d_blt(ATIVGAState *s)
             s->vga.vbe_start_addr, surface_data(ds), surface_stride(ds),
             surface_bits_per_pixel(ds),
             (s->regs.dp_mix & GMC_ROP3_MASK) >> 16);
-    DPRINTF("%d %d, %d %d, (%d,%d) -> (%d,%d) %dx%d\n", s->regs.src_offset,
-            s->regs.dst_offset, s->regs.src_pitch, s->regs.dst_pitch,
+    DPRINTF("%d %d %d, %d %d %d, (%d,%d) -> (%d,%d) %dx%d\n",
+            s->regs.src_offset, s->regs.dst_offset, s->regs.default_offset,
+            s->regs.src_pitch, s->regs.dst_pitch, s->regs.default_pitch,
             s->regs.src_x, s->regs.src_y, s->regs.dst_x, s->regs.dst_y,
             s->regs.dst_width, s->regs.dst_height);
     switch (s->regs.dp_mix & GMC_ROP3_MASK) {
@@ -60,10 +61,16 @@ void ati_2d_blt(ATIVGAState *s)
     {
         uint8_t *src_bits, *dst_bits, *end;
         int src_stride, dst_stride, bpp = ati_bpp_from_datatype(s);
-        src_bits = s->vga.vram_ptr + s->regs.src_offset;
-        dst_bits = s->vga.vram_ptr + s->regs.dst_offset;
-        src_stride = s->regs.src_pitch;
-        dst_stride = s->regs.dst_pitch;
+        src_bits = s->vga.vram_ptr +
+                   (s->regs.dp_gui_master_cntl & GMC_SRC_PITCH_OFFSET_CNTL ?
+                    s->regs.src_offset : s->regs.default_offset);
+        dst_bits = s->vga.vram_ptr +
+                   (s->regs.dp_gui_master_cntl & GMC_DST_PITCH_OFFSET_CNTL ?
+                    s->regs.dst_offset : s->regs.default_offset);
+        src_stride = (s->regs.dp_gui_master_cntl & GMC_SRC_PITCH_OFFSET_CNTL ?
+                      s->regs.src_pitch : s->regs.default_pitch);
+        dst_stride = (s->regs.dp_gui_master_cntl & GMC_DST_PITCH_OFFSET_CNTL ?
+                      s->regs.dst_pitch : s->regs.default_pitch);
 
         if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
             src_bits += s->regs.crtc_offset & 0x07ffffff;
@@ -111,8 +118,11 @@ void ati_2d_blt(ATIVGAState *s)
         uint8_t *dst_bits, *end;
         int dst_stride, bpp = ati_bpp_from_datatype(s);
         uint32_t filler = 0;
-        dst_bits = s->vga.vram_ptr + s->regs.dst_offset;
-        dst_stride = s->regs.dst_pitch;
+        dst_bits = s->vga.vram_ptr +
+                   (s->regs.dp_gui_master_cntl & GMC_DST_PITCH_OFFSET_CNTL ?
+                    s->regs.dst_offset : s->regs.default_offset);
+        dst_stride = (s->regs.dp_gui_master_cntl & GMC_DST_PITCH_OFFSET_CNTL ?
+                      s->regs.dst_pitch : s->regs.default_pitch);
 
         if (s->dev_id == PCI_DEVICE_ID_ATI_RAGE128_PF) {
             dst_bits += s->regs.crtc_offset & 0x07ffffff;
-- 
2.18.1



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 4/6] seabios: add config for ati vgabios
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2019-06-28 10:39 ` [Qemu-devel] [PULL 3/6] ati-vga: Fixes to offset and pitch registers Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 5/6] seabios: add ati vgabios binary Gerd Hoffmann
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190620151104.2678-2-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/config.vga-ati | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 roms/config.vga-ati

diff --git a/roms/config.vga-ati b/roms/config.vga-ati
new file mode 100644
index 000000000000..12506b664442
--- /dev/null
+++ b/roms/config.vga-ati
@@ -0,0 +1,4 @@
+CONFIG_QEMU=y
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_ATI=y
+CONFIG_VGA_PCI=y
-- 
2.18.1



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 5/6] seabios: add ati vgabios binary
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2019-06-28 10:39 ` [Qemu-devel] [PULL 4/6] seabios: add config for ati vgabios Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-06-28 10:39 ` [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin Gerd Hoffmann
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

Built from master (commit 6e56ed129c9782ba050a5fbfbf4ac12335b230f7),
which has ati vgabios support merged (checkout master branch in
roms/seabios submodule, then run "make -C roms seavgabios-ati").

Temporary exception until the next seabios major version is
released (probably 1.13, fall 2019).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190620151104.2678-3-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 pc-bios/vgabios-ati.bin | Bin 0 -> 38912 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 pc-bios/vgabios-ati.bin

diff --git a/pc-bios/vgabios-ati.bin b/pc-bios/vgabios-ati.bin
new file mode 100644
index 0000000000000000000000000000000000000000..79644708ff88014f127aad29b707bfc8e26aee06
GIT binary patch
literal 38912
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
G1OFTT`I+wk

literal 0
HcmV?d00001

-- 
2.18.1



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2019-06-28 10:39 ` [Qemu-devel] [PULL 5/6] seabios: add ati vgabios binary Gerd Hoffmann
@ 2019-06-28 10:39 ` Gerd Hoffmann
  2019-07-02 16:20   ` Bruce Rogers
  2019-06-28 11:27 ` [Qemu-devel] [PULL 0/6] Vga 20190628 patches no-reply
  2019-07-02  9:17 ` Peter Maydell
  7 siblings, 1 reply; 14+ messages in thread
From: Gerd Hoffmann @ 2019-06-28 10:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Corey Minyard, Peter Maydell, qemu-arm, qemu-ppc, Gerd Hoffmann,
	David Gibson

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-id: 20190620151104.2678-4-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/display/ati.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/display/ati.c b/hw/display/ati.c
index e1bde5e0b1e3..0cb117384839 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -910,7 +910,7 @@ static void ati_vga_class_init(ObjectClass *klass, void *data)
     k->class_id = PCI_CLASS_DISPLAY_VGA;
     k->vendor_id = PCI_VENDOR_ID_ATI;
     k->device_id = PCI_DEVICE_ID_ATI_RAGE128_PF;
-    k->romfile = "vgabios-stdvga.bin";
+    k->romfile = "vgabios-ati.bin";
     k->realize = ati_vga_realize;
     k->exit = ati_vga_exit;
 }
-- 
2.18.1



^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 0/6] Vga 20190628 patches
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
                   ` (5 preceding siblings ...)
  2019-06-28 10:39 ` [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin Gerd Hoffmann
@ 2019-06-28 11:27 ` no-reply
  2019-07-02  9:17 ` Peter Maydell
  7 siblings, 0 replies; 14+ messages in thread
From: no-reply @ 2019-06-28 11:27 UTC (permalink / raw)
  To: kraxel
  Cc: cminyard, peter.maydell, qemu-devel, qemu-arm, qemu-ppc, kraxel, david

Patchew URL: https://patchew.org/QEMU/20190628103957.9504-1-kraxel@redhat.com/



Hi,

This series failed the asan build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-fedora V=1 NETWORK=1
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
=== TEST SCRIPT END ===

PASS 1 fdc-test /x86_64/fdc/cmos
PASS 2 fdc-test /x86_64/fdc/no_media_on_start
PASS 3 fdc-test /x86_64/fdc/read_without_media
==7826==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 fdc-test /x86_64/fdc/media_change
PASS 5 fdc-test /x86_64/fdc/sense_interrupt
PASS 6 fdc-test /x86_64/fdc/relative_seek
---
PASS 32 test-opts-visitor /visitor/opts/range/beyond
PASS 33 test-opts-visitor /visitor/opts/dict/unvisited
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-coroutine -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-coroutine" 
==7876==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==7876==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcd59a7000; bottom 0x7fdbb13f8000; size: 0x0021245af000 (142343860224)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 1 test-coroutine /basic/no-dangling-access
---
PASS 11 test-aio /aio/event/wait
PASS 12 test-aio /aio/event/flush
PASS 13 test-aio /aio/event/wait/no-flush-cb
==7892==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 14 test-aio /aio/timer/schedule
PASS 15 test-aio /aio/coroutine/queue-chaining
PASS 16 test-aio /aio-gsource/flush
---
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/ide-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ide-test" 
PASS 28 test-aio /aio-gsource/timer/schedule
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-aio-multithread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-aio-multithread" 
==7904==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-aio-multithread /aio/multi/lifecycle
==7901==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 test-aio-multithread /aio/multi/schedule
PASS 1 ide-test /x86_64/ide/identify
==7927==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 test-aio-multithread /aio/multi/mutex/contended
PASS 2 ide-test /x86_64/ide/flush
==7938==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 ide-test /x86_64/ide/bmdma/simple_rw
==7944==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 ide-test /x86_64/ide/bmdma/trim
PASS 4 test-aio-multithread /aio/multi/mutex/handoff
==7950==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 5 ide-test /x86_64/ide/bmdma/short_prdt
PASS 5 test-aio-multithread /aio/multi/mutex/mcs
==7961==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 ide-test /x86_64/ide/bmdma/one_sector_short_prdt
PASS 6 test-aio-multithread /aio/multi/mutex/pthread
==7972==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-throttle -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-throttle" 
PASS 7 ide-test /x86_64/ide/bmdma/long_prdt
==7980==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-throttle /throttle/leak_bucket
PASS 2 test-throttle /throttle/compute_wait
PASS 3 test-throttle /throttle/init
---
PASS 14 test-throttle /throttle/config/max
PASS 15 test-throttle /throttle/config/iops_size
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-thread-pool -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-thread-pool" 
==7986==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-thread-pool /thread-pool/submit
PASS 2 test-thread-pool /thread-pool/submit-aio
PASS 3 test-thread-pool /thread-pool/submit-co
PASS 4 test-thread-pool /thread-pool/submit-many
==7982==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==7982==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc01d2c000; bottom 0x7f9906ffe000; size: 0x0062fad2e000 (425114918912)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 8 ide-test /x86_64/ide/bmdma/no_busmaster
PASS 5 test-thread-pool /thread-pool/cancel
PASS 9 ide-test /x86_64/ide/flush/nodev
==8063==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 ide-test /x86_64/ide/flush/empty_drive
==8068==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 test-thread-pool /thread-pool/cancel-async
PASS 11 ide-test /x86_64/ide/flush/retry_pci
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-hbitmap -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-hbitmap" 
---
PASS 2 test-hbitmap /hbitmap/size/0
PASS 3 test-hbitmap /hbitmap/size/unaligned
PASS 4 test-hbitmap /hbitmap/iter/empty
==8076==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 5 test-hbitmap /hbitmap/iter/partial
PASS 12 ide-test /x86_64/ide/flush/retry_isa
PASS 6 test-hbitmap /hbitmap/iter/granularity
PASS 7 test-hbitmap /hbitmap/iter/iter_and_reset
PASS 8 test-hbitmap /hbitmap/get/all
PASS 9 test-hbitmap /hbitmap/get/some
==8086==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 test-hbitmap /hbitmap/set/all
PASS 11 test-hbitmap /hbitmap/set/one
PASS 12 test-hbitmap /hbitmap/set/two-elem
---
PASS 15 test-hbitmap /hbitmap/set/overlap
PASS 16 test-hbitmap /hbitmap/reset/empty
PASS 17 test-hbitmap /hbitmap/reset/general
==8092==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 18 test-hbitmap /hbitmap/reset/all
PASS 19 test-hbitmap /hbitmap/truncate/nop
PASS 20 test-hbitmap /hbitmap/truncate/grow/negligible
---
PASS 29 test-hbitmap /hbitmap/truncate/shrink/large
PASS 30 test-hbitmap /hbitmap/meta/zero
PASS 14 ide-test /x86_64/ide/cdrom/pio_large
==8098==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 15 ide-test /x86_64/ide/cdrom/dma
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/ahci-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="ahci-test" 
==8112==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 ahci-test /x86_64/ahci/sanity
PASS 31 test-hbitmap /hbitmap/meta/one
PASS 32 test-hbitmap /hbitmap/meta/byte
PASS 33 test-hbitmap /hbitmap/meta/word
==8118==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 ahci-test /x86_64/ahci/pci_spec
PASS 34 test-hbitmap /hbitmap/meta/sector
PASS 35 test-hbitmap /hbitmap/serialize/align
==8124==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 ahci-test /x86_64/ahci/pci_enable
==8130==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 ahci-test /x86_64/ahci/hba_spec
PASS 36 test-hbitmap /hbitmap/serialize/basic
PASS 37 test-hbitmap /hbitmap/serialize/part
---
PASS 42 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_1
PASS 43 test-hbitmap /hbitmap/next_dirty_area/next_dirty_area_4
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-bdrv-drain -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-drain" 
==8136==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8141==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-bdrv-drain /bdrv-drain/nested
PASS 2 test-bdrv-drain /bdrv-drain/multiparent
PASS 3 test-bdrv-drain /bdrv-drain/set_aio_context
---
PASS 28 test-bdrv-drain /bdrv-drain/blockjob/iothread/drain
PASS 29 test-bdrv-drain /bdrv-drain/blockjob/iothread/drain_subtree
PASS 30 test-bdrv-drain /bdrv-drain/blockjob/iothread/error/drain_all
==8161==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 31 test-bdrv-drain /bdrv-drain/blockjob/iothread/error/drain
PASS 32 test-bdrv-drain /bdrv-drain/blockjob/iothread/error/drain_subtree
PASS 33 test-bdrv-drain /bdrv-drain/deletion/drain
---
PASS 39 test-bdrv-drain /bdrv-drain/attach/drain
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-bdrv-graph-mod -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bdrv-graph-mod" 
PASS 6 ahci-test /x86_64/ahci/identify
==8190==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-bdrv-graph-mod /bdrv-graph-mod/update-perm-tree
PASS 2 test-bdrv-graph-mod /bdrv-graph-mod/should-update-child
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-blockjob -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob" 
==8192==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8196==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-blockjob /blockjob/ids
PASS 2 test-blockjob /blockjob/cancel/created
PASS 3 test-blockjob /blockjob/cancel/running
---
PASS 7 test-blockjob /blockjob/cancel/pending
PASS 8 test-blockjob /blockjob/cancel/concluded
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-blockjob-txn -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-blockjob-txn" 
==8205==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-blockjob-txn /single/success
PASS 2 test-blockjob-txn /single/failure
PASS 3 test-blockjob-txn /single/cancel
---
PASS 7 test-blockjob-txn /pair/fail-cancel-race
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-block-backend -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-backend" 
PASS 7 ahci-test /x86_64/ahci/max
==8211==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-block-backend /block-backend/drain_aio_error
PASS 2 test-block-backend /block-backend/drain_all_aio_error
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-block-iothread -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-block-iothread" 
==8217==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8213==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-block-iothread /sync-op/pread
PASS 2 test-block-iothread /sync-op/pwrite
PASS 3 test-block-iothread /sync-op/load_vmstate
---
PASS 15 test-block-iothread /propagate/diamond
PASS 16 test-block-iothread /propagate/mirror
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-image-locking -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-image-locking" 
==8242==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-image-locking /image-locking/basic
PASS 2 test-image-locking /image-locking/set-perm-abort
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-x86-cpuid -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-x86-cpuid" 
---
PASS 16 test-vmstate /vmstate/qtailq/save/saveq
PASS 17 test-vmstate /vmstate/qtailq/load/loadq
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-cutils -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-cutils" 
==8255==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-cutils /cutils/parse_uint/null
PASS 2 test-cutils /cutils/parse_uint/empty
PASS 3 test-cutils /cutils/parse_uint/whitespace
---
PASS 1 test-shift128 /host-utils/test_lshift
PASS 2 test-shift128 /host-utils/test_rshift
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-mul64 -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-mul64" 
==8255==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff0dfa0000; bottom 0x7f311d9fe000; size: 0x00cdf05a2000 (884500733952)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 1 test-mul64 /host-utils/mulu64
---
PASS 9 test-int128 /int128/int128_gt
PASS 10 test-int128 /int128/int128_rshift
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/rcutorture -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="rcutorture" 
==8282==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8282==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffda6ef1000; bottom 0x7f775effe000; size: 0x008647ef3000 (576732475392)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 1 rcutorture /rcu/torture/1reader
PASS 10 ahci-test /x86_64/ahci/io/pio/lba28/simple/low
==8315==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 rcutorture /rcu/torture/10readers
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-rcu-list -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-list" 
==8315==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffea2e70000; bottom 0x7fe9729fe000; size: 0x001530472000 (91004280832)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 11 ahci-test /x86_64/ahci/io/pio/lba28/simple/high
==8328==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8328==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffce7bbb000; bottom 0x7f13c43fe000; size: 0x00e9237bd000 (1001322696704)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 1 test-rcu-list /rcu/qlist/single-threaded
PASS 12 ahci-test /x86_64/ahci/io/pio/lba28/double/zero
==8340==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8340==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffed4294000; bottom 0x7f9655bfe000; size: 0x00687e696000 (448797433856)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 2 test-rcu-list /rcu/qlist/short-few
PASS 13 ahci-test /x86_64/ahci/io/pio/lba28/double/low
==8367==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8367==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd8da13000; bottom 0x7f62475fe000; size: 0x009b46415000 (666898616320)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 14 ahci-test /x86_64/ahci/io/pio/lba28/double/high
==8373==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 test-rcu-list /rcu/qlist/long-many
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-rcu-simpleq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-simpleq" 
==8373==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff8aaf0000; bottom 0x7f958e3fe000; size: 0x0069fc6f2000 (455206707200)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 15 ahci-test /x86_64/ahci/io/pio/lba28/long/zero
PASS 1 test-rcu-simpleq /rcu/qsimpleq/single-threaded
==8386==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8386==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffdf9719000; bottom 0x7fc3fadfe000; size: 0x0039fe91b000 (249084096512)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 2 test-rcu-simpleq /rcu/qsimpleq/short-few
PASS 16 ahci-test /x86_64/ahci/io/pio/lba28/long/low
==8419==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8419==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe33535000; bottom 0x7f1e2ab7c000; size: 0x00e0089b9000 (962217086976)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 17 ahci-test /x86_64/ahci/io/pio/lba28/long/high
PASS 3 test-rcu-simpleq /rcu/qsimpleq/long-many
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-rcu-tailq -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-rcu-tailq" 
==8425==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 18 ahci-test /x86_64/ahci/io/pio/lba28/short/zero
PASS 1 test-rcu-tailq /rcu/qtailq/single-threaded
==8438==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 19 ahci-test /x86_64/ahci/io/pio/lba28/short/low
PASS 2 test-rcu-tailq /rcu/qtailq/short-few
==8450==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 20 ahci-test /x86_64/ahci/io/pio/lba28/short/high
==8477==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8477==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc3a9bc000; bottom 0x7ff0e67fe000; size: 0x000b541be000 (48655753216)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 21 ahci-test /x86_64/ahci/io/pio/lba48/simple/zero
---
PASS 7 test-qdist /qdist/binning/expand
PASS 8 test-qdist /qdist/binning/shrink
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-qht -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht" 
==8483==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8483==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff079c6000; bottom 0x7f0a5a7fe000; size: 0x00f4ad1c8000 (1050876346368)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 22 ahci-test /x86_64/ahci/io/pio/lba48/simple/low
==8498==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8498==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc76fae000; bottom 0x7fe4153fe000; size: 0x001861bb0000 (104718860288)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 23 ahci-test /x86_64/ahci/io/pio/lba48/simple/high
==8504==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8504==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc7007d000; bottom 0x7f2a09dfe000; size: 0x00d26627f000 (903657025536)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 24 ahci-test /x86_64/ahci/io/pio/lba48/double/zero
==8510==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8510==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff55eec000; bottom 0x7f5c321fe000; size: 0x00a323cee000 (700680429568)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 25 ahci-test /x86_64/ahci/io/pio/lba48/double/low
==8516==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8516==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcdb9a1000; bottom 0x7f734e5fe000; size: 0x00898d3a3000 (590779920384)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 26 ahci-test /x86_64/ahci/io/pio/lba48/double/high
==8522==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8522==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7fff4fc2d000; bottom 0x7f863fd7c000; size: 0x00790feb1000 (519958106112)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 27 ahci-test /x86_64/ahci/io/pio/lba48/long/zero
==8528==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8528==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffe18135000; bottom 0x7f089a77c000; size: 0x00f57d9b9000 (1054374334464)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 28 ahci-test /x86_64/ahci/io/pio/lba48/long/low
==8534==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==8534==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc06466000; bottom 0x7f03a7b7c000; size: 0x00f85e8ea000 (1066738294784)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 29 ahci-test /x86_64/ahci/io/pio/lba48/long/high
==8540==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 30 ahci-test /x86_64/ahci/io/pio/lba48/short/zero
==8546==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 31 ahci-test /x86_64/ahci/io/pio/lba48/short/low
==8552==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 32 ahci-test /x86_64/ahci/io/pio/lba48/short/high
==8558==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 33 ahci-test /x86_64/ahci/io/dma/lba28/fragmented
PASS 1 test-qht /qht/mode/default
PASS 2 test-qht /qht/mode/resize
==8564==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-qht-par -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qht-par" 
PASS 34 ahci-test /x86_64/ahci/io/dma/lba28/retry
PASS 1 test-qht-par /qht/parallel/2threads-0%updates-1s
==8580==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 35 ahci-test /x86_64/ahci/io/dma/lba28/simple/zero
PASS 2 test-qht-par /qht/parallel/2threads-20%updates-1s
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-bitops -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bitops" 
==8593==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-bitops /bitops/sextract32
PASS 2 test-bitops /bitops/sextract64
PASS 3 test-bitops /bitops/half_shuffle32
---
PASS 8 check-qom-proplist /qom/proplist/delchild
PASS 9 check-qom-proplist /qom/resolve/partial
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-qemu-opts -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qemu-opts" 
==8620==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-qemu-opts /qemu-opts/find_unknown_opts
PASS 2 test-qemu-opts /qemu-opts/find_opts
PASS 3 test-qemu-opts /qemu-opts/opts_create
---
PASS 15 test-crypto-secret /crypto/secret/crypt/missingiv
PASS 16 test-crypto-secret /crypto/secret/crypt/badiv
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-crypto-tlscredsx509 -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-tlscredsx509" 
==8647==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 38 ahci-test /x86_64/ahci/io/dma/lba28/double/zero
PASS 1 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectserver
PASS 2 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/perfectclient
==8677==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca1
PASS 4 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca2
PASS 39 ahci-test /x86_64/ahci/io/dma/lba28/double/low
==8683==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 5 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodca3
PASS 6 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badca1
PASS 7 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/badca2
---
PASS 40 ahci-test /x86_64/ahci/io/dma/lba28/double/high
PASS 10 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver2
PASS 11 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver3
==8689==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 12 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver4
PASS 41 ahci-test /x86_64/ahci/io/dma/lba28/long/zero
PASS 13 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver5
==8695==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 14 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver6
PASS 42 ahci-test /x86_64/ahci/io/dma/lba28/long/low
PASS 15 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/goodserver7
---
PASS 32 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/inactive1
PASS 33 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/inactive2
PASS 34 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/inactive3
==8701==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 35 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/chain1
PASS 36 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/chain2
PASS 37 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/missingca
---
PASS 39 test-crypto-tlscredsx509 /qcrypto/tlscredsx509/missingclient
PASS 43 ahci-test /x86_64/ahci/io/dma/lba28/long/high
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-crypto-tlssession -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-tlssession" 
==8708==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-crypto-tlssession /qcrypto/tlssession/psk
PASS 2 test-crypto-tlssession /qcrypto/tlssession/basicca
PASS 44 ahci-test /x86_64/ahci/io/dma/lba28/short/zero
PASS 3 test-crypto-tlssession /qcrypto/tlssession/differentca
PASS 4 test-crypto-tlssession /qcrypto/tlssession/altname1
PASS 5 test-crypto-tlssession /qcrypto/tlssession/altname2
==8718==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 test-crypto-tlssession /qcrypto/tlssession/altname3
PASS 45 ahci-test /x86_64/ahci/io/dma/lba28/short/low
PASS 7 test-crypto-tlssession /qcrypto/tlssession/altname4
==8724==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 8 test-crypto-tlssession /qcrypto/tlssession/altname5
PASS 46 ahci-test /x86_64/ahci/io/dma/lba28/short/high
PASS 9 test-crypto-tlssession /qcrypto/tlssession/altname6
==8730==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 test-crypto-tlssession /qcrypto/tlssession/wildcard1
PASS 11 test-crypto-tlssession /qcrypto/tlssession/wildcard2
PASS 47 ahci-test /x86_64/ahci/io/dma/lba48/simple/zero
PASS 12 test-crypto-tlssession /qcrypto/tlssession/wildcard3
==8736==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 48 ahci-test /x86_64/ahci/io/dma/lba48/simple/low
==8742==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 13 test-crypto-tlssession /qcrypto/tlssession/wildcard4
PASS 14 test-crypto-tlssession /qcrypto/tlssession/wildcard5
PASS 49 ahci-test /x86_64/ahci/io/dma/lba48/simple/high
PASS 15 test-crypto-tlssession /qcrypto/tlssession/wildcard6
PASS 16 test-crypto-tlssession /qcrypto/tlssession/cachain
==8748==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-qga -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qga" 
PASS 50 ahci-test /x86_64/ahci/io/dma/lba48/double/zero
PASS 1 test-qga /qga/sync-delimited
---
PASS 6 test-qga /qga/get-vcpus
PASS 7 test-qga /qga/get-fsinfo
PASS 8 test-qga /qga/get-memory-block-info
==8760==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 9 test-qga /qga/get-memory-blocks
PASS 10 test-qga /qga/file-ops
PASS 11 test-qga /qga/file-write-read
---
PASS 17 test-qga /qga/fsfreeze-status
PASS 51 ahci-test /x86_64/ahci/io/dma/lba48/double/low
PASS 18 test-qga /qga/blacklist
==8767==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 19 test-qga /qga/config
PASS 20 test-qga /qga/guest-exec
PASS 21 test-qga /qga/guest-exec-invalid
---
PASS 23 test-qga /qga/guest-get-host-name
PASS 24 test-qga /qga/guest-get-timezone
PASS 25 test-qga /qga/guest-get-users
==8780==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-timed-average -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-timed-average" 
PASS 1 test-timed-average /timed-average/average
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-util-filemonitor -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-util-filemonitor" 
---
PASS 53 ahci-test /x86_64/ahci/io/dma/lba48/long/zero
PASS 1 test-authz-simple /authz/simple
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-authz-list -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-authz-list" 
==8809==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-authz-list /auth/list/complex
PASS 2 test-authz-list /auth/list/add-remove
PASS 3 test-authz-list /auth/list/default/deny
---
PASS 4 test-io-channel-file /io/channel/pipe/sync
PASS 5 test-io-channel-file /io/channel/pipe/async
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-io-channel-tls -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-tls" 
==8876==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-io-channel-tls /qio/channel/tls/basic
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-io-channel-command -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-command" 
PASS 55 ahci-test /x86_64/ahci/io/dma/lba48/long/high
---
PASS 3 test-io-channel-command /io/channel/command/echo/sync
PASS 4 test-io-channel-command /io/channel/command/echo/async
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-io-channel-buffer -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-io-channel-buffer" 
==8900==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-io-channel-buffer /io/channel/buf
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-base64 -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-base64" 
PASS 1 test-base64 /util/base64/good
---
PASS 17 test-crypto-xts /crypto/xts/t-21-key-32-ptx-31/basic
PASS 18 test-crypto-xts /crypto/xts/t-21-key-32-ptx-31/unaligned
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-crypto-block -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-crypto-block" 
==8925==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-crypto-block /crypto/block/qcow
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-logging -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-logging" 
PASS 1 test-logging /logging/parse_range
PASS 2 test-logging /logging/parse_path
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-replication -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-replication" 
==8953==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 57 ahci-test /x86_64/ahci/io/dma/lba48/short/low
PASS 1 test-replication /replication/primary/read
PASS 2 test-replication /replication/primary/write
==8957==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 test-replication /replication/primary/start
PASS 4 test-replication /replication/primary/stop
PASS 5 test-replication /replication/primary/do_checkpoint
PASS 6 test-replication /replication/primary/get_error_all
PASS 58 ahci-test /x86_64/ahci/io/dma/lba48/short/high
==8963==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 7 test-replication /replication/secondary/read
PASS 59 ahci-test /x86_64/ahci/io/ncq/simple
PASS 8 test-replication /replication/secondary/write
==8969==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 60 ahci-test /x86_64/ahci/io/ncq/retry
==8976==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 61 ahci-test /x86_64/ahci/flush/simple
==8953==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffc23d84000; bottom 0x7f45067fc000; size: 0x00b71d588000 (786471354368)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
==8982==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 9 test-replication /replication/secondary/start
PASS 62 ahci-test /x86_64/ahci/flush/retry
==9006==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9011==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 test-replication /replication/secondary/stop
PASS 63 ahci-test /x86_64/ahci/flush/migrate
==9020==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 11 test-replication /replication/secondary/do_checkpoint
==9025==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 12 test-replication /replication/secondary/get_error_all
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-bufferiszero -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-bufferiszero" 
PASS 64 ahci-test /x86_64/ahci/migrate/sanity
==9038==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9043==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 65 ahci-test /x86_64/ahci/migrate/dma/simple
==9052==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9057==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 66 ahci-test /x86_64/ahci/migrate/dma/halted
==9066==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9071==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 67 ahci-test /x86_64/ahci/migrate/ncq/simple
==9080==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9085==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 68 ahci-test /x86_64/ahci/migrate/ncq/halted
==9095==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 69 ahci-test /x86_64/ahci/cdrom/eject
==9100==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 70 ahci-test /x86_64/ahci/cdrom/dma/single
==9106==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 71 ahci-test /x86_64/ahci/cdrom/dma/multi
==9112==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 72 ahci-test /x86_64/ahci/cdrom/pio/single
==9118==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
==9118==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffd7779a000; bottom 0x7f6c969fe000; size: 0x0090e0d9c000 (622247657472)
False positive error reports may follow
For details see https://github.com/google/sanitizers/issues/189
PASS 73 ahci-test /x86_64/ahci/cdrom/pio/multi
==9124==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 74 ahci-test /x86_64/ahci/cdrom/pio/bcl
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/hd-geo-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="hd-geo-test" 
PASS 1 hd-geo-test /x86_64/hd-geo/ide/none
==9138==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 hd-geo-test /x86_64/hd-geo/ide/drive/cd_0
==9144==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/blank
==9150==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/lba
==9156==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 5 hd-geo-test /x86_64/hd-geo/ide/drive/mbr/chs
==9162==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 hd-geo-test /x86_64/hd-geo/ide/device/mbr/blank
PASS 1 test-bufferiszero /cutils/bufferiszero
==9168==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-uuid -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-uuid" 
PASS 1 test-uuid /uuid/is_null
PASS 2 test-uuid /uuid/generate
---
PASS 1 test-qapi-util /qapi/util/qapi_enum_parse
PASS 2 test-qapi-util /qapi/util/parse_qapi_name
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  tests/test-qgraph -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-qgraph" 
==9183==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 test-qgraph /qgraph/init_nop
PASS 2 test-qgraph /qgraph/test_machine
PASS 3 test-qgraph /qgraph/test_contains
---
PASS 22 test-qgraph /qgraph/test_test_in_path
PASS 23 test-qgraph /qgraph/test_double_edge
PASS 8 hd-geo-test /x86_64/hd-geo/ide/device/mbr/chs
==9197==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 9 hd-geo-test /x86_64/hd-geo/ide/device/user/chs
==9202==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 hd-geo-test /x86_64/hd-geo/ide/device/user/chst
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/boot-order-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="boot-order-test" 
PASS 1 boot-order-test /x86_64/boot-order/pc
---
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9270==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 bios-tables-test /x86_64/acpi/piix4
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9276==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 bios-tables-test /x86_64/acpi/q35
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9282==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 bios-tables-test /x86_64/acpi/piix4/bridge
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9288==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 bios-tables-test /x86_64/acpi/piix4/ipmi
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9294==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 5 bios-tables-test /x86_64/acpi/piix4/cpuhp
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9301==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 bios-tables-test /x86_64/acpi/piix4/memhp
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9307==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 7 bios-tables-test /x86_64/acpi/piix4/numamem
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9313==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 8 bios-tables-test /x86_64/acpi/piix4/dimmpxm
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9322==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 9 bios-tables-test /x86_64/acpi/q35/bridge
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9328==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 10 bios-tables-test /x86_64/acpi/q35/mmio64
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9334==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 11 bios-tables-test /x86_64/acpi/q35/ipmi
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9340==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 12 bios-tables-test /x86_64/acpi/q35/cpuhp
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9347==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 13 bios-tables-test /x86_64/acpi/q35/memhp
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9353==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 14 bios-tables-test /x86_64/acpi/q35/numamem
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9359==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 15 bios-tables-test /x86_64/acpi/q35/dimmpxm
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/boot-serial-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="boot-serial-test" 
PASS 1 boot-serial-test /x86_64/boot-serial/isapc
---
PASS 1 i440fx-test /x86_64/i440fx/defaults
PASS 2 i440fx-test /x86_64/i440fx/pam
PASS 3 i440fx-test /x86_64/i440fx/firmware/bios
==9443==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 i440fx-test /x86_64/i440fx/firmware/pflash
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/fw_cfg-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="fw_cfg-test" 
PASS 1 fw_cfg-test /x86_64/fw_cfg/signature
---
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/drive_del-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="drive_del-test" 
PASS 1 drive_del-test /x86_64/drive_del/without-dev
PASS 2 drive_del-test /x86_64/drive_del/after_failed_device_add
==9531==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 drive_del-test /x86_64/blockdev/drive_del_device_del
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/wdt_ib700-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="wdt_ib700-test" 
PASS 1 wdt_ib700-test /x86_64/wdt_ib700/pause
---
PASS 1 usb-hcd-uhci-test /x86_64/uhci/pci/init
PASS 2 usb-hcd-uhci-test /x86_64/uhci/pci/port1
PASS 3 usb-hcd-uhci-test /x86_64/uhci/pci/hotplug
==9726==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 usb-hcd-uhci-test /x86_64/uhci/pci/hotplug/usb-storage
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/usb-hcd-xhci-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="usb-hcd-xhci-test" 
PASS 1 usb-hcd-xhci-test /x86_64/xhci/pci/init
PASS 2 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug
==9735==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug/usb-uas
PASS 4 usb-hcd-xhci-test /x86_64/xhci/pci/hotplug/usb-ccid
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/cpu-plug-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="cpu-plug-test" 
---
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9841==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 1 vmgenid-test /x86_64/vmgenid/vmgenid/set-guid
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9847==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 vmgenid-test /x86_64/vmgenid/vmgenid/set-guid-auto
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9853==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 vmgenid-test /x86_64/vmgenid/vmgenid/query-monitor
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/tpm-crb-swtpm-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="tpm-crb-swtpm-test" 
SKIP 1 tpm-crb-swtpm-test /x86_64/tpm/crb-swtpm/test # SKIP swtpm not in PATH or missing --tpm2 support
---
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9958==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9963==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 3 migration-test /x86_64/migration/fd_proto
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9971==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==9976==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 4 migration-test /x86_64/migration/postcopy/unix
PASS 5 migration-test /x86_64/migration/postcopy/recovery
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10006==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10011==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 6 migration-test /x86_64/migration/precopy/unix
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10020==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10025==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 7 migration-test /x86_64/migration/precopy/tcp
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10034==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
qemu-system-x86_64: Back to tcg accelerator
==10039==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 8 migration-test /x86_64/migration/xbzrle/unix
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/test-x86-cpuid-compat -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="test-x86-cpuid-compat" 
PASS 1 test-x86-cpuid-compat /x86/cpuid/parsing-plus-minus
---
PASS 6 numa-test /x86_64/numa/pc/dynamic/cpu
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}  QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img tests/qmp-test -m=quick -k --tap < /dev/null | ./scripts/tap-driver.pl --test-name="qmp-test" 
PASS 1 qmp-test /x86_64/qmp/protocol
==10368==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases!
PASS 2 qmp-test /x86_64/qmp/oob
PASS 3 qmp-test /x86_64/qmp/preconfig
PASS 4 qmp-test /x86_64/qmp/missing-any-arg
---
PASS 5 device-introspect-test /x86_64/device/introspect/abstract-interfaces

=================================================================
==10616==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x55c0baca8abe in calloc (/tmp/qemu-test/build/x86_64-softmmu/qemu-system-x86_64+0x19efabe)
---

SUMMARY: AddressSanitizer: 64 byte(s) leaked in 2 allocation(s).
/tmp/qemu-test/src/tests/libqtest.c:137: kill_qemu() tried to terminate QEMU process but encountered exit status 1
ERROR - too few tests run (expected 6, got 5)
make: *** [/tmp/qemu-test/src/tests/Makefile.include:894: check-qtest-x86_64] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):


The full log is available at
http://patchew.org/logs/20190628103957.9504-1-kraxel@redhat.com/testing.asan/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/
  2019-06-28 10:39 ` [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/ Gerd Hoffmann
@ 2019-06-29  5:02   ` David Gibson
  0 siblings, 0 replies; 14+ messages in thread
From: David Gibson @ 2019-06-29  5:02 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Peter Maydell, Corey Minyard, qemu-devel, qemu-arm, qemu-ppc

[-- Attachment #1: Type: text/plain, Size: 3920 bytes --]

On Fri, Jun 28, 2019 at 12:39:52PM +0200, Gerd Hoffmann wrote:
> From: BALATON Zoltan <balaton@eik.bme.hu>
> 
> The bitbang i2c implementation is also useful for other device models
> such as DDC in display controllers. Move the header to include/hw/i2c/
> to allow it to be used from other device models and adjust users of
> this include. This also reverts commit 2b4c1125ac which is no longer
> needed.
> 
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Acked-by: Corey Minyard <cminyard@mvista.com>
> Message-id: 5d1fe4db846ab9be4b77ddb0d43cc74cd200a003.1561028123.git.balaton@eik.bme.hu
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

ppc parts
Acked-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  {hw => include/hw}/i2c/bitbang_i2c.h | 2 ++
>  include/hw/i2c/i2c.h                 | 2 --
>  include/hw/i2c/ppc4xx_i2c.h          | 2 +-
>  hw/i2c/bitbang_i2c.c                 | 2 +-
>  hw/i2c/ppc4xx_i2c.c                  | 1 -
>  hw/i2c/versatile_i2c.c               | 2 +-
>  6 files changed, 5 insertions(+), 6 deletions(-)
>  rename {hw => include/hw}/i2c/bitbang_i2c.h (80%)
> 
> diff --git a/hw/i2c/bitbang_i2c.h b/include/hw/i2c/bitbang_i2c.h
> similarity index 80%
> rename from hw/i2c/bitbang_i2c.h
> rename to include/hw/i2c/bitbang_i2c.h
> index 9443021710d7..3a7126d5dee8 100644
> --- a/hw/i2c/bitbang_i2c.h
> +++ b/include/hw/i2c/bitbang_i2c.h
> @@ -3,6 +3,8 @@
>  
>  #include "hw/i2c/i2c.h"
>  
> +typedef struct bitbang_i2c_interface bitbang_i2c_interface;
> +
>  #define BITBANG_I2C_SDA 0
>  #define BITBANG_I2C_SCL 1
>  
> diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h
> index 8e236f7bb428..75c5bd638bb9 100644
> --- a/include/hw/i2c/i2c.h
> +++ b/include/hw/i2c/i2c.h
> @@ -81,8 +81,6 @@ uint8_t i2c_recv(I2CBus *bus);
>  
>  DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr);
>  
> -typedef struct bitbang_i2c_interface bitbang_i2c_interface;
> -
>  /* lm832x.c */
>  void lm832x_key_event(DeviceState *dev, int key, int state);
>  
> diff --git a/include/hw/i2c/ppc4xx_i2c.h b/include/hw/i2c/ppc4xx_i2c.h
> index aa2a2bf9dec2..8437bf070b8b 100644
> --- a/include/hw/i2c/ppc4xx_i2c.h
> +++ b/include/hw/i2c/ppc4xx_i2c.h
> @@ -28,7 +28,7 @@
>  #define PPC4XX_I2C_H
>  
>  #include "hw/sysbus.h"
> -#include "hw/i2c/i2c.h"
> +#include "hw/i2c/bitbang_i2c.h"
>  
>  #define TYPE_PPC4xx_I2C "ppc4xx-i2c"
>  #define PPC4xx_I2C(obj) OBJECT_CHECK(PPC4xxI2CState, (obj), TYPE_PPC4xx_I2C)
> diff --git a/hw/i2c/bitbang_i2c.c b/hw/i2c/bitbang_i2c.c
> index 5dfc72d9d7b7..3cb0509b0200 100644
> --- a/hw/i2c/bitbang_i2c.c
> +++ b/hw/i2c/bitbang_i2c.c
> @@ -12,7 +12,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/hw.h"
> -#include "bitbang_i2c.h"
> +#include "hw/i2c/bitbang_i2c.h"
>  #include "hw/sysbus.h"
>  #include "qemu/module.h"
>  
> diff --git a/hw/i2c/ppc4xx_i2c.c b/hw/i2c/ppc4xx_i2c.c
> index d606d3dbeb81..5fb4f86c38f1 100644
> --- a/hw/i2c/ppc4xx_i2c.c
> +++ b/hw/i2c/ppc4xx_i2c.c
> @@ -30,7 +30,6 @@
>  #include "cpu.h"
>  #include "hw/hw.h"
>  #include "hw/i2c/ppc4xx_i2c.h"
> -#include "bitbang_i2c.h"
>  
>  #define PPC4xx_I2C_MEM_SIZE 18
>  
> diff --git a/hw/i2c/versatile_i2c.c b/hw/i2c/versatile_i2c.c
> index e07be9890c8a..24b6e36b6d52 100644
> --- a/hw/i2c/versatile_i2c.c
> +++ b/hw/i2c/versatile_i2c.c
> @@ -23,7 +23,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "hw/sysbus.h"
> -#include "bitbang_i2c.h"
> +#include "hw/i2c/bitbang_i2c.h"
>  #include "qemu/log.h"
>  #include "qemu/module.h"
>  

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 0/6] Vga 20190628 patches
  2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
                   ` (6 preceding siblings ...)
  2019-06-28 11:27 ` [Qemu-devel] [PULL 0/6] Vga 20190628 patches no-reply
@ 2019-07-02  9:17 ` Peter Maydell
  2019-07-02 13:47   ` Peter Maydell
  7 siblings, 1 reply; 14+ messages in thread
From: Peter Maydell @ 2019-07-02  9:17 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Corey Minyard, qemu-arm, qemu-ppc, QEMU Developers, David Gibson

On Fri, 28 Jun 2019 at 11:40, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> The following changes since commit 474f3938d79ab36b9231c9ad3b5a9314c2aeacde:
>
>   Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-jun-21-2019' into staging (2019-06-21 15:40:50 +0100)
>
> are available in the Git repository at:
>
>   git://git.kraxel.org/qemu tags/vga-20190628-pull-request
>
> for you to fetch changes up to 263807f4e85e94f2d4e988d61d2fc0319b1dd36b:
>
>   ati-vga: switch to vgabios-ati.bin (2019-06-28 10:49:36 +0200)
>
> ----------------------------------------------------------------
> vga: ati fixes, add ati vgabios.
>
> ----------------------------------------------------------------
>
> BALATON Zoltan (3):
>   i2c: Move bitbang_i2c.h to include/hw/i2c/
>   ati-vga: Implement DDC and EDID info from monitor
>   ati-vga: Fixes to offset and pitch registers
>
> Gerd Hoffmann (3):
>   seabios: add config for ati vgabios
>   seabios: add ati vgabios binary
>   ati-vga: switch to vgabios-ati.bin
>

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 0/6] Vga 20190628 patches
  2019-07-02  9:17 ` Peter Maydell
@ 2019-07-02 13:47   ` Peter Maydell
  2019-07-02 16:48     ` Gerd Hoffmann
  0 siblings, 1 reply; 14+ messages in thread
From: Peter Maydell @ 2019-07-02 13:47 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Corey Minyard, qemu-arm, qemu-ppc, QEMU Developers, David Gibson

On Tue, 2 Jul 2019 at 10:17, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Fri, 28 Jun 2019 at 11:40, Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > The following changes since commit 474f3938d79ab36b9231c9ad3b5a9314c2aeacde:
> >
> >   Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-jun-21-2019' into staging (2019-06-21 15:40:50 +0100)
> >
> > are available in the Git repository at:
> >
> >   git://git.kraxel.org/qemu tags/vga-20190628-pull-request
> >
> > for you to fetch changes up to 263807f4e85e94f2d4e988d61d2fc0319b1dd36b:
> >
> >   ati-vga: switch to vgabios-ati.bin (2019-06-28 10:49:36 +0200)
> >
> > ----------------------------------------------------------------
> > vga: ati fixes, add ati vgabios.
> >
> > ----------------------------------------------------------------
> >
> > BALATON Zoltan (3):
> >   i2c: Move bitbang_i2c.h to include/hw/i2c/
> >   ati-vga: Implement DDC and EDID info from monitor
> >   ati-vga: Fixes to offset and pitch registers
> >
> > Gerd Hoffmann (3):
> >   seabios: add config for ati vgabios
> >   seabios: add ati vgabios binary
> >   ati-vga: switch to vgabios-ati.bin
> >
>
> Applied, thanks.
>
> Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
> for any user-visible changes.

Hmm, the bitbang-i2c changes in this pull seem to have broken
patchew's asan build:
https://patchew.org/logs/20190628103957.9504-1-kraxel@redhat.com/testing.asan/?type=message

(probably because now we're using and testing the buggy
code in a way we weren't before)

thanks
-- PMM


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin
  2019-06-28 10:39 ` [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin Gerd Hoffmann
@ 2019-07-02 16:20   ` Bruce Rogers
  0 siblings, 0 replies; 14+ messages in thread
From: Bruce Rogers @ 2019-07-02 16:20 UTC (permalink / raw)
  To: kraxel, qemu-devel; +Cc: peter.maydell, david, qemu-ppc, qemu-arm, cminyard

On Fri, 2019-06-28 at 12:39 +0200, Gerd Hoffmann wrote:
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
> Message-id: 20190620151104.2678-4-kraxel@redhat.com
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  hw/display/ati.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/display/ati.c b/hw/display/ati.c
> index e1bde5e0b1e3..0cb117384839 100644
> --- a/hw/display/ati.c
> +++ b/hw/display/ati.c
> @@ -910,7 +910,7 @@ static void ati_vga_class_init(ObjectClass
> *klass, void *data)
>      k->class_id = PCI_CLASS_DISPLAY_VGA;
>      k->vendor_id = PCI_VENDOR_ID_ATI;
>      k->device_id = PCI_DEVICE_ID_ATI_RAGE128_PF;
> -    k->romfile = "vgabios-stdvga.bin";
> +    k->romfile = "vgabios-ati.bin";
>      k->realize = ati_vga_realize;
>      k->exit = ati_vga_exit;
>  }

I don't see vgabios-ati.bin getting installed as one of the installed
blobs. Is that intentional for some reason?

Bruce

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 0/6] Vga 20190628 patches
  2019-07-02 13:47   ` Peter Maydell
@ 2019-07-02 16:48     ` Gerd Hoffmann
  2019-07-02 17:08       ` Peter Maydell
  0 siblings, 1 reply; 14+ messages in thread
From: Gerd Hoffmann @ 2019-07-02 16:48 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Corey Minyard, qemu-arm, qemu-ppc, QEMU Developers, David Gibson

On Tue, Jul 02, 2019 at 02:47:12PM +0100, Peter Maydell wrote:
> On Tue, 2 Jul 2019 at 10:17, Peter Maydell <peter.maydell@linaro.org> wrote:
> >
> > On Fri, 28 Jun 2019 at 11:40, Gerd Hoffmann <kraxel@redhat.com> wrote:
> > >
> > > The following changes since commit 474f3938d79ab36b9231c9ad3b5a9314c2aeacde:
> > >
> > >   Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-jun-21-2019' into staging (2019-06-21 15:40:50 +0100)
> > >
> > > are available in the Git repository at:
> > >
> > >   git://git.kraxel.org/qemu tags/vga-20190628-pull-request
> > >
> > > for you to fetch changes up to 263807f4e85e94f2d4e988d61d2fc0319b1dd36b:
> > >
> > >   ati-vga: switch to vgabios-ati.bin (2019-06-28 10:49:36 +0200)
> > >
> > > ----------------------------------------------------------------
> > > vga: ati fixes, add ati vgabios.
> > >
> > > ----------------------------------------------------------------
> > >
> > > BALATON Zoltan (3):
> > >   i2c: Move bitbang_i2c.h to include/hw/i2c/
> > >   ati-vga: Implement DDC and EDID info from monitor
> > >   ati-vga: Fixes to offset and pitch registers
> > >
> > > Gerd Hoffmann (3):
> > >   seabios: add config for ati vgabios
> > >   seabios: add ati vgabios binary
> > >   ati-vga: switch to vgabios-ati.bin
> > >
> >
> > Applied, thanks.
> >
> > Please update the changelog at https://wiki.qemu.org/ChangeLog/4.1
> > for any user-visible changes.
> 
> Hmm, the bitbang-i2c changes in this pull seem to have broken
> patchew's asan build:
> https://patchew.org/logs/20190628103957.9504-1-kraxel@redhat.com/testing.asan/?type=message
> 
> (probably because now we're using and testing the buggy
> code in a way we weren't before)

Hmm.  Yes, gpio_i2c_init() allocates memory (in inlined
bitbang_i2c_init).  There is no exit() function so the
memory is never freed indeed.  On the other hand i2c
devices are not really hotpluggable, so maybe we only
need to tag it that way?

cheers,
  Gerd



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Qemu-devel] [PULL 0/6] Vga 20190628 patches
  2019-07-02 16:48     ` Gerd Hoffmann
@ 2019-07-02 17:08       ` Peter Maydell
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Maydell @ 2019-07-02 17:08 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Corey Minyard, qemu-arm, qemu-ppc, QEMU Developers, David Gibson

On Tue, 2 Jul 2019 at 17:48, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> On Tue, Jul 02, 2019 at 02:47:12PM +0100, Peter Maydell wrote:
> > On Tue, 2 Jul 2019 at 10:17, Peter Maydell <peter.maydell@linaro.org> wrote:
> > Hmm, the bitbang-i2c changes in this pull seem to have broken
> > patchew's asan build:
> > https://patchew.org/logs/20190628103957.9504-1-kraxel@redhat.com/testing.asan/?type=message
> >
> > (probably because now we're using and testing the buggy
> > code in a way we weren't before)
>
> Hmm.  Yes, gpio_i2c_init() allocates memory (in inlined
> bitbang_i2c_init).  There is no exit() function so the
> memory is never freed indeed.  On the other hand i2c
> devices are not really hotpluggable, so maybe we only
> need to tag it that way?

The problem is that the qmp 'introspect this device' commands
do an init-(but not realize)-then-delete cycle, which will leak
memory. This isn't a big thing for real-life use (people don't
repeatedly introspect the same device that they can't usefully
use dynamically anyway), but it does get exercised by 'make check',
which is why the sanitizer complains.

I've just sent a patch which tries to fix this by switching
to making it initialize an inlined struct rather than allocating
memory for it.

thanks
-- PMM


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-07-02 19:16 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-28 10:39 [Qemu-devel] [PULL 0/6] Vga 20190628 patches Gerd Hoffmann
2019-06-28 10:39 ` [Qemu-devel] [PULL 1/6] i2c: Move bitbang_i2c.h to include/hw/i2c/ Gerd Hoffmann
2019-06-29  5:02   ` David Gibson
2019-06-28 10:39 ` [Qemu-devel] [PULL 2/6] ati-vga: Implement DDC and EDID info from monitor Gerd Hoffmann
2019-06-28 10:39 ` [Qemu-devel] [PULL 3/6] ati-vga: Fixes to offset and pitch registers Gerd Hoffmann
2019-06-28 10:39 ` [Qemu-devel] [PULL 4/6] seabios: add config for ati vgabios Gerd Hoffmann
2019-06-28 10:39 ` [Qemu-devel] [PULL 5/6] seabios: add ati vgabios binary Gerd Hoffmann
2019-06-28 10:39 ` [Qemu-devel] [PULL 6/6] ati-vga: switch to vgabios-ati.bin Gerd Hoffmann
2019-07-02 16:20   ` Bruce Rogers
2019-06-28 11:27 ` [Qemu-devel] [PULL 0/6] Vga 20190628 patches no-reply
2019-07-02  9:17 ` Peter Maydell
2019-07-02 13:47   ` Peter Maydell
2019-07-02 16:48     ` Gerd Hoffmann
2019-07-02 17:08       ` Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.