From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38694) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5zfo-00009O-LY for qemu-devel@nongnu.org; Fri, 09 Mar 2012 08:16:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S5zfS-00016p-54 for qemu-devel@nongnu.org; Fri, 09 Mar 2012 08:15:56 -0500 Received: from smtp131.dfw.emailsrvr.com ([67.192.241.131]:45804) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5zfS-00016j-09 for qemu-devel@nongnu.org; Fri, 09 Mar 2012 08:15:34 -0500 Message-ID: <4F5A0288.6090809@calxeda.com> Date: Fri, 09 Mar 2012 07:15:52 -0600 From: Mark Langsdorf MIME-Version: 1.0 References: <1331225951-31306-1-git-send-email-mark.langsdorf@calxeda.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] use an unsigned long for the max_sz parameter in load_image_targphys List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: "david@gibson.dropbear.id.au" , "qemu-devel@nongnu.org" , "agraf@suse.de" On 03/09/2012 03:25 AM, Markus Armbruster wrote: > Mark Langsdorf writes: > >> Allow load_image_targphys to load files on systems with more than 2G of >> emulated memory by changing the max_sz parameter from an int to an >> unsigned long. >> >> Signed-off-by: Mark Langsdorf >> --- >> hw/loader.c | 4 ++-- >> hw/loader.h | 3 ++- >> 2 files changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/hw/loader.c b/hw/loader.c >> index 415cdce..a5333d0 100644 >> --- a/hw/loader.c >> +++ b/hw/loader.c >> @@ -103,9 +103,9 @@ ssize_t read_targphys(const char *name, >> >> /* return the size or -1 if error */ >> int load_image_targphys(const char *filename, >> - target_phys_addr_t addr, int max_sz) >> + target_phys_addr_t addr, unsigned long max_sz) >> { >> - int size; >> + unsigned long size; >> >> size = get_image_size(filename); >> if (size > max_sz) { > > get_image_size() returns int. How does widening size and max_sz here > improve things? If max_sz is greater than 2GB, then: int max_sz = 0xc0000000; int size = 0x300; if (size > max_sz) return -1; returns -1, even though size is much less than max_sz. doing it my way: unsigned long max_sz = 0xc0000000; unsigned long size = 0x300; if (size > max_sz) return -1; does not return -1. --Mark Langsdorf Calxeda, Inc.