WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] pciif: do not depend on linux' msix_entries

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] pciif: do not depend on linux' msix_entries
From: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
Date: Wed, 2 Jul 2008 13:31:34 +0100
Delivery-date: Wed, 02 Jul 2008 05:31:59 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Mail-followup-to: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
pciif: do not depend on linux' msix_entries, and use a conversion loop
instead (already done in the frontend).

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>

diff -r 3643a33de277 drivers/xen/pciback/conf_space_capability_msi.c
--- a/drivers/xen/pciback/conf_space_capability_msi.c   Mon Jun 30 16:14:04 
2008 +0100
+++ b/drivers/xen/pciback/conf_space_capability_msi.c   Wed Jul 02 12:46:30 
2008 +0100
@@ -39,9 +39,21 @@
 {
        int result;
 
-       result = pci_enable_msix(dev, op->msix_entries, op->value);
+       if (op->value > SH_INFO_MAX_VEC)
+               return -EINVAL;
+       else {
+               struct msix_entry entries[op->value];
+               int i;
 
-       op->value = result;
+               for (i = 0; i < op->value; i++) {
+                       entries[i].entry = op.msix_entries[i].entry;
+                       entries[i].vector = op.msix_entries[i].vector;
+               }
+
+               result = pci_enable_msix(dev, entries, op->value);
+               op->value = result;
+       }
+
        return result;
 }
 
diff -r 3643a33de277 include/xen/interface/io/pciif.h
--- a/include/xen/interface/io/pciif.h  Mon Jun 30 16:14:04 2008 +0100
+++ b/include/xen/interface/io/pciif.h  Wed Jul 02 12:46:30 2008 +0100
@@ -54,6 +54,11 @@
  */
 #define SH_INFO_MAX_VEC     128
 
+struct xen_msix_entry {
+    uint16_t vector;
+    uint16_t entry;
+};
+
 struct xen_pci_op {
     /* IN: what action to perform: XEN_PCI_OP_* */
     uint32_t cmd;
@@ -75,7 +80,7 @@
     /* IN: Contains extra infor for this operation */
     uint32_t info;
     /*IN:  param for msi-x */
-    struct msix_entry msix_entries[SH_INFO_MAX_VEC];
+    struct xen_msix_entry xen_msix_entries[SH_INFO_MAX_VEC];
 };
 
 struct xen_pci_sharedinfo {

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>