From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MrsSm-0000Iw-Hw for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:02:48 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MrsSi-0000IZ-5q for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:02:48 -0400 Received: from [199.232.76.173] (port=52363 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MrsSh-0000IW-VW for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:02:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38534) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MrsSh-0004Pn-27 for qemu-devel@nongnu.org; Sun, 27 Sep 2009 08:02:43 -0400 Date: Sun, 27 Sep 2009 14:00:41 +0200 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] Re: [PATCHv2] qemu: target library, use it in msix Message-ID: <20090927120041.GB24031@redhat.com> References: <20090923200635.GA21246@redhat.com> <20090927082020.GA23513@redhat.com> <4ABF4110.80300@redhat.com> <20090927114459.GA24031@redhat.com> <4ABF52A5.5080409@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4ABF52A5.5080409@redhat.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: Blue Swirl , qemu-devel@nongnu.org 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]$ ? > or target_phys_addr_t input and expect it to work. Not if it's called target_page_align32 :) >>> We can have >>> >>> target_phys_addr_t target_phys_page_align(); >>> target_ulong_t target_virt_page_align(); >>> >> Right. And also >> target_page_align32(); >> target_page_align64(); >> >> We only use a 32 bit version now (passed value is a constant), >> so I think I'll only implement it, and we'll add more when >> they are used. >> > > 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. > -- > Do not meddle in the internals of kernels, for they are subtle and quick to panic.