Date: Thu, 24 May 2012 21:07:11 +0000 (UTC) From: Marcel Moolenaar <marcel@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r235934 - head/sys/powerpc/mpc85xx Message-ID: <201205242107.q4OL7B7p060354@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marcel Date: Thu May 24 21:07:10 2012 New Revision: 235934 URL: http://svn.freebsd.org/changeset/base/235934 Log: Just return if the size of the window is 0. This can happen when the FDT does not define all ranges possible for a particular node (e.g. PCI). While here, only update the trgt_mem and trgt_io pointers if there's no error. This avoids that we knowingly write an invalid target (= -1). Modified: head/sys/powerpc/mpc85xx/mpc85xx.c Modified: head/sys/powerpc/mpc85xx/mpc85xx.c ============================================================================== --- head/sys/powerpc/mpc85xx/mpc85xx.c Thu May 24 21:01:35 2012 (r235933) +++ head/sys/powerpc/mpc85xx/mpc85xx.c Thu May 24 21:07:10 2012 (r235934) @@ -88,6 +88,9 @@ law_enable(int trgt, u_long addr, u_long uint32_t bar, sr; int i, law_max; + if (size == 0) + return (0); + law_max = law_getmax(); bar = _LAW_BAR(addr); sr = _LAW_SR(trgt, size); @@ -168,7 +171,10 @@ law_pci_target(struct resource *res, int default: rv = ENXIO; } - *trgt_mem = *trgt_io = trgt; + if (rv == 0) { + *trgt_mem = trgt; + *trgt_io = trgt; + } return (rv); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205242107.q4OL7B7p060354>