qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	patches@linaro.org, Keith Busch <keith.busch@intel.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: [Qemu-devel] [PATCH v2 1/6] hw/pci: Use pow2ceil() rather than hand-calculation
Date: Fri, 24 Jul 2015 13:33:07 +0100	[thread overview]
Message-ID: <1437741192-20955-2-git-send-email-peter.maydell@linaro.org> (raw)
In-Reply-To: <1437741192-20955-1-git-send-email-peter.maydell@linaro.org>

A couple of places in hw/pci use an inline calculation to round a
size up to the next largest power of 2. We have a utility routine
for this, so use it.

(The behaviour of the old code is different if the size value
is 0 -- it would leave it as 0 rather than rounding up to 1,
but in both cases we know the size can't be 0.
In the case where the size value had bit 31 set, the old code
would invoke undefined behaviour; the new code will give a
result of 0. Presumably that could never happen either.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/pci/msix.c | 4 +---
 hw/pci/pci.c  | 4 +---
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index 7716bf3..2fdada4 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -314,9 +314,7 @@ int msix_init_exclusive_bar(PCIDevice *dev, unsigned short nentries,
         bar_size = bar_pba_offset + bar_pba_size;
     }
 
-    if (bar_size & (bar_size - 1)) {
-        bar_size = 1 << qemu_fls(bar_size);
-    }
+    bar_size = pow2ceil(bar_size);
 
     name = g_strdup_printf("%s-msix", dev->name);
     memory_region_init(&dev->msix_exclusive_bar, OBJECT(dev), name, bar_size);
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index a017614..502da8d 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -2065,9 +2065,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
         g_free(path);
         return;
     }
-    if (size & (size - 1)) {
-        size = 1 << qemu_fls(size);
-    }
+    size = pow2ceil(size);
 
     vmsd = qdev_get_vmsd(DEVICE(pdev));
 
-- 
1.9.1

  reply	other threads:[~2015-07-24 12:51 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-24 12:33 [Qemu-devel] [PATCH v2 0/6] replace qemu_fls() with pow2ceil()/pow2floor() Peter Maydell
2015-07-24 12:33 ` Peter Maydell [this message]
2015-08-12  7:35   ` [Qemu-devel] [PATCH v2 1/6] hw/pci: Use pow2ceil() rather than hand-calculation Michael S. Tsirkin
2015-07-24 12:33 ` [Qemu-devel] [PATCH v2 2/6] hw/virtio/virtio-pci: " Peter Maydell
2015-08-12  7:36   ` Michael S. Tsirkin
2015-07-24 12:33 ` [Qemu-devel] [PATCH v2 3/6] hw/block/nvme.c: " Peter Maydell
2015-08-14 23:41   ` Paolo Bonzini
2015-07-24 12:33 ` [Qemu-devel] [PATCH v2 4/6] exec.c: Use pow2floor() " Peter Maydell
2015-08-14 23:41   ` Paolo Bonzini
2015-07-24 12:33 ` [Qemu-devel] [PATCH v2 5/6] Remove unused qemu_fls function Peter Maydell
2015-08-14 23:41   ` Paolo Bonzini
2015-07-24 12:33 ` [Qemu-devel] [PATCH v2 6/6] Make pow2ceil() and pow2floor() inline Peter Maydell
2015-08-14 23:42   ` Paolo Bonzini
2015-08-14 10:11 ` [Qemu-devel] [PATCH v2 0/6] replace qemu_fls() with pow2ceil()/pow2floor() Peter Maydell
2015-09-07 11:04 ` Peter Maydell
2015-09-07 12:34   ` Paolo Bonzini
2015-09-07 15:07     ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1437741192-20955-2-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=keith.busch@intel.com \
    --cc=kwolf@redhat.com \
    --cc=mst@redhat.com \
    --cc=patches@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).