From owner-svn-src-projects@FreeBSD.ORG Mon Jul 6 07:42:54 2009 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 D5576106564A; Mon, 6 Jul 2009 07:42:54 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C4BA68FC19; Mon, 6 Jul 2009 07:42:54 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n667gsfr072069; Mon, 6 Jul 2009 07:42:54 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n667gsvS072067; Mon, 6 Jul 2009 07:42:54 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200907060742.n667gsvS072067@svn.freebsd.org> From: Warner Losh Date: Mon, 6 Jul 2009 07:42:54 +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: r195393 - projects/mips/sys/mips/mips 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: Mon, 06 Jul 2009 07:42:55 -0000 Author: imp Date: Mon Jul 6 07:42:54 2009 New Revision: 195393 URL: http://svn.freebsd.org/changeset/base/195393 Log: (1) Improvements for SB1. only allow real memory to be accessed. (2) make compile n64 by using more-proper casts. Submitted by: Neelkanth Natu (1) Modified: projects/mips/sys/mips/mips/mem.c Modified: projects/mips/sys/mips/mips/mem.c ============================================================================== --- projects/mips/sys/mips/mips/mem.c Mon Jul 6 02:27:03 2009 (r195392) +++ projects/mips/sys/mips/mips/mem.c Mon Jul 6 07:42:54 2009 (r195393) @@ -101,8 +101,15 @@ memrw(dev, uio, flags) vm_paddr_t pa; register int o; +#ifdef CPU_SB1 + if (!is_physical_memory(v) || + !is_physical_memory(roundup2(v, PAGE_SIZE) - 1)) { + return (EFAULT); + } +#else if (v + c > (SDRAM_ADDR_START + ctob(physmem))) return (EFAULT); +#endif if (is_cacheable_mem(v) && is_cacheable_mem(v + c)) { struct fpage *fp; @@ -117,7 +124,7 @@ memrw(dev, uio, flags) va = pmap_map_fpage(pa, fp, FALSE); o = (int)uio->uio_offset & PAGE_MASK; c = (u_int)(PAGE_SIZE - - ((int)iov->iov_base & PAGE_MASK)); + ((uintptr_t)iov->iov_base & PAGE_MASK)); c = min(c, (u_int)(PAGE_SIZE - o)); c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)(va + o), (int)c, uio); @@ -158,7 +165,7 @@ memrw(dev, uio, flags) return EFAULT; if (!kernacc( - (caddr_t)(int)uio->uio_offset, c, + (caddr_t)(uintptr_t)uio->uio_offset, c, uio->uio_rw == UIO_READ ? VM_PROT_READ : VM_PROT_WRITE)) return (EFAULT);