On Wed, Feb 01, 2017 at 03:37:54AM +0200, Michael S. Tsirkin wrote: > On Wed, Feb 01, 2017 at 09:16:28AM +1100, David Gibson wrote: > > On Tue, Jan 31, 2017 at 03:14:29PM +0200, Michael S. Tsirkin wrote: > > > We are switching BUILD_BUG_ON to verify that it's parameter is a > > > compile-time constant, and it turns out that some gcc versions > > > (specifically gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609) are > > > not smart enough to figure it out for expressions involving local > > > variables. This is harmless but means that the check is ineffective for > > > these platforms. To fix, replace the variable with macros. > > > > > > Reported-by: Peter Maydell <peter.mayd...@linaro.org> > > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > > > > Ugh.. I pulled this into my tree already (I've been having trouble > > with my test setup, which is why I haven't sent my own pullreq yet). > > However, it needs a s/%u/%llu/ to compile correctly on some platforms. > > I need it to avoid breaking build. I fixed it up - want to drop it > from you tree? Or leave it there - git will resolve the trivial > conflict.
Since you've already sent a pull, I'm guessing it will be merged by the time I'm able to get my pullreq together. Since I'll rebase before that, I expect it will drop out of my tree naturally. > > > > --- > > > hw/ppc/spapr.c | 14 ++++++++------ > > > 1 file changed, 8 insertions(+), 6 deletions(-) > > > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > > index a642e66..b81f2ac 100644 > > > --- a/hw/ppc/spapr.c > > > +++ b/hw/ppc/spapr.c > > > @@ -2630,8 +2630,8 @@ static void spapr_phb_placement(sPAPRMachineState > > > *spapr, uint32_t index, > > > * 1TiB 64-bit MMIO windows for each PHB. > > > */ > > > const uint64_t base_buid = 0x800000020000000ULL; > > > - const int max_phbs = > > > - (SPAPR_PCI_LIMIT - SPAPR_PCI_BASE) / SPAPR_PCI_MEM64_WIN_SIZE - > > > 1; > > > +#define SPAPR_MAX_PHBS ((SPAPR_PCI_LIMIT - SPAPR_PCI_BASE) / \ > > > + SPAPR_PCI_MEM64_WIN_SIZE - 1) > > > int i; > > > > > > /* Sanity check natural alignments */ > > > @@ -2640,12 +2640,14 @@ static void spapr_phb_placement(sPAPRMachineState > > > *spapr, uint32_t index, > > > QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM64_WIN_SIZE % > > > SPAPR_PCI_MEM32_WIN_SIZE) != 0); > > > QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM32_WIN_SIZE % SPAPR_PCI_IO_WIN_SIZE) > > > != 0); > > > /* Sanity check bounds */ > > > - QEMU_BUILD_BUG_ON((max_phbs * SPAPR_PCI_IO_WIN_SIZE) > > > > SPAPR_PCI_MEM32_WIN_SIZE); > > > - QEMU_BUILD_BUG_ON((max_phbs * SPAPR_PCI_MEM32_WIN_SIZE) > > > > SPAPR_PCI_MEM64_WIN_SIZE); > > > + QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_IO_WIN_SIZE) > > > > + SPAPR_PCI_MEM32_WIN_SIZE); > > > + QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_MEM32_WIN_SIZE) > > > > + SPAPR_PCI_MEM64_WIN_SIZE); > > > > > > - if (index >= max_phbs) { > > > + if (index >= SPAPR_MAX_PHBS) { > > > error_setg(errp, "\"index\" for PAPR PHB is too large (max %u)", > > > - max_phbs - 1); > > > + SPAPR_MAX_PHBS - 1); > > > return; > > > } > > > > > > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature