diff options
author | jhb <jhb@FreeBSD.org> | 2008-03-07 13:36:38 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-03-07 13:36:38 +0000 |
commit | 1607c7dea2a74753bb709750676ee6614b1f22fd (patch) | |
tree | c1311f8cd9f24b9dbcc849f73902d4158fd7d6c6 /lib/libc/posix1e/mac_set.c | |
parent | 56315a2bc3947503a7241f0b679890f0d3ff54fe (diff) | |
download | FreeBSD-src-1607c7dea2a74753bb709750676ee6614b1f22fd.zip FreeBSD-src-1607c7dea2a74753bb709750676ee6614b1f22fd.tar.gz |
Calculate the number of pages the GATT spans when reading from each page
to flush the TLB instead of hardcoding a size of 33 pages. Apertures of
32MB and 64MB only use a 16 page GATT and an aperture of 128MB only uses
a 32 page GATT, so without this the code could walk off the end of the
pointer and cause a page fault if the next page was unmapped. Also, for
aperture sizes > 128MB, not all of the pages would be read. The Linux
driver has the same bug.
MFC after: 1 week
Tested by: Frédéric PRACA frederic.praca of freebsd-fr.org
Diffstat (limited to 'lib/libc/posix1e/mac_set.c')
0 files changed, 0 insertions, 0 deletions