Disclaimer: I'm not a kernel hacker, just a hacker. This may or may not work for you and I take no responsibility for any damage using this may cause.
That said, below are the diffs that work for me.
Bob
----------------------------------------
1164,1166c1164
< // return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
< return set_pages_uc(virt_to_page(virt), pages);
<
---
> return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
1893,1894c1891
< // return cap_t(current->cap_effective);
< return *(current->cap_effective.cap);
---
> return cap_t(current->cap_effective);
1902,1903c1899
< // cap_t(current->cap_effective) = cap;
< *(current->cap_effective.cap) = cap;
---
> cap_t(current->cap_effective) = cap;
2487c2483
< // flush_tlb_page(vma, addr);
---
> flush_tlb_page(vma, addr);
That said, below are the diffs that work for me.
Bob
----------------------------------------
1164,1166c1164
< // return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
< return set_pages_uc(virt_to_page(virt), pages);
<
---
> return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
1893,1894c1891
< // return cap_t(current->cap_effective);
< return *(current->cap_effective.cap);
---
> return cap_t(current->cap_effective);
1902,1903c1899
< // cap_t(current->cap_effective) = cap;
< *(current->cap_effective.cap) = cap;
---
> cap_t(current->cap_effective) = cap;
2487c2483
< // flush_tlb_page(vma, addr);
---
> flush_tlb_page(vma, addr);
Comment