From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFQxY-0004UO-TB for qemu-devel@nongnu.org; Fri, 30 Aug 2013 11:50:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VFQxQ-00081h-GT for qemu-devel@nongnu.org; Fri, 30 Aug 2013 11:50:04 -0400 Sender: Paolo Bonzini Message-ID: <5220BF0D.7040002@redhat.com> Date: Fri, 30 Aug 2013 17:49:33 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1375100921-12990-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <1375100921-12990-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] PING Re: [PATCH for-1.6] exec: fix writing to MMIO area with non-power-of-two length List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-stable@nongnu.org Cc: alxchk@gmail.com, qemu-devel@nongnu.org Il 29/07/2013 14:28, Paolo Bonzini ha scritto: > The problem is introduced by commit 2332616 (exec: Support 64-bit > operations in address_space_rw, 2013-07-08). Before that commit, > memory_access_size would only return 1/2/4. > > Since alignment is already handled above, reduce l to the largest > power of two that is smaller than l. > > Reported-by: Oleksii Shevchuk > Tested-by: Oleksii Shevchuk > Signed-off-by: Paolo Bonzini > --- > exec.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/exec.c b/exec.c > index c4f2894..e122c81 100644 > --- a/exec.c > +++ b/exec.c > @@ -1925,6 +1925,9 @@ static int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr) > if (l > access_size_max) { > l = access_size_max; > } > + if (l & (l - 1)) { > + l = 1 << (qemu_fls(l) - 1); > + } > > return l; > } > Ping, and adding qemu-stable. Paolo