From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752015AbbIKIeV (ORCPT ); Fri, 11 Sep 2015 04:34:21 -0400 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:43388 "EHLO e06smtp10.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751064AbbIKIeU (ORCPT ); Fri, 11 Sep 2015 04:34:20 -0400 X-Helo: d06dlp01.portsmouth.uk.ibm.com X-MailFrom: cornelia.huck@de.ibm.com X-RcptTo: linux-kernel@vger.kernel.org Date: Fri, 11 Sep 2015 10:31:59 +0200 From: Cornelia Huck To: Paolo Bonzini Cc: Jason Wang , gleb@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, mst@redhat.com Subject: Re: [PATCH V4 3/4] kvm: fix zero length mmio searching Message-ID: <20150911103159.0c94f7e3.cornelia.huck@de.ibm.com> In-Reply-To: <55F29041.80306@redhat.com> References: <1441941457-23630-1-git-send-email-jasowang@redhat.com> <1441941457-23630-4-git-send-email-jasowang@redhat.com> <55F29041.80306@redhat.com> Organization: IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Martina Koederitz =?UTF-8?B?R2VzY2jDpGZ0c2bDvGhydW5nOg==?= Dirk Wittkopp Sitz der Gesellschaft: =?UTF-8?B?QsO2Ymxpbmdlbg==?= Registergericht: Amtsgericht Stuttgart, HRB 243294 X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15091108-0041-0000-0000-0000058FC1FE Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 11 Sep 2015 10:26:41 +0200 Paolo Bonzini wrote: > On 11/09/2015 05:17, Jason Wang wrote: > > + int len = r2->len ? r1->len : 0; > > + > > if (r1->addr < r2->addr) > > return -1; > > - if (r1->addr + r1->len > r2->addr + r2->len) > > + if (r1->addr + len > r2->addr + r2->len) > > return 1; > > Perhaps better: > > gpa_t addr1 = r1->addr; > gpa_t addr2 = r2->addr; > > if (addr1 < addr2) > return -1; > > /* If r2->len == 0, match the exact address. If r2->len != 0, > * accept any overlapping write. Any order is acceptable for > * overlapping ranges, because kvm_io_bus_get_first_dev ensures > * we process all of them. > */ > if (r2->len) { > addr1 += r1->len; > addr2 += r2->len; > } > > if (addr1 > addr2) > return 1; > > return 0; > +1 to documenting what the semantics are :)