Index: hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_iobuf.c
===================================================================
--- hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_iobuf.c	(revision 337)
+++ hw/mt23108/vapi/mlxsys/mosal/os_dep/win/mosal_iobuf.c	(working copy)
@@ -297,6 +297,12 @@
   MOSAL_dlist_init_head( &new_iobuf->seg_que );
   new_iobuf->seg_num = 0;
 
+  // Round the seg_va down to a page boundary so that we always get a seg_size
+  // that is an integral number of pages.
+  seg_va &= (~0Ui64 << PAGE_SHIFT);
+  // Since we rounded down the seg_va, we need to round up the rdc.
+  rdc += (seg_va & (PAGE_SIZE - 1));
+
   // allocate segments
   while (rdc > 0) {
   	// map a segment
