On 03.04.2025 18:20, Oleksii Kurochko wrote:On 4/1/25 6:04 PM, Jan Beulich wrote:On 01.04.2025 17:58, Oleksii Kurochko wrote:On 3/31/25 6:14 PM, Jan Beulich wrote:On 31.03.2025 17:20, Oleksii Kurochko wrote:+ _AC(XEN_VIRT_START, UL) >> vpn1_shift; + const unsigned long xen_virt_end_vpn = + xen_virt_starn_vpn + ((XEN_VIRT_SIZE >> vpn1_shift) - 1); + if ((va >= DIRECTMAP_VIRT_START) && (va <= DIRECTMAP_VIRT_END)) return directmapoff_to_maddr(va - directmap_virt_start); - BUILD_BUG_ON(XEN_VIRT_SIZE != MB(2)); - ASSERT((va >> (PAGETABLE_ORDER + PAGE_SHIFT)) == - (_AC(XEN_VIRT_START, UL) >> (PAGETABLE_ORDER + PAGE_SHIFT))); + BUILD_BUG_ON(XEN_VIRT_SIZE != MB(8));Is it necessary to be != ? Won't > suffice?It could be just > MB(2). Or perphaps >=. = would make the build fail, wouldn't it?I just realized that BUILD_BUG_ON() condition is compared to zero so actually everything what will make the condition true will cause a build fail as inside it used !(condition).???
BUILD_BUG_ON()forces a compilation error if the given condition is true. Therefore, if the conditionXEN_VIRT_SIZE != MB(2)is changed toXEN_VIRT_SIZE > MB(2), the condition will always evaluate to true (assumingXEN_VIRT_SIZEis greater than 2 MB), which will result in a compilation error. ~ Oleksii
So it seems like we have to check for XEN_VIRT_SIZE != MB(16) and change each time when XEN_VIRT_SIZE is increased.I don't think so, but I need to first understand the point you make above.