Samuel Thibault
2008-Jul-02 12:31 UTC
[Xen-devel] [PATCH] pciif: do not depend on linux'' msix_entries
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@eu.citrix.com>
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@lists.xensource.com
http://lists.xensource.com/xen-devel
Samuel Thibault
2008-Jul-02 12:32 UTC
[Xen-devel] Re: [PATCH] pciif: do not depend on linux'' msix_entries
[PATCH] pciif: do not depend on linux'' msix_entries
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
diff -r 0361bcf5d310 xen/include/public/io/pciif.h
--- a/xen/include/public/io/pciif.h Tue Jul 01 14:48:29 2008 +0100
+++ b/xen/include/public/io/pciif.h Wed Jul 02 13:32:39 2008 +0100
@@ -54,6 +54,10 @@
*/
#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 +79,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 msix_entries[SH_INFO_MAX_VEC];
};
struct xen_pci_sharedinfo {
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Yosuke Iwamatsu
2008-Jul-03 05:28 UTC
[Xen-devel] Fix the build for linux cs585 (Re: [PATCH] pciif: do not depend on linux'' msix_entries)
Hi,
I failed to compile latest linux-2.6.18.8-xen. The modification below
will fix the build of pciback.
Thanks,
--Yosuke
Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
diff -r 72786307fa4c drivers/xen/pciback/conf_space_capability_msi.c
--- a/drivers/xen/pciback/conf_space_capability_msi.c Wed Jul 02
13:36:55 2008 +0100
+++ b/drivers/xen/pciback/conf_space_capability_msi.c Thu Jul 03
14:29:22 2008 +0900
@@ -46,8 +46,8 @@ int pciback_enable_msix(struct pciback_d
int i;
for (i = 0; i < op->value; i++) {
- entries[i].entry = op.msix_entries[i].entry;
- entries[i].vector = op.msix_entries[i].vector;
+ entries[i].entry = op->msix_entries[i].entry;
+ entries[i].vector = op->msix_entries[i].vector;
}
result = pci_enable_msix(dev, entries, op->value);
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel