Home
last modified time | relevance | path

Searched hist:"1 a12f0aea81b57d0dd2374047b8f4c97a037a8df" (Results 1 – 1 of 1) sorted by relevance

/freebsd/sys/dev/xen/grant_table/
H A Dgrant_table.cdiff 1a12f0aea81b57d0dd2374047b8f4c97a037a8df Thu Nov 02 18:23:25 CET 2023 Roger Pau Monné <royger@FreeBSD.org> xen: fix initialization of grant table frame array

The current sizing of the array used to store grant table frames is broken, as
the calculation:

max_nr_glist_frames = (boot_max_nr_grant_frames *
GREFS_PER_GRANT_FRAME /
(PAGE_SIZE / sizeof(grant_ref_t)));

Is plain bogus, for once grant_ref_t is the type of the grant reference, but
not the entry used to store such references in the grant frames. But even if
the above calculation is switched to use grant_entry_v1_t, it would end up as:

max_nr_glist_frames = (boot_max_nr_grant_frames *
(PAGE_SIZE / sizeof(grant_entry_v1_t)) /
(PAGE_SIZE / sizeof(grant_entry_v1_t)));

Which is pointless (note GREFS_PER_GRANT_FRAME has been expanded to (PAGE_SIZE
/ sizeof(grant_entry_v1_t))).

Just use boot_max_nr_grant_frames directly to size the grant table frames
array.

Fixes: 30d1eefe3937 ("Import OS interfaces to Xen services.")
Sponsored by: Citrix Systems R&D