On Fri, 2010-10-08 at 09:28 +0100, Gianni Tedesco wrote:
> On Fri, 2010-10-08 at 01:28 +0100, Kay, Allen M wrote:
> > I'm getting a build break in python xl code. Looks like the following
> > changeset did not make the corresponding parameter change from the caller
> > site in python:
> >
> > -static int do_pci_remove(libxl__gc *gc, uint32_t domid, libxl_device_pci
> > *pcidev)
> > +static int do_pci_remove(libxl__gc *gc, uint32_t domid,
> > + libxl_device_pci *pcidev, int force)
> >
> >
> > Changeset:
> >
> > 31 hours ago: xl: Implement PCI passthrough force removal
> > changeset 22229: 1385b15e168f
> > tag: tip
> > author: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
> > date: Wed Oct 06 17:38:15 2010 +0100
> > files: tools/libxl/libxl.h tools/libxl/libxl_pci.c tools/libxl/xl_cmdimpl.c
> >
>
> You are right, I should have realised! It also breaks the ocaml binding.
>
> Vincent, I have patched this so that it builds but perhaps you want to
> expose the new PCI force removal in the ocaml binding? I just set
> 'force' parameter to always be zero for now to keep it building and
> running same as before.
Actually, ignore the deliberate mistake in python part of that patch :)
Correct patch is below:
---
xl: Fix build in python binding since API change in 22229:1385b15e168f
Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
diff -r 1385b15e168f tools/ocaml/libs/xl/xl_stubs.c
--- a/tools/ocaml/libs/xl/xl_stubs.c Wed Oct 06 17:38:15 2010 +0100
+++ b/tools/ocaml/libs/xl/xl_stubs.c Fri Oct 08 09:33:27 2010 +0100
@@ -638,7 +638,7 @@ value stub_xl_pci_remove(value info, val
device_pci_val(&gc, &c_info, info);
INIT_CTX();
- ret = libxl_device_pci_remove(&ctx, Int_val(domid), &c_info);
+ ret = libxl_device_pci_remove(&ctx, Int_val(domid), &c_info, 0);
if (ret != 0)
failwith_xl("pci_remove", &lg);
FREE_CTX();
diff -r 1385b15e168f tools/python/xen/lowlevel/xl/xl.c
--- a/tools/python/xen/lowlevel/xl/xl.c Wed Oct 06 17:38:15 2010 +0100
+++ b/tools/python/xen/lowlevel/xl/xl.c Fri Oct 08 09:33:27 2010 +0100
@@ -441,15 +441,16 @@ static PyObject *pyxl_pci_del(XlObject *
{
Py_device_pci *pci;
PyObject *obj;
- int domid;
- if ( !PyArg_ParseTuple(args, "iO", &domid, &obj) )
+ int domid, force = 0;
+
+ if ( !PyArg_ParseTuple(args, "iO|i", &domid, &obj, &force) )
return NULL;
if ( !Pydevice_pci_Check(obj) ) {
PyErr_SetString(PyExc_TypeError, "Xxpected xl.device_pci");
return NULL;
}
pci = (Py_device_pci *)obj;
- if ( libxl_device_pci_remove(&self->ctx, domid, &pci->obj) ) {
+ if ( libxl_device_pci_remove(&self->ctx, domid, &pci->obj, force) ) {
PyErr_SetString(xl_error_obj, "cannot remove pci device");
return NULL;
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|