When building an arm64 kernel with a 16K page size, I tripped over a few compile time assertions in the hyperV driver that break the build when a PAGE_SIZE other than 4k is used.
It appears that hyperV is tied to a 4K page size. For simplicity, change the constants to refer to 4096 rather than PAGE_SIZE, and fail the device probe if the PAGE_SIZE != 4k