Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
Show First 20 Lines • Show All 372 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* Local functions | * Local functions | ||||
*/ | */ | ||||
static void | static void | ||||
pagelist_page_free(vm_page_t pp) | pagelist_page_free(vm_page_t pp) | ||||
{ | { | ||||
vm_page_lock(pp); | vm_page_lock(pp); | ||||
if (vm_page_unwire(pp, PQ_INACTIVE) && pp->object == NULL) | vm_page_unwire(pp, PQ_INACTIVE); | ||||
vm_page_free(pp); | |||||
vm_page_unlock(pp); | vm_page_unlock(pp); | ||||
} | } | ||||
/* There is a potential problem with partial cache lines (pages?) | /* There is a potential problem with partial cache lines (pages?) | ||||
** at the ends of the block when reading. If the CPU accessed anything in | ** at the ends of the block when reading. If the CPU accessed anything in | ||||
** the same line (page?) then it may have pulled old data into the cache, | ** the same line (page?) then it may have pulled old data into the cache, | ||||
** obscuring the new data underneath. We can solve this by transferring the | ** obscuring the new data underneath. We can solve this by transferring the | ||||
** partial cache lines separately, and allowing the ARM to copy into the | ** partial cache lines separately, and allowing the ARM to copy into the | ||||
▲ Show 20 Lines • Show All 222 Lines • Show Last 20 Lines |