Displaying 1 result from an estimated 1 matches for "pg_level_2m".
Did you mean:
pg_level_1g
2016 Feb 09
0
mmiotrace fix
...d *kmmio_page_list(unsigned long addr)
{
- return &kmmio_page_table[hash_long(page, KMMIO_PAGE_HASH_BITS)];
+ unsigned int l;
+ pte_t *pte = lookup_address(addr, &l);
+ if (!pte)
+ return NULL;
+
+ switch (l) {
+ case PG_LEVEL_4K:
+ addr &= (~(u64)(0x0)) << 12;
+ break;
+ case PG_LEVEL_2M:
+ addr &= (~(u64)(0x0)) << 21;
+ break;
+ case PG_LEVEL_1G:
+ addr &= (~(u64)(0x0)) << 30;
+ break;
+ default:
+ return NULL;
+ }
+ return &kmmio_page_table[hash_long(addr, KMMIO_PAGE_HASH_BITS)];
}
/* Accessed per-cpu */
@@ -98,15 +116,33 @@
}
/* You must be h...