From nobody Tue Feb 10 04:16:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615764579; cv=none; d=zohomail.com; s=zohoarc; b=C/C9fvO463ydDr8QgRo/P1j6Csbw/7ZNjVFnbj2n9PqJ7GEws5DdAYHPHA8hm6RpHkAiOf4vKY7ER4iqlrcM5XYIZoZ+ZHSkQkTGOi5DcpK+q0L7eMjb4jWLSCBO1yurE8zVJ7536B/0vsN7V7m2M1+umDjhxcEXt8+oqJKvyOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615764579; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MR0TI0p/wk8rjHEQtPPg4Akk9TSXYFy78Mij8j91GoM=; b=XveREXFUZFf9Hp5c/KNpDbk+pyy0D0BKN8pZux2Xju74WlXwQv0IuSp1Iq3a7+tPKpfqLqLMQaBx8iAmsy93WIEcGJliP12zXP9rhUjR28BRWOmk1ooNV2IwbMs8aBWspNhvGMP3WcZd7BOg6Er0aV1B8nfLMCTe1O6akIiPlJs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 161576457907584.6746874434341; Sun, 14 Mar 2021 16:29:39 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id f12so7774221wrx.8 for ; Sun, 14 Mar 2021 16:29:38 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id y205sm12699717wmc.18.2021.03.14.16.29.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Mar 2021 16:29:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MR0TI0p/wk8rjHEQtPPg4Akk9TSXYFy78Mij8j91GoM=; b=YkpxnBpdjI6gHJi9CH80xVmsuUsuX5J2D2vr5VxrX3sp/wEkEz7SFmKOx6SrkIwUGv Ks5aWy0xn65GNztYWRi2OKdXabOZABQswFGPAkSMsYfCF+PjQ5bFS1IMbVusgUzC8w3H APrgIEsVGU1qI7+PkyrUpOwj4TAhXh9eLpHpl87M1BuXGZRwMssJk08lkKaVjNDimWbE f6ragMe8GjebD8vmZ54hAahrs7rNT0gs/mtb2a2ZzOGrQ7PyKgCwSZzi03ly/TYdLCDY TQOMzXoDFMkoqjKpjsLnf89C2ssXCuPMq+fncyPzejkG9cqYYF0cT5CEgj49orBqXfWo SBeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=MR0TI0p/wk8rjHEQtPPg4Akk9TSXYFy78Mij8j91GoM=; b=LALjoY4qjM7LVWEO6BHrGtdHebLwFj2ngqn86sN8OBm7VpxfKDldJS6PObiEGkyVzu uaaqHUrgCyeZQvOpVW/F7s2uBcY2vFjQ3eyMaNvc+FCXEir6Q3huG0x0l2XJ2MeuW/JP xzxS+PWJ53ZjZ/v9jQxl5FkiMnXuicha2H0g5i1H26qEG2GP3w3w/Il6LW/xGil10HiD OP7TEWIXnSMPy/2CJbu7kuwhX5+SDrwr3JgHs0YLP+0nr7HuF0/o3YQ2adtqchszkJOc T1tfQw6iHwYgOc6xi8gli0KqtzNYhRTPvjHKbgUVHu4KBCSljNz8YYr9PaSZHe1RRLZJ lEqA== X-Gm-Message-State: AOAM531w8eJntybSwk2gHemdJlcR//el2W3/7o4JKKF8+yCmn86hUNl1 s7D7zooNgU9A78QywwV6Tv8= X-Google-Smtp-Source: ABdhPJwH4XXN0wlyakrsIVtQFO33BnUjaxGyPiNfwEKk18FV8cpayJc8q5Fxq24nWbabDr4kFPoVhQ== X-Received: by 2002:a5d:4e0b:: with SMTP id p11mr25198732wrt.343.1615764577344; Sun, 14 Mar 2021 16:29:37 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Richard Henderson , Claudio Fontana , Paolo Bonzini , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alexander Bulekov , Bandan Das , Stefan Hajnoczi , Thomas Huth , Laurent Vivier Subject: [RFC PATCH 4/8] qtest/fuzz: Restrict CPU I/O instructions Date: Mon, 15 Mar 2021 00:29:09 +0100 Message-Id: <20210314232913.2607360-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210314232913.2607360-1-f4bug@amsat.org> References: <20210314232913.2607360-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Restrict CPU I/O instructions to architectures providing I/O bus. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- tests/qtest/fuzz/generic_fuzz.c | 16 ++++++++++------ tests/qtest/fuzz/qtest_wrappers.c | 4 ++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/qtest/fuzz/generic_fuzz.c b/tests/qtest/fuzz/generic_fuz= z.c index ee8c17a04c4..3e0089f4a63 100644 --- a/tests/qtest/fuzz/generic_fuzz.c +++ b/tests/qtest/fuzz/generic_fuzz.c @@ -304,6 +304,13 @@ static bool get_io_address(address_range *result, Addr= essSpace *as, return cb_info.found; } =20 +static bool get_mmio_address(address_range *result, + uint8_t index, uint32_t offset) +{ + return get_io_address(result, &address_space_memory, index, offset); +} + +#ifdef TARGET_HAS_IOPORT static bool get_pio_address(address_range *result, uint8_t index, uint16_t offset) { @@ -318,12 +325,6 @@ static bool get_pio_address(address_range *result, return result->addr <=3D 0xFFFF ? found : false; } =20 -static bool get_mmio_address(address_range *result, - uint8_t index, uint32_t offset) -{ - return get_io_address(result, &address_space_memory, index, offset); -} - static void op_in(QTestState *s, const unsigned char * data, size_t len) { enum Sizes {Byte, Word, Long, end_sizes}; @@ -395,6 +396,7 @@ static void op_out(QTestState *s, const unsigned char *= data, size_t len) break; } } +#endif /* TARGET_HAS_IOPORT */ =20 static void op_read(QTestState *s, const unsigned char * data, size_t len) { @@ -626,8 +628,10 @@ static void handle_timeout(int sig) static void generic_fuzz(QTestState *s, const unsigned char *Data, size_t = Size) { void (*ops[]) (QTestState *s, const unsigned char* , size_t) =3D { +#ifdef TARGET_HAS_IOPORT [OP_IN] =3D op_in, [OP_OUT] =3D op_out, +#endif /* TARGET_HAS_IOPORT */ [OP_READ] =3D op_read, [OP_WRITE] =3D op_write, [OP_PCI_READ] =3D op_pci_read, diff --git a/tests/qtest/fuzz/qtest_wrappers.c b/tests/qtest/fuzz/qtest_wra= ppers.c index 921d1e5ed3a..d56dda9e9b8 100644 --- a/tests/qtest/fuzz/qtest_wrappers.c +++ b/tests/qtest/fuzz/qtest_wrappers.c @@ -24,12 +24,14 @@ static bool serialize =3D true; RET_TYPE __wrap_##NAME_AND_ARGS;\ RET_TYPE __real_##NAME_AND_ARGS; =20 +#ifdef TARGET_HAS_IOPORT WRAP(uint8_t , qtest_inb(QTestState *s, uint16_t addr)) WRAP(uint16_t , qtest_inw(QTestState *s, uint16_t addr)) WRAP(uint32_t , qtest_inl(QTestState *s, uint16_t addr)) WRAP(void , qtest_outb(QTestState *s, uint16_t addr, uint8_t value)) WRAP(void , qtest_outw(QTestState *s, uint16_t addr, uint16_t value)) WRAP(void , qtest_outl(QTestState *s, uint16_t addr, uint32_t value)) +#endif /* TARGET_HAS_IOPORT */ WRAP(uint8_t , qtest_readb(QTestState *s, uint64_t addr)) WRAP(uint16_t , qtest_readw(QTestState *s, uint64_t addr)) WRAP(uint32_t , qtest_readl(QTestState *s, uint64_t addr)) @@ -50,6 +52,7 @@ WRAP(void, qtest_memset(QTestState *s, uint64_t addr, uint8_t patt, size_t size)) =20 =20 +#ifdef TARGET_HAS_IOPORT uint8_t __wrap_qtest_inb(QTestState *s, uint16_t addr) { if (!serialize) { @@ -103,6 +106,7 @@ void __wrap_qtest_outl(QTestState *s, uint16_t addr, ui= nt32_t value) __real_qtest_outl(s, addr, value); } } +#endif /* TARGET_HAS_IOPORT */ =20 uint8_t __wrap_qtest_readb(QTestState *s, uint64_t addr) { --=20 2.26.2