Date: Fri, 27 Oct 2006 05:16:37 +0900 (JST) From: Hiroki Sato <hrs@FreeBSD.org> To: tanimura@FreeBSD.org, re@FreeBSD.org Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/pci agp.c Message-ID: <20061027.051637.115993470.hrs@allbsd.org> In-Reply-To: <200610150504.k9F548ld008933@repoman.freebsd.org> References: <200610150504.k9F548ld008933@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Seigo Tanimura <tanimura@FreeBSD.org> wrote
in <200610150504.k9F548ld008933@repoman.freebsd.org>:
ta> tanimura 2006-10-15 05:04:07 UTC
ta>
ta> FreeBSD src repository
ta>
ta> Modified files:
ta> sys/pci agp.c
ta> Log:
ta> Fix the wraparound of memsize >=2GB.
ta>
ta> Revision Changes Path
ta> 1.54 +3 -2 src/sys/pci/agp.c
I have doubt about this change because int memsize->u_int memsize
does not solve the problem directly; memsize never occurs wraparound
actually and an implicit cast to unsigned int just makes the problem
invisible. The questionable code fragment in agp.c is the following:
memsize = ptoa(Maxmem) >> 20;
for (i = 0; i < agp_max_size; i++) {
if (memsize <= agp_max[i][0])
break;
}
ptoa(Maxmem)>>20 will occur a wraparound problem when Maxmem>=2GB, so
this part should be fixed instead. BTW, this should be a problem
only on i386 since the definition of ptoa() is "#define ptoa(x) ((x)
<< PAGE_SHIFT)". The other platforms use a cast like "#define
ptoa(x) ((unsigned long)(x) << PAGE_SHIFT)".
I think it can be solved by using "ptoa((unsigned long)Maxmem)" or
so, but I am not sure if this is reasonable because there are more
notional types like vm_paddr_t. If "#define ptoa(x) ((vm_paddr_t)(x)
<< PAGE_SHIFT)" works fine on all platforms, it looks more reasonable
to me, but I have a misunderstanding?
--
| Hiroki SATO
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQBFQRenTyzT2CeTzy0RAicwAJ4j9uhCcWHrdHHt50rn7kpgtKkOtQCfZJzg
WOMIuEdSAL9jIJs1aR+NKGY=
=T7Vu
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061027.051637.115993470.hrs>
