|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 3/5] x86: split PV dom0 builder to domain_build_pv.c
>>> On 03.03.17 at 10:41, <wei.liu2@xxxxxxxxxx> wrote:
> @@ -258,66 +260,7 @@ string_param("dom0_ioports_disable",
> opt_dom0_ioports_disable);
> static bool_t __initdata ro_hpet = 1;
> boolean_param("ro-hpet", ro_hpet);
>
> -/* Allow ring-3 access in long mode as guest cannot use ring 1 ... */
> -#define BASE_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED|_PAGE_USER)
> -#define L1_PROT (BASE_PROT|_PAGE_GUEST_KERNEL)
> -/* ... except for compatibility mode guests. */
> -#define COMPAT_L1_PROT (_PAGE_PRESENT|_PAGE_RW|_PAGE_ACCESSED)
> -#define L2_PROT (BASE_PROT|_PAGE_DIRTY)
> -#define L3_PROT (BASE_PROT|_PAGE_DIRTY)
> -#define L4_PROT (BASE_PROT|_PAGE_DIRTY)
> -
> -static unsigned int __initdata memflags = MEMF_no_dma|MEMF_exact_node;
> -
> -static struct page_info * __init alloc_chunk(
> - struct domain *d, unsigned long max_pages)
> -{
> - static unsigned int __initdata last_order = MAX_ORDER;
> - struct page_info *page;
> - unsigned int order = get_order_from_pages(max_pages), free_order;
> -
> - if ( order > last_order )
> - order = last_order;
> - else if ( max_pages & (max_pages - 1) )
> - --order;
> - while ( (page = alloc_domheap_pages(d, order, memflags)) == NULL )
> - if ( order-- == 0 )
> - break;
> - if ( page )
> - last_order = order;
> - else if ( memflags )
> - {
> - /*
> - * Allocate up to 2MB at a time: It prevents allocating very large
> - * chunks from DMA pools before the >4GB pool is fully depleted.
> - */
> - last_order = 21 - PAGE_SHIFT;
> - memflags = 0;
> - return alloc_chunk(d, max_pages);
> - }
> -
> - /*
> - * Make a reasonable attempt at finding a smaller chunk at a higher
> - * address, to avoid allocating from low memory as much as possible.
> - */
> - for ( free_order = order; !memflags && page && order--; )
> - {
> - struct page_info *pg2;
> -
> - if ( d->tot_pages + (1 << order) > d->max_pages )
> - continue;
> - pg2 = alloc_domheap_pages(d, order, MEMF_exact_node);
> - if ( pg2 > page )
> - {
> - free_domheap_pages(page, free_order);
> - page = pg2;
> - free_order = order;
> - }
> - else if ( pg2 )
> - free_domheap_pages(pg2, order);
> - }
> - return page;
> -}
> +unsigned int __initdata memflags = MEMF_no_dma|MEMF_exact_node;
Making a variable with this name non-static requires adding a
suitable prefix, e.g dom0_. setup_permissions() has the same
issue.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |