[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/4] xen/cache-col: Remove bogus cast in domain_llc_coloring_free()
On Fri, 25 Jul 2025, Jan Beulich wrote: > On 24.07.2025 18:23, Andrew Cooper wrote: > > --- a/xen/common/llc-coloring.c > > +++ b/xen/common/llc-coloring.c > > @@ -309,11 +309,8 @@ int domain_set_llc_colors(struct domain *d, > > > > void domain_llc_coloring_free(struct domain *d) > > { > > - if ( !llc_coloring_enabled || d->llc_colors == default_colors ) > > - return; > > - > > - /* free pointer-to-const using __va(__pa()) */ > > - xfree(__va(__pa(d->llc_colors))); > > + if ( d->llc_colors != default_colors ) > > + xfree(d->llc_colors); > > } > > > > int __init domain_set_llc_colors_from_str(struct domain *d, const char > > *str) > > diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h > > index fe53d4fab7ba..df23411869e6 100644 > > --- a/xen/include/xen/sched.h > > +++ b/xen/include/xen/sched.h > > @@ -649,7 +649,7 @@ struct domain > > > > #ifdef CONFIG_LLC_COLORING > > unsigned int num_llc_colors; > > - const unsigned int *llc_colors; > > + unsigned int *llc_colors; > > #endif > > > > /* Console settings. */ > > Ah yes, I see. Yet no, I don't agree. The only sane course of action > to avoid odd transformations like the above (without using casts to > cast away const-ness) is to finally make xfree() et al take pointers > to const void. Arguments towards why this makes sense were given > before; I don't think they need repeating. Dropping the const here is > rather undesirable: Once set, the colors shouldn't be altered anymore. > Pointers like this hence want to be pointer-to-const, to make > accidental modification less likely. Which in turn calls for the > mentioned adjustment to xfree(). I agree that "Once set, the colors shouldn't be altered anymore. Pointers like this hence want to be pointer-to-const, to make accidental modification less likely". However, I also think that the following is worse than risking accidental unwanted modifications of llc_colors: /* free pointer-to-const using __va(__pa()) */ xfree(__va(__pa(d->llc_colors))); So in my opinion this patch is good. If/when xfree becomes able to deal with const pointers, then we can change llc_colors to be const again. Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |