All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH RFC] msix_init: input params *_offset isn't the real one
@ 2016-08-10  3:18 Cao jin
  2016-08-15  4:14 ` Cao jin
  2016-08-18 10:54 ` Marcel Apfelbaum
  0 siblings, 2 replies; 4+ messages in thread
From: Cao jin @ 2016-08-10  3:18 UTC (permalink / raw)
  To: qemu-devel; +Cc: mst, marcel, alex.williamson

The parameter table_offset & pba_offset is kind of confusing, they shouldn't
include bir field.

Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
---

According to the passed arguments, I guess all the callers of msix_init()
has the same feeling with me, but I am not quite sure about this, so, RFC.

 hw/pci/msix.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/hw/pci/msix.c b/hw/pci/msix.c
index 0ec1cb1..3a16d83 100644
--- a/hw/pci/msix.c
+++ b/hw/pci/msix.c
@@ -264,8 +264,7 @@ int msix_init(struct PCIDevice *dev, unsigned short nentries,
     if ((table_bar_nr == pba_bar_nr &&
          ranges_overlap(table_offset, table_size, pba_offset, pba_size)) ||
         table_offset + table_size > memory_region_size(table_bar) ||
-        pba_offset + pba_size > memory_region_size(pba_bar) ||
-        (table_offset | pba_offset) & PCI_MSIX_FLAGS_BIRMASK) {
+        pba_offset + pba_size > memory_region_size(pba_bar)) {
         return -EINVAL;
     }
 
@@ -282,8 +281,8 @@ int msix_init(struct PCIDevice *dev, unsigned short nentries,
     dev->msix_entries_nr = nentries;
     dev->msix_function_masked = true;
 
-    pci_set_long(config + PCI_MSIX_TABLE, table_offset | table_bar_nr);
-    pci_set_long(config + PCI_MSIX_PBA, pba_offset | pba_bar_nr);
+    pci_set_long(config + PCI_MSIX_TABLE, (table_offset << 3) | table_bar_nr);
+    pci_set_long(config + PCI_MSIX_PBA, (pba_offset << 3) | pba_bar_nr);
 
     /* Make flags bit writable. */
     dev->wmask[cap + MSIX_CONTROL_OFFSET] |= MSIX_ENABLE_MASK |
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-08-19  2:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-10  3:18 [Qemu-devel] [PATCH RFC] msix_init: input params *_offset isn't the real one Cao jin
2016-08-15  4:14 ` Cao jin
2016-08-18 10:54 ` Marcel Apfelbaum
2016-08-19  2:35   ` Cao jin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.