* PTE question
@ 2002-09-19 1:52 Mehdi Hashemian
0 siblings, 0 replies; only message in thread
From: Mehdi Hashemian @ 2002-09-19 1:52 UTC (permalink / raw)
To: linux-kernel
Hello,
Appreciate if someone checks this piece of code. I try to diable cache and
write-through bits in PTE but somehow PTE address is within first 16MB of
memory (DMA_ZONE) and later when Kernel tries to allocate more pages, it
chooses the same address range and this piece of code corrupts memory by
ORing these bits. Any help appreciated!
{
addr = __get_dma_pages(priority, order);
int npages = __get_npages(order);
unsigned long addr2 = addr;
pgd_t *pgd;
pmd_t *pmd;
pte_t *pte;
int i;
for (i = 0; i < npages; i++)
{
pgd = pgd_offset(&init_mm, addr2);
pmd = pmd_offset(pgd, addr2);
pte = pte_offset(pmd, addr2);
pte_val(*pte) |= (_PAGE_PCD | _PAGE_PWT);
addr2 += PAGE_SIZE;
}
__flush_tlb_all();
}
Mehdi
_________________________________________________________________
Join the worlds largest e-mail service with MSN Hotmail.
http://www.hotmail.com
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-09-19 1:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-19 1:52 PTE question Mehdi Hashemian
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®