ihk_mc_pt_lookup_pte + pte_get_phys will get us the physical address
for the start of the page we're looking at.
Re-offset it by position within buffer.
If the vaddr we consider is not at the start of a page, we could skip
over (smaller, not contigous) areas.
For example consider this segment of virtual memory:
[ 2MB | 4k | 4k | ... ]
Starting at 1MB offset, we would get a pgsize of 2MB so would skip
straight over 1MB worth of 4k pages.
New loop now takes into account pages not physically contiguous.
Also some minor improvements, e.g. make the spin_lock used more locally,
reuse a group we had if we had one, etc.
user_exp_rcv_invalid is only used together with the mmu cache
(its purpose is the delayed freeing of tids that were invalidated in cache)
Since we do not use that cache, the function can go
This implements a skeleton setup function and call it on ioctl
Many missing points:
- missing pci mapping to make setup work
- no clear (passed to linux, so will likely bug out)
- missing locks/safe-guards
Conflicts:
kernel/Makefile.build.in