[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v7 5/7] xen: re-define assign_pages and introduce a new function assign_page
On Wed, 15 Sep 2021, Jan Beulich wrote: > On 10.09.2021 18:23, Stefano Stabellini wrote: > > On Fri, 10 Sep 2021, Jan Beulich wrote: > >> On 10.09.2021 04:52, Penny Zheng wrote: > >>> In order to deal with the trouble of count-to-order conversion when page > >>> number > >>> is not in a power-of-two, this commit re-define assign_pages for nr pages > >>> and > >>> assign_page for original page with a single order. > >>> > >>> Backporting confusion could be helped by altering the order of > >>> assign_pages > >>> parameters, such that the compiler would point out that adjustments at > >>> call > >>> sites are needed. > >> > >> Thanks, this now takes care of my primary concern. However, I (now?) have > >> another (I thought I would have mentioned this before): > >> > >>> --- a/xen/common/page_alloc.c > >>> +++ b/xen/common/page_alloc.c > >>> @@ -2259,9 +2259,9 @@ void init_domheap_pages(paddr_t ps, paddr_t pe) > >>> > >>> > >>> int assign_pages( > >>> - struct domain *d, > >>> struct page_info *pg, > >>> - unsigned int order, > >>> + unsigned long nr, > >> > >> If this really is to be "unsigned long" (and not "unsigned int"), then... > > > > Thanks for spotting this. I think it makes sense to use "unsigned int > > nr" here. > > I see you've made the change while committing, but the subsequent patch > then would have needed adjustment as well: It's now silently truncating > an "unsigned long" value to "unsigned int". It was the splitting that's > now needed there _anyway_ that made me wonder whether the patch here > really is worthwhile to have. But of course acquire_domstatic_pages() > could for now also simply reject too large values ... Yes. Are you thinking of a check like the following at the beginning of acquire_domstatic_pages? if ( nr_mfns > UINT_MAX ) return -EINVAL; An alternative would be to change acquire_domstatic_pages to take an unsigned int as nr_mfns parameter, but then it would just push the problem up one level to allocate_static_memory, which is reading the value from device tree so it is out of our control. So I think it is a good idea to have an explicit check and acquire_domstatic_pages would be a good place for it.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |