|
@@ -282,8 +282,15 @@ void kvmppc_init_lpid(unsigned long nr_lpids);
|
|
|
|
|
|
static inline void kvmppc_mmu_flush_icache(pfn_t pfn)
|
|
|
{
|
|
|
- /* Clear i-cache for new pages */
|
|
|
struct page *page;
|
|
|
+ /*
|
|
|
+ * We can only access pages that the kernel maps
|
|
|
+ * as memory. Bail out for unmapped ones.
|
|
|
+ */
|
|
|
+ if (!pfn_valid(pfn))
|
|
|
+ return;
|
|
|
+
|
|
|
+ /* Clear i-cache for new pages */
|
|
|
page = pfn_to_page(pfn);
|
|
|
if (!test_bit(PG_arch_1, &page->flags)) {
|
|
|
flush_dcache_icache_page(page);
|