|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v6][PATCH 6/7] hvmloader: check to reserved device memory maps in e820
On 2014/9/11 23:57, Jan Beulich wrote: On 10.09.14 at 07:49, <tiejun.chen@xxxxxxxxx> wrote:
unsigned int i, j, m, sum_nr = nr + nr_map;
uint64_t start, end, rdm_start, rdm_end;
unsigned int insert, do_insert;
rdm_start = map[i].start_pfn << XC_PAGE_SHIFT;
rdm_end = rdm_start + map[i].nr_pages << XC_PAGE_SHIFT;
But there's no such definition in tools/firmware/, and this is defined
in xenctl.h. But if I include xenctl.h here, something else is
redefined. So here I have to define this, XC_PAGE_SHIFTseparately.
I remember we discussed this previously.
"
> And this would skip the last region - I'm not sure that's correct.
>
No. Here we just want to know where we should insert a entry, so
for ( j = 0; j < nr - 1; j++ )
{
end = e820[j].addr + e820[j].size;
start = e820[j+1].addr;
For example, nr = 3,
for ( j = 0; j < 2; j++ )
So
#1,
end = e820[0].addr + e820[0].size;
start = e820[1].addr;
#2,
end = e820[1].addr + e820[1].size;
start = e820[2].addr;
"
I didn't you have further comments there.
I will try this. + + /* Then fill RMRR into that entry. */ + e820[j+1].addr = rdm_start; + e820[j+1].size = rdm_end - rdm_start; + e820[j+1].type = E820_RESERVED; + nr++; + } + insert++; + } + /* Already at the end. */ + else if ( (rdm_start > end) && !start )How would !start represent the end of anything? end = e820[j].addr + e820[j].size; start = e820[j+1].addr;so if end = 0xXXXXXXXX and start = 0, does this mean we already are at the end of all valid e820 entries?
Will fixed. Thanks Tiejun _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |