Thread (41 messages) 41 messages, 6 authors, 2011-11-11

[PATCH v8 13/16] ARM: LPAE: Add identity mapping support for the 3-level page table format

From: Will Deacon <hidden>
Date: 2011-11-11 11:58:18
Also in: lkml

On Fri, Nov 11, 2011 at 11:36:01AM +0000, Catalin Marinas wrote:
On Thu, Nov 10, 2011 at 10:55:17PM +0000, Russell King - ARM Linux wrote:
quoted
On Mon, Nov 07, 2011 at 04:16:55PM +0000, Catalin Marinas wrote:
quoted
+		pmd += pmd_index(addr);
+	} else
+		pmd = pmd_offset(pud, addr);
+
+	do {
+		next = pmd_addr_end(addr, end);
+		*pmd = __pmd((addr & PMD_MASK) | prot);
+		flush_pmd_entry(pmd);
+	} while (pmd++, addr = next, addr != end);
+}
+#else	/* !CONFIG_ARM_LPAE */
I'm not convinced about the wiseness of this.  One of the places where
this code is called is from the reboot paths, which can happen in atomic
context.  Trying to allocate memory in such a context is going to lead
to problems, especially if support for panic'ing on OOM, and rebooting
on panic'ing are both enabled.
A solution would be to have pre-set page table for identity mappings
(which may even come in handy for power management) and avoid the
allocation in idmap.c.
Yup, that's what I do in my latest kexec series (v5) so this problem goes
away then.
quoted
Therefore, I think this patch depends on the work Will has been doing to
re-structure the kexec and restart support.
I think Will can rebase his patches on top of mine (I touched this file
first :)).
Haha, but my code doesn't depend on yours in order to work correctly!

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help