From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZV9KU-00029a-Pm for qemu-devel@nongnu.org; Thu, 27 Aug 2015 22:23:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZV9KR-0006sO-Hj for qemu-devel@nongnu.org; Thu, 27 Aug 2015 22:23:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51160) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZV9KR-0006sA-Bs for qemu-devel@nongnu.org; Thu, 27 Aug 2015 22:23:43 -0400 Message-ID: <55DFC62A.6050409@redhat.com> Date: Fri, 28 Aug 2015 10:23:38 +0800 From: Jason Wang MIME-Version: 1.0 References: <55DE970B.6040807@redhat.com> <20150827135126-mutt-send-email-mst@redhat.com> <20150827140715-mutt-send-email-mst@redhat.com> <20150827151601-mutt-send-email-mst@redhat.com> <20150827152348-mutt-send-email-mst@redhat.com> <20150827152902-mutt-send-email-mst@redhat.com> <20150827151032.3daebb92@bahia.local> In-Reply-To: <20150827151032.3daebb92@bahia.local> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/2] memory: allow zero size for adjust_endianness() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz , "Michael S. Tsirkin" Cc: Peter Maydell , QEMU Developers , Paolo Bonzini On 08/27/2015 09:10 PM, Greg Kurz wrote: > On Thu, 27 Aug 2015 15:30:55 +0300 > "Michael S. Tsirkin" wrote: > >> On Thu, Aug 27, 2015 at 01:27:54PM +0100, Peter Maydell wrote: >>> On 27 August 2015 at 13:25, Michael S. Tsirkin wrote: >>>> On Thu, Aug 27, 2015 at 01:20:52PM +0100, Peter Maydell wrote: >>>>> On 27 August 2015 at 13:17, Michael S. Tsirkin wrote: >>>>>> Basically the point is that ABI is extended to make >>>>>> ioeventfd with len = 0 mean "any length". >>>>>> 0 is thus not meaningless anymore. >>>>> But how can you do adjustment for incorrect endianness >>>>> if you don't know the size of the data that you're >>>>> trying to work with? That's why this switch insists >>>>> that the size is 1, 2, 4 or 8. >>>> For kvm at least, "any length" implies "any data". >>>> So data is eventually discarded, we don't really need >>>> to adjust it for endian-ness. >>> I'm still confused. If you have data it needs to be >>> adjusted. If we're not actually doing anything with >>> the data why are we calling this function in the first >>> place? >>> >>> -- PMM >> I guess you could skip calls to adjust_endianness when len == 0, >> that should work just as well. >> > adjust_endianness() is called from 4 different locations: > - memory_region_dispatch_read() > - memory_region_dispatch_write() > - memory_region_add_eventfd() > - memory_region_del_eventfd() > > Since the issue was raised for the eventfd ones, it makes more sense to check > in the caller indeed... and to preserve other paths. > > Cheers. > > -- > Greg > Yes, this seems fine.