From: Jan-Benedict G. <jb...@us...> - 2005-04-25 09:19:04
|
Update of /cvsroot/linux-vax/kernel-2.5/arch/vax/mm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30302/mm Modified Files: ioremap.c Log Message: - Some more __iomem related stuff. Index: ioremap.c =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/arch/vax/mm/ioremap.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ioremap.c 23 Jan 2003 23:06:51 -0000 1.7 +++ ioremap.c 25 Apr 2005 09:18:48 -0000 1.8 @@ -10,7 +10,7 @@ */ /* The i386 code maps a physical range by allocating a new vm area - (which seems to have a full 3-level page table structure) and + (which seems to have a full 3-level page table structure) and then fixing the PTEs to point to the specified physical region. We can't do this right now in VAXland because we haven't got the @@ -22,8 +22,8 @@ Dynamically expanding the system page table _may_ be possible, but would require enough contiguous physical memory to hold the - complete, larger table while we copy the current PTEs. I - suspect that it might not work in the general case, because I + complete, larger table while we copy the current PTEs. I + suspect that it might not work in the general case, because I have a feeling that we won't be able to notify everything that needs to know when the SPT base addr changes. (Scatter/gather hardware might be one example.) @@ -32,10 +32,10 @@ 1. When creating the initial system page table, we allocate a certain number of spare PTEs at the end of the table to - be used for mapping IO space. + be used for mapping IO space. 2. Each of these PTEs is be marked INVALID. A PTE in this - range which is INVALID is available for use for IO space + range which is INVALID is available for use for IO space mapping, one which is VALID is already in use. 3. When a driver wants to map a range of IO space, we work @@ -100,7 +100,6 @@ } } } - if ((p - start_pte) != num_ptes) { /* Unable to find contiguous chunk of IOMAP PTEs */ @@ -116,7 +115,7 @@ for (i = 0; i < num_ptes; i++) { pfn = (phys_start >> PAGE_SHIFT) + i; set_pte(start_pte + i, pfn_pte(pfn, __pgprot(_PAGE_VALID | _PAGE_KW)) ); - + /* fixme: tlb flushes for other pagelets */ __flush_tlb_one(virt_start + (i<<PAGE_SHIFT)); } |