From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MrsjK-0005sh-0r for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:19:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MrsjE-0005sL-KL for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:19:52 -0400 Received: from [199.232.76.173] (port=33750 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MrsjE-0005sI-FS for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:19:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53918) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MrsjE-00075L-2u for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:19:48 -0400 Message-ID: <4ABF585D.7000201@redhat.com> Date: Sun, 27 Sep 2009 14:19:41 +0200 From: Avi Kivity MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCHv2] qemu: target library, use it in msix References: <20090923200635.GA21246@redhat.com> <20090927082020.GA23513@redhat.com> <4ABF4110.80300@redhat.com> <20090927114459.GA24031@redhat.com> <4ABF52A5.5080409@redhat.com> <20090927120041.GB24031@redhat.com> In-Reply-To: <20090927120041.GB24031@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Blue Swirl , qemu-devel@nongnu.org On 09/27/2009 02:00 PM, Michael S. Tsirkin wrote: > On Sun, Sep 27, 2009 at 01:55:17PM +0200, Avi Kivity wrote: > >> On 09/27/2009 01:45 PM, Michael S. Tsirkin wrote: >> >>> >>> >>>>> Thinking about this some more, this function just says "align a value to >>>>> page size". The value might not be a bus address at all, and indeed with >>>>> msix use, it is not. Makes sense? >>>>> >>>>> >>>>> >>>> In any case restricting it to unsigned invites truncation. >>>> >>>> >>> If the value we are aligning fits in 32 bit, so does the aligned value. >>> >>> >> It's perfectly reasonable to call a such a function with a >> target_ulong_t >> > [mst@tuck qemu]$ grep -rIi target_ulong_t . > [mst@tuck qemu]$ > > ? > > target_ulong. >> or target_phys_addr_t input and expect it to work. >> > Not if it's called target_page_align32 :) > You generally don't know the size of quantities you align. >> How would the caller know what size argument they have? They usually >> have a target_phys_addr_t or a target_ulong_t. >> > In practice, the only user is now msix and it does not. It has 0x1000 > as a constant parameter. For target_phys_addr_t users if we ever have > them, we'll just add target_phys_page_align. Generally it's unusual for > devices to care about size of target physical page. > I'd fill better with uint64_t, at least that won't truncate. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic.