From nobody Sat May 4 01:44:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1522891484226732.0643525237828; Wed, 4 Apr 2018 18:24:44 -0700 (PDT) Received: from localhost ([::1]:45493 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tdj-00069g-3Q for importer@patchew.org; Wed, 04 Apr 2018 21:24:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55809) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tcA-0004yF-PD for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3tc9-0002w5-Uf for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:22:58 -0400 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:38730) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3tc9-0002vE-PF for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:22:57 -0400 Received: by mail-qt0-x242.google.com with SMTP id z23so24597093qti.5 for ; Wed, 04 Apr 2018 18:22:57 -0700 (PDT) Received: from x1.lan ([138.117.48.212]) by smtp.gmail.com with ESMTPSA id l124sm4940094qkc.1.2018.04.04.18.22.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Apr 2018 18:22:56 -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=F3kKHW48uehK89O20uxuCOytZkFp4ROt94ONZS/Dy/I=; b=SXjvQWCY7oM4yuBmICTe+aEdIDH5UJSSw/RbHlpTyCDxLSgsGKsKyaXSaLPOY7bqqD Gx7nxhiNVTWcQsd7QnXZxkTpH9yozfW8+xe6HPpADMSzwcSx9SH0qHvnnOM6XRyJhLbD IvOP5ZzWa7ovwj/r5/pU3Z1C2DqEisroy5Sn076JtjTviJGEUXGgVSHlelB/M77oSb3C yB7iiRxV4jIOpG4ybNhwOJ5nlHQ0Kdod8on2ISFyWYglTdXSU1pUDEOSBrcWDttOZkBX jwjnPGdGwyB5ad2usQ/IBQywn5t5m6/dq0+wdxvXapOWImJ/Oe2YPdvuSnqIVJt5K0w3 Gjhg== 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=F3kKHW48uehK89O20uxuCOytZkFp4ROt94ONZS/Dy/I=; b=qPBT0KFCDv4jp1IHf4P9RMHGTjf+vmXSBLtvUk+RoQtwX6T0Z0FBq5WcVhPzygIlra zMNTEAxKJpRs9qhkzqoMIAB8dJSzOjvaXdGtWZcXjSZq6aa4oVG5aHyEsGAd/WSEVM6R N04xwiJ+/H9ZfYr4H83FxDvLsvRv9B2U9XKtSgmvMjhApGJtr2pJqgDl4Il9tUxwDda0 jRBAahaacC4Jq0BMUUO18UbHDGN+1iSBFyDIiq9sHb2qKljEFCAmtlls6lJfAPvVgMyZ S0eFn4k4cMViv+wS1SDJZKBv2qGFr0625Via6IonjRZOJGmPA7KVOmDzy3f+bO/EM467 373g== X-Gm-Message-State: ALQs6tD0yCTbLWvU7QUOMrKIXsMTQygNLALfmP4vlLvoJiwY2b194Cc9 dzphaDJ6w0Vjr/9lJ8zHXcs= X-Google-Smtp-Source: AIpwx48SmcD0kZaFEx2Af0foFkPxfftGAAGkDFt4M6qiECgcXTjaJ8/H173kISE31JR9JMi9042txw== X-Received: by 10.200.20.7 with SMTP id k7mr30295739qtj.182.1522891377272; Wed, 04 Apr 2018 18:22:57 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Alexey Kardashevskiy , KONRAD Frederic Date: Wed, 4 Apr 2018 22:22:38 -0300 Message-Id: <20180405012241.25714-2-f4bug@amsat.org> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180405012241.25714-1-f4bug@amsat.org> References: <20180405012241.25714-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v2 1/4] memory: Avoid to create tiny RAM regions, handled as subpages X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 If an user creates a RAM region smaller than TARGET_PAGE_SIZE, this region will be handled as a subpage. While the subpage behavior can be noticed by an experienced QEMU developper, it might takes hours to a novice to figure it out. To save time to novices, do not allow subpage creation via the memory_region_init_ram_*() functions. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- memory.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/memory.c b/memory.c index e70b64b8b9..51d27b7b26 100644 --- a/memory.c +++ b/memory.c @@ -1519,6 +1519,15 @@ void memory_region_init_ram_shared_nomigrate(MemoryR= egion *mr, bool share, Error **errp) { + if (size < TARGET_PAGE_SIZE) { + /* Region less than PAGE_SIZE are handled as subpages, which are + * surely not what the caller expects. + * Limit the minimum ram region size to avoid annoying debugging. + */ + error_setg(errp, "Invalid RAM size: %ld (minimum required: %d)", + size, TARGET_PAGE_SIZE); + return; + } memory_region_init(mr, owner, name, size); mr->ram =3D true; mr->terminates =3D true; --=20 2.16.3 From nobody Sat May 4 01:44:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1522891484223788.7369549679572; Wed, 4 Apr 2018 18:24:44 -0700 (PDT) Received: from localhost ([::1]:45494 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tdm-0006CI-54 for importer@patchew.org; Wed, 04 Apr 2018 21:24:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55826) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tcD-0004zI-Ux for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3tcC-0002zw-LK for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:01 -0400 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:44639) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3tcC-0002zl-GA for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:00 -0400 Received: by mail-qt0-x243.google.com with SMTP id j26so25269803qtl.11 for ; Wed, 04 Apr 2018 18:23:00 -0700 (PDT) Received: from x1.lan ([138.117.48.212]) by smtp.gmail.com with ESMTPSA id l124sm4940094qkc.1.2018.04.04.18.22.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Apr 2018 18:22:59 -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=AusDXdiIRKmEbhZcR3EVhf+Gn0KkCAlcFPyLNAgdi80=; b=DuaNdFH0QMCEguI3dQ6VhtH6hpfqAi3722R9aIv0372ly3nLGsM1TqAGTy+98ucbED 4N3sCvCN7IAgWmHQtROd1OHPlYGpKTFl/4fNANV3qqsuCYY8ndifvds2nYMBvBl4wKtF fb1f6UZ51J4pe95LCz3PBTQ3fC0BTzfxamz1FGvrIgZK0u5df+dVuF67jzusOeHgwn2k SXBOZuFfjs1yZC8T9tggQCZUcf4mhovw+/Wq5cgA/XL2o6NOq81XlPpJMcU7AfLpLUCv Ymj8A1sh1e7NstG+bt70dAkVrVs+S8Vadffkk27TZ/57YQ4dJSSX6D4t6Kiha4nneETq pkCw== 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=AusDXdiIRKmEbhZcR3EVhf+Gn0KkCAlcFPyLNAgdi80=; b=s5I0N8UGcGxkR+4473ZPxOg961qej9f1GVisaTLrAZF7wGE2rwyege0tm8Mph80mGc 51G4YSPT0Gtgm8zy+jZT92MyFD247Yng6jW9uh41zDv6W9tqjKuHqXGh9N/vDu4Sncio pxDGXfe7wQGN64AxgOPe3PoRIylz0yo6vd+dOmAQYK/eOAfyeQqKuWR+3Ea7Q2cMg27i s/tD5n13Jtsl7mCi6gvt0DAykciygl8mcX2LfgfjxJeQTkZLDxCDpwS67eRCfLOn6DIy fV3HnFNffozPWNQQYEuzIqzrdYWLn3dU2tz7HT7ZqX1WT5HYgQicmXtm3sbNpABbExx2 PdLQ== X-Gm-Message-State: ALQs6tCHozcRDMdVbJ5c31974B9RRmeJrukm2zduD4piyaXk5yQ1fk5K I44PwMbrgUM9Q6ickpdnxm0= X-Google-Smtp-Source: AIpwx48ECWN1QRPebanFDvpnJNCACbAi9T5iuez3dono8hu5qIS/gp8ER9CS89/rAA7hL29YMeP0cw== X-Received: by 10.237.61.162 with SMTP id i31mr29553917qtf.34.1522891379913; Wed, 04 Apr 2018 18:22:59 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Alexey Kardashevskiy , KONRAD Frederic Date: Wed, 4 Apr 2018 22:22:39 -0300 Message-Id: <20180405012241.25714-3-f4bug@amsat.org> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180405012241.25714-1-f4bug@amsat.org> References: <20180405012241.25714-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [NOTFORMERGE PATCH v2 2/4] memory: Fix access_with_adjusted_size() when size < access_size_min X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 ASan reported: shift exponent 4294967280 is too large for 64-bit type 'long unsigned i= nt' ... runtime error: shift exponent -16 is negative This can occurs when MemoryRegionOps .valid.min_access_size < .impl.min_acc= ess_size, for example if a guest uses a 16-bit operand to access a 32-bit register. The current code is limited to right shifting. Use a signed shift, to allow shifting left when the value is negative. Reported-by: AddressSanitizer Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- memory.c | 74 +++++++++++++++++++++++++++++++++++++++++++++---------------= ---- 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/memory.c b/memory.c index 51d27b7b26..e77f9e4036 100644 --- a/memory.c +++ b/memory.c @@ -404,7 +404,7 @@ static MemTxResult memory_region_oldmmio_read_accessor(= MemoryRegion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs) { @@ -422,7 +422,11 @@ static MemTxResult memory_region_oldmmio_read_accessor= (MemoryRegion *mr, hwaddr abs_addr =3D memory_region_to_absolute_addr(mr, addr); trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, s= ize); } - *value |=3D (tmp & mask) << shift; + if (likely(shift >=3D 0)) { + *value |=3D (tmp & mask) << shift; + } else { + *value |=3D (tmp >> -shift) & mask; + } return MEMTX_OK; } =20 @@ -430,7 +434,7 @@ static MemTxResult memory_region_read_accessor(MemoryR= egion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs) { @@ -448,7 +452,11 @@ static MemTxResult memory_region_read_accessor(Memory= Region *mr, hwaddr abs_addr =3D memory_region_to_absolute_addr(mr, addr); trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, s= ize); } - *value |=3D (tmp & mask) << shift; + if (likely(shift >=3D 0)) { + *value |=3D (tmp & mask) << shift; + } else { + *value |=3D (tmp >> -shift) & mask; + } return MEMTX_OK; } =20 @@ -456,7 +464,7 @@ static MemTxResult memory_region_read_with_attrs_access= or(MemoryRegion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs) { @@ -475,7 +483,11 @@ static MemTxResult memory_region_read_with_attrs_acces= sor(MemoryRegion *mr, hwaddr abs_addr =3D memory_region_to_absolute_addr(mr, addr); trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, s= ize); } - *value |=3D (tmp & mask) << shift; + if (likely(shift >=3D 0)) { + *value |=3D (tmp & mask) << shift; + } else { + *value |=3D (tmp >> -shift) & mask; + } return r; } =20 @@ -483,13 +495,17 @@ static MemTxResult memory_region_oldmmio_write_access= or(MemoryRegion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs) { uint64_t tmp; =20 - tmp =3D (*value >> shift) & mask; + if (likely(shift >=3D 0)) { + tmp =3D (*value >> shift) & mask; + } else { + tmp =3D (*value & mask) << -shift; + } if (mr->subpage) { trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, = size); } else if (mr =3D=3D &io_mem_notdirty) { @@ -509,13 +525,17 @@ static MemTxResult memory_region_write_accessor(Memor= yRegion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs) { uint64_t tmp; =20 - tmp =3D (*value >> shift) & mask; + if (likely(shift >=3D 0)) { + tmp =3D (*value >> shift) & mask; + } else { + tmp =3D (*value & mask) << -shift; + } if (mr->subpage) { trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, = size); } else if (mr =3D=3D &io_mem_notdirty) { @@ -535,13 +555,17 @@ static MemTxResult memory_region_write_with_attrs_acc= essor(MemoryRegion *mr, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attr= s) { uint64_t tmp; =20 - tmp =3D (*value >> shift) & mask; + if (likely(shift >=3D 0)) { + tmp =3D (*value >> shift) & mask; + } else { + tmp =3D (*value & mask) << -shift; + } if (mr->subpage) { trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, = size); } else if (mr =3D=3D &io_mem_notdirty) { @@ -566,7 +590,7 @@ static MemTxResult access_with_adjusted_size(hwaddr add= r, hwaddr addr, uint64_t *value, unsigned size, - unsigned shift, + signed shift, uint64_t mask, MemTxAttrs attrs), MemoryRegion *mr, @@ -574,7 +598,9 @@ static MemTxResult access_with_adjusted_size(hwaddr add= r, { uint64_t access_mask; unsigned access_size; - unsigned i; + hwaddr access_addr; + unsigned offset; + signed shift; MemTxResult r =3D MEMTX_OK; =20 if (!access_size_min) { @@ -586,16 +612,20 @@ static MemTxResult access_with_adjusted_size(hwaddr a= ddr, =20 /* FIXME: support unaligned access? */ access_size =3D MAX(MIN(size, access_size_max), access_size_min); - access_mask =3D -1ULL >> (64 - access_size * 8); - if (memory_region_big_endian(mr)) { - for (i =3D 0; i < size; i +=3D access_size) { - r |=3D access_fn(mr, addr + i, value, access_size, - (size - access_size - i) * 8, access_mask, attrs); + access_mask =3D -1ULL >> (64 - size * 8); + access_addr =3D addr & ~(access_size - 1); + if (likely(size >=3D access_size)) { + offset =3D addr & (access_size - 1); + shift =3D access_size - size - offset; + if (!memory_region_big_endian(mr)) { + shift =3D -shift; } + r =3D access_fn(mr, access_addr, value, access_size, + shift * 8, access_mask, attrs); } else { - for (i =3D 0; i < size; i +=3D access_size) { - r |=3D access_fn(mr, addr + i, value, access_size, i * 8, - access_mask, attrs); + for (offset =3D 0; offset < size; offset +=3D access_size) { + r |=3D access_fn(mr, access_addr + offset, value, access_size, + offset * 8, access_mask, attrs); } } return r; --=20 2.16.3 From nobody Sat May 4 01:44:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1522891589739567.9492875957665; Wed, 4 Apr 2018 18:26:29 -0700 (PDT) Received: from localhost ([::1]:45565 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tfY-0007ql-Vj for importer@patchew.org; Wed, 04 Apr 2018 21:26:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55843) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tcG-00051V-2E for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3tcF-00030j-Bk for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:04 -0400 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:42055) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3tcF-00030T-7O for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:03 -0400 Received: by mail-qt0-x241.google.com with SMTP id j3so25283366qtn.9 for ; Wed, 04 Apr 2018 18:23:03 -0700 (PDT) Received: from x1.lan ([138.117.48.212]) by smtp.gmail.com with ESMTPSA id l124sm4940094qkc.1.2018.04.04.18.23.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Apr 2018 18:23:02 -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=EZqr7qRtrElLxXJVh2524I5iGRcDcOq8LcdMsv7BjTE=; b=gdXAggeI+2dBOo53cnfnAbV3y6ptzlgfFAWqVIEHAFxIQfk9xO4YIXyIxTcEwUdSsG qcJb21MJT+g82z7dg8INcSgfMnFE0KFQ47qgEPS53LznyVZ8d2rSIhkJvR+kvgvF0dM4 IHok8PIkGCirO9ZW8qoDDLwsgoxlwRwuuV7PT86gFSPkbVd55tJOf0cbq9DkurV2CYRz wgLtygsM4fdsct3vmkG35Z/kZWA/weeSxx+hOtvDaaO4ua/ASysZeRMNdKHvr0fhNuQk Ma0OKzkGPOLmR1aMfZP+Kj4rtIV9zH7i76D76kRDxYAyjPIVfP3U1VjgxGYmIb2t+PsK 7s2g== 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=EZqr7qRtrElLxXJVh2524I5iGRcDcOq8LcdMsv7BjTE=; b=UHEdj0wTuxYTLoiEWYmM0Q0jT/l6QkqmyZcg1lDTtC0NxZINUnKYCTj8cZMfl+WRl3 dvYANhau4wHd2D56PSAgFGZiG5NesF27gGaA6PBSoR4wIlD6l8AoLIRPG+2ZvQZhP9lu Z0ey/frPsYkJxImy26ptKnVZMfaeAOklRLHmdMpfzmCKP/glN18hBJ7UhqTfA425cL56 sECx9nISthPAX76mlyGGGUMCP66BCDGG88nvBhSmLRr7TExDAvffRibqerUsgk8Kc/zS Qre4OprxIAKG5yAREhaQyuXrEW5eg8kHTcy5BsbhChXLARm+cGJJOrHu3ERO6u2yBRC4 Va+g== X-Gm-Message-State: ALQs6tDYxGrLOgAT1AfmKePbSyUggYfP91LQNefj8OD9UF3mrtRC1xnc biNisuIyoGnbUHniFMrL9gY= X-Google-Smtp-Source: AIpwx499GL6CBYcbX2bE3qOkko5C/by/WHgNB7kNt9zavOwTmnnFtOrCy3DSISOj33qkmX75CqL51g== X-Received: by 10.200.27.216 with SMTP id m24mr30116081qtk.212.1522891382761; Wed, 04 Apr 2018 18:23:02 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Alexey Kardashevskiy , KONRAD Frederic Date: Wed, 4 Apr 2018 22:22:40 -0300 Message-Id: <20180405012241.25714-4-f4bug@amsat.org> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180405012241.25714-1-f4bug@amsat.org> References: <20180405012241.25714-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v2 3/4] memory: Fix memory_region 'priority' property sign X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Priorities can be negative, fix this limitation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memory.c b/memory.c index e77f9e4036..eaa5fa7f23 100644 --- a/memory.c +++ b/memory.c @@ -1258,7 +1258,7 @@ static void memory_region_initfn(Object *obj) memory_region_get_addr, NULL, /* memory_region_set_addr */ NULL, NULL, &error_abort); - object_property_add(OBJECT(mr), "priority", "uint32", + object_property_add(OBJECT(mr), "priority", "int32", memory_region_get_priority, NULL, /* memory_region_set_priority */ NULL, NULL, &error_abort); --=20 2.16.3 From nobody Sat May 4 01:44:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 152289159261635.84553668797582; Wed, 4 Apr 2018 18:26:32 -0700 (PDT) Received: from localhost ([::1]:45564 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tfY-0007qb-Hd for importer@patchew.org; Wed, 04 Apr 2018 21:26:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55858) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3tcJ-00054J-9A for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3tcH-00031Z-IF for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:07 -0400 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:38593) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3tcH-00031O-CB for qemu-devel@nongnu.org; Wed, 04 Apr 2018 21:23:05 -0400 Received: by mail-qk0-x242.google.com with SMTP id 132so24686791qkd.5 for ; Wed, 04 Apr 2018 18:23:05 -0700 (PDT) Received: from x1.lan ([138.117.48.212]) by smtp.gmail.com with ESMTPSA id l124sm4940094qkc.1.2018.04.04.18.23.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Apr 2018 18:23:04 -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=wQkOxcDOFOQBLqCc9maRdeRO3Oj+lPfBDQRue6UOXf0=; b=pwAD993alsy8jH/AU/C/24nkn3i3e/TWN8kGaywQwrK2S5Ex0ydK3sRyP5CClx6LRL sauCso1Sldo4VZSetDYbVfoOg00KE3zYEirkYzISAdtgiqPOVtVTFQxnWmZY8OWIeHVt v6KP0EcJC3P4rVIYO5Lf+Lb3ccCcJ4eWUKsnbrzdY4Z4Vv4cHhJ/bSMjV9zg1//dGGtZ 8wVuNAfm0UTc6wTjT+K2EkTpvXQBNqNKSg7R9+IXUA5E980c39NbgSzC4rlNgHio1nq+ TpNK5xavJRsd0WzKRf8ncGMCOVwkEBVIwE4u9vQSWLKJDvUYKHkuUWmNmy5wUqG96USG YjbA== 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=wQkOxcDOFOQBLqCc9maRdeRO3Oj+lPfBDQRue6UOXf0=; b=H0Gsi7Nf0AOyoLPL8wGxZFM7U9oqEauTgXA6cm11IDKxAsOoXO5ieuxAoCIvW51RfE NPg5SN5DdRSAWXjfN09dbWGICR9NauFlbeag/sDXZkGTbqgfVKYs/9ZwIUFSuSxh/t6G iiUM5kHUzmRhfzi+Yr7wqAMh2IEE3EoNy2N6183mAnhqoxe54q00VGAim2pVkMSYDm38 HatGOrCzdmO5mWV4Pcf2x1oZNka3uhd0E9yWUReM+3M+iDXHuXL9z+IhZp4He/O8R6vP dtFkKK5VNwzUGP5q56sve2eYG98UFdr7LFB5Gw+rTbe+DCAO4eRak402A7qHmv4WRQ0u 7R8A== X-Gm-Message-State: ALQs6tDx87axXOn/n82r1pYIayPKI3NpgC5L4Hf0v5/D8wKUYojNWII5 avMKOCrwBoHqMzGb2nUuijw= X-Google-Smtp-Source: AIpwx4+2U/SoNFs9O/ntmUhyNEt0VI2LNtJf7J/jNcfAc9WgysFF8Ijhji2qIE3z7CdMvGrIoqu1Eg== X-Received: by 10.55.105.195 with SMTP id e186mr28180746qkc.322.1522891384839; Wed, 04 Apr 2018 18:23:04 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Alexey Kardashevskiy , KONRAD Frederic Date: Wed, 4 Apr 2018 22:22:41 -0300 Message-Id: <20180405012241.25714-5-f4bug@amsat.org> X-Mailer: git-send-email 2.16.3 In-Reply-To: <20180405012241.25714-1-f4bug@amsat.org> References: <20180405012241.25714-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [RFC PATCH v2 4/4] memory: Add memory_region_set_priority() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- Sadly I'm missing something, this does not work. memory.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/memory.c b/memory.c index eaa5fa7f23..ae45ea7779 100644 --- a/memory.c +++ b/memory.c @@ -1225,6 +1225,22 @@ static void memory_region_get_priority(Object *obj, = Visitor *v, visit_type_int32(v, name, &value, errp); } =20 +static void memory_region_set_priority(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) +{ + MemoryRegion *mr =3D MEMORY_REGION(obj); + int32_t priority; + Error *local_err =3D NULL; + + visit_type_int32(v, name, &priority, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } + mr->priority =3D priority; +} + static void memory_region_get_size(Object *obj, Visitor *v, const char *na= me, void *opaque, Error **errp) { @@ -1260,7 +1276,7 @@ static void memory_region_initfn(Object *obj) NULL, NULL, &error_abort); object_property_add(OBJECT(mr), "priority", "int32", memory_region_get_priority, - NULL, /* memory_region_set_priority */ + memory_region_set_priority, NULL, NULL, &error_abort); object_property_add(OBJECT(mr), "size", "uint64", memory_region_get_size, --=20 2.16.3