[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 05/15] xen: extend domctl interface for cache coloring
On Tue, Feb 6, 2024 at 12:51 PM Jan Beulich <jbeulich@xxxxxxxx> wrote: > > On 06.02.2024 12:46, Carlo Nonato wrote: > > On Thu, Feb 1, 2024 at 2:51 PM Jan Beulich <jbeulich@xxxxxxxx> wrote: > >> On 29.01.2024 18:18, Carlo Nonato wrote: > >>> @@ -229,6 +230,30 @@ int __init dom0_set_llc_colors(struct domain *d) > >>> return domain_check_colors(d); > >>> } > >>> > >>> +int domain_set_llc_colors_domctl(struct domain *d, > >>> + const struct xen_domctl_set_llc_colors > >>> *config) > >> > >> What purpose has the "domctl" in the function name? > >> > >>> +{ > >>> + unsigned int *colors; > >>> + > >>> + if ( d->num_llc_colors ) > >>> + return -EEXIST; > >>> + > >>> + if ( !config->num_llc_colors ) > >>> + return domain_set_default_colors(d); > >>> + > >>> + colors = alloc_colors(config->num_llc_colors); > >>> + if ( !colors ) > >>> + return -ENOMEM; > >> > >> Hmm, I see here you call the function without first having bounds checked > >> the input. But in case of too big a value, -ENOMEM is inappropriate, so > >> such a check wants adding up front anyway. > >> > >>> + if ( copy_from_guest(colors, config->llc_colors, > >>> config->num_llc_colors) ) > >>> + return -EFAULT; > >> > >> There again wants to be a check that the pointed to values are the same, > >> or at least of the same size. Else you'd need to do element-wise copy. > > > > Sorry to bring this back again, but I've just noticed copy_from_guest() > > already checks for type compatibility. For what regards the size I don't > > think > > I understood what to check. colors is defined to be of the same size of > > config->llc_colors. > > Oh, you're right. But the other case was a memcpy(), wasn't it? Yes, in that case your suggestion was needed. Thanks again. > Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |