----- Messaggio originale ----- > Da: "Peter Maydell" <peter.mayd...@linaro.org> > A: "Paolo Bonzini" <pbonz...@redhat.com> > Cc: qemu-devel@nongnu.org, a...@ozlabs.ru, "jan kiszka" > <jan.kis...@siemens.com>, qemul...@gmail.com, > stefa...@redhat.com, da...@gibson.dropbear.id.au > Inviato: Martedì, 7 maggio 2013 17:44:59 > Oggetto: Re: [Qemu-devel] [PATCH 01/40] memory: assert that PhysPageEntry's > ptr does not overflow > > On 7 May 2013 15:16, Paolo Bonzini <pbonz...@redhat.com> wrote: > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > > --- > > exec.c | 2 ++ > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > diff --git a/exec.c b/exec.c > > index 19725db..2e5b89a 100644 > > --- a/exec.c > > +++ b/exec.c > > @@ -719,6 +719,8 @@ static void destroy_all_mappings(AddressSpaceDispatch > > *d) > > > > static uint16_t phys_section_add(MemoryRegionSection *section) > > { > > + assert(phys_sections_nb < TARGET_PAGE_SIZE); > > + > > if (phys_sections_nb == phys_sections_nb_alloc) { > > phys_sections_nb_alloc = MAX(phys_sections_nb_alloc * 2, 16); > > phys_sections = g_renew(MemoryRegionSection, phys_sections, > > Why is the limit we're asserting not the same as the maximum > size that we pass to g_renew() below?
That's a minimum size, isn't it? I'm asserting that the physical section number doesn't overflow into the page, since the TLB entries are stored as a combination of the two. Paolo