1.1 --- a/libmem/lib/src/flexpage.cc Fri Jun 17 23:33:00 2022 +0200
1.2 +++ b/libmem/lib/src/flexpage.cc Fri Jun 17 23:35:14 2022 +0200
1.3 @@ -170,12 +170,16 @@
1.4 if (!receive_size)
1.5 return SendFlexpage(base_addr, page_order(0), flags);
1.6
1.7 - offset_t receive_page_offset = hot_spot % receive_size;
1.8 + /* Employ the page-aligned hot spot for compatibility with the page
1.9 + offset, thus handling any non-aligned values sent in map requests. */
1.10 +
1.11 + offset_t hot_spot_page = trunc(hot_spot, PAGE_SIZE);
1.12 + offset_t receive_page_offset = hot_spot_page % receive_size;
1.13
1.14 while ((receive_size > PAGE_SIZE) && (receive_page_offset != page_offset))
1.15 {
1.16 receive_size /= 2;
1.17 - receive_page_offset = hot_spot % receive_size;
1.18 + receive_page_offset = hot_spot_page % receive_size;
1.19 }
1.20
1.21 /* The flexpage base address is adjusted using the difference in page