From owner-svn-src-projects@FreeBSD.ORG Sat Jan 30 18:04:57 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48E801065670; Sat, 30 Jan 2010 18:04:57 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1F9078FC0C; Sat, 30 Jan 2010 18:04:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0UI4vgj066444; Sat, 30 Jan 2010 18:04:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0UI4vui066441; Sat, 30 Jan 2010 18:04:57 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201001301804.o0UI4vui066441@svn.freebsd.org> From: Nathan Whitehorn Date: Sat, 30 Jan 2010 18:04:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r203202 - projects/ppc64/sys/powerpc/mambo X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Jan 2010 18:04:57 -0000 Author: nwhitehorn Date: Sat Jan 30 18:04:56 2010 New Revision: 203202 URL: http://svn.freebsd.org/changeset/base/203202 Log: Make Mambo disk behave slightly better in the case of very large (> 4 GB) disk images. It still has issues. Modified: projects/ppc64/sys/powerpc/mambo/mambo_disk.c projects/ppc64/sys/powerpc/mambo/mambocall.h Modified: projects/ppc64/sys/powerpc/mambo/mambo_disk.c ============================================================================== --- projects/ppc64/sys/powerpc/mambo/mambo_disk.c Sat Jan 30 18:00:16 2010 (r203201) +++ projects/ppc64/sys/powerpc/mambo/mambo_disk.c Sat Jan 30 18:04:56 2010 (r203202) @@ -112,7 +112,6 @@ mambodisk_attach(device_t dev) d->d_open = mambodisk_open; d->d_close = mambodisk_close; d->d_strategy = mambodisk_strategy; - // d->d_dump = mambodisk_dump; Need polling mmc layer d->d_name = "mambodisk"; d->d_drv1 = sc; d->d_maxsize = MAXPHYS; /* Maybe ask bridge? */ @@ -123,7 +122,7 @@ mambodisk_attach(device_t dev) d->d_unit = device_get_unit(dev); d->d_mediasize = mambocall(MAMBO_DISK_INFO,MAMBO_INFO_DEVSZ,d->d_unit) - * 1024; /* Mambo gives size in KB */ + * 1024ULL; /* Mambo gives size in KB */ mb = d->d_mediasize >> 20; /* 1MiB == 1 << 20 */ unit = 'M'; @@ -197,10 +196,11 @@ mambodisk_task(void *arg) { struct mambodisk_softc *sc = (struct mambodisk_softc*)arg; struct bio *bp; - int sz, result; + size_t sz; + int result; daddr_t block, end; device_t dev; - uint32_t unit; + u_long unit; dev = sc->dev; unit = device_get_unit(dev); @@ -220,7 +220,7 @@ mambodisk_task(void *arg) sz = sc->disk->d_sectorsize; end = bp->bio_pblkno + (bp->bio_bcount / sz); for (block = bp->bio_pblkno; block < end;) { - uint32_t numblocks; + u_long numblocks; char *vaddr = bp->bio_data + (block - bp->bio_pblkno) * sz; @@ -230,10 +230,10 @@ mambodisk_task(void *arg) if (bp->bio_cmd == BIO_READ) { result = mambocall(MAMBO_DISK_READ, vaddr, - (uint32_t)block, (numblocks << 16) | unit); + (u_long)block, (numblocks << 16) | unit); } else if (bp->bio_cmd == BIO_WRITE) { result = mambocall(MAMBO_DISK_WRITE, vaddr, - (uint32_t)block, (numblocks << 16) | unit); + (u_long)block, (numblocks << 16) | unit); } else { result = 1; } Modified: projects/ppc64/sys/powerpc/mambo/mambocall.h ============================================================================== --- projects/ppc64/sys/powerpc/mambo/mambocall.h Sat Jan 30 18:00:16 2010 (r203201) +++ projects/ppc64/sys/powerpc/mambo/mambocall.h Sat Jan 30 18:04:56 2010 (r203202) @@ -30,6 +30,6 @@ #ifndef _MAMBO_MAMBOCALL_H_ #define _MAMBO_MAMBOCALL_H_ -int mambocall(int op, ...); +long mambocall(int op, ...); #endif /* _MAMBO_MAMBOCALL_H_ */