While _set_status_v2() indeed doesn't alter the grant_entry_header_t it is handed a pointer to, _set_status_v1() does. Drop the const from the parameter of the latter (and then necessarily also from _set_status()'s), while adding const to the local variable of the former.
No functional change. Signed-off-by: Jan Beulich <[email protected]> --- Really I think it would be best if we did away with the raw_shah local variables (which looks reasonably simple for at least _set_status_v2()). I'm unconvinced that we really need to use ACCESS_ONCE() here. Torn reads aren't a problem; what we require is that we look at a stable local copy, and that can be achieved by putting barrier() after the reads. --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -740,7 +740,7 @@ static unsigned int nr_grant_entries(str return 0; } -static int _set_status_v1(const grant_entry_header_t *shah, +static int _set_status_v1(grant_entry_header_t *shah, struct domain *rd, struct active_grant_entry *act, int readonly, @@ -832,7 +832,7 @@ static int _set_status_v2(const grant_en domid_t ldomid) { int rc = GNTST_okay; - uint32_t *raw_shah = (uint32_t *)shah; + const uint32_t *raw_shah = (const uint32_t *)shah; union grant_combo scombo; uint16_t mask = GTF_type_mask; @@ -909,7 +909,7 @@ done: } -static int _set_status(const grant_entry_header_t *shah, +static int _set_status(grant_entry_header_t *shah, grant_status_t *status, struct domain *rd, unsigned int rgt_version,
