[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [XEN PATCH] mismatch between pyxc_methods flags and PyObject definitions



On Tue, Mar 17, 2020 at 11:01:43PM +0000, YOUNG, MICHAEL A. wrote:
> pygrub in xen-4.13.0 with python 3.8.2 fails with the error
> 
> Traceback (most recent call last):
>   File "/usr/libexec/xen/bin/pygrub", line 21, in <module>
>     import xen.lowlevel.xc
> SystemError: bad call flags
> 
> This patch fixes mismatches in tools/python/xen/lowlevel/xc/xc.c
> between the flag bits defined in pyxc_methods and the parameters passed
> to the corresponding PyObject definitions.
> 
> With this patch applied pygrub works as expected.
> 
> Signed-off-by: Michael Young <m.a.young@xxxxxxxxxxxx>

This looks like a change in Python 3.7 (according to the documentation,
might not be enforced there yet). Python <= 3.6 allowed METH_KEYWORDS
used alone. Fortunately, all the versions supports METH_VARARGS |
METH_KEYWORDS, which looks to be equivalent to old METH_KEYWORDS alone.

Acked-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>


> ---
>  tools/python/xen/lowlevel/xc/xc.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/python/xen/lowlevel/xc/xc.c 
> b/tools/python/xen/lowlevel/xc/xc.c
> index ac0e26a742..8fde5f311f 100644
> --- a/tools/python/xen/lowlevel/xc/xc.c
> +++ b/tools/python/xen/lowlevel/xc/xc.c
> @@ -2028,7 +2028,7 @@ static PyMethodDef pyxc_methods[] = {
>  
>      { "gnttab_hvm_seed",
>        (PyCFunction)pyxc_gnttab_hvm_seed,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Initialise HVM guest grant table.\n"
>        " dom     [int]:      Identifier of domain to build into.\n"
>        " console_gmfn [int]: \n"
> @@ -2097,7 +2097,7 @@ static PyMethodDef pyxc_methods[] = {
>  
>      { "sched_credit_domain_set",
>        (PyCFunction)pyxc_sched_credit_domain_set,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Set the scheduling parameters for a domain when running with the\n"
>        "SMP credit scheduler.\n"
>        " domid     [int]:   domain id to set\n"
> @@ -2115,7 +2115,7 @@ static PyMethodDef pyxc_methods[] = {
>  
>      { "sched_credit2_domain_set",
>        (PyCFunction)pyxc_sched_credit2_domain_set,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Set the scheduling parameters for a domain when running with the\n"
>        "SMP credit2 scheduler.\n"
>        " domid     [int]:   domain id to set\n"
> @@ -2393,21 +2393,21 @@ static PyMethodDef pyxc_methods[] = {
>  
>      { "flask_context_to_sid",
>        (PyCFunction)pyflask_context_to_sid,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Convert a context string to a dynamic SID.\n"
>        " context [str]: String specifying context to be converted\n"
>        "Returns: [int]: Numeric SID on success; -1 on error.\n" },
>  
>      { "flask_sid_to_context",
>        (PyCFunction)pyflask_sid_to_context,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Convert a dynamic SID to context string.\n"
>        " context [int]: SID to be converted\n"
>        "Returns: [str]: Numeric SID on success; -1 on error.\n" },
>  
>      { "flask_load",
>        (PyCFunction)pyflask_load,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Loads a policy into the hypervisor.\n"
>        " policy [str]: policy to be load\n"
>        "Returns: [int]: 0 on success; -1 on failure.\n" }, 
> @@ -2420,14 +2420,14 @@ static PyMethodDef pyxc_methods[] = {
>  
>      { "flask_setenforce",
>        (PyCFunction)pyflask_setenforce,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Modifies the current mode for the Flask XSM module.\n"
>        " mode [int]: mode to change to\n"
>        "Returns: [int]: 0 on success; -1 on failure.\n" }, 
>  
>      { "flask_access",
>        (PyCFunction)pyflask_access,
> -      METH_KEYWORDS, "\n"
> +      METH_VARARGS | METH_KEYWORDS, "\n"
>        "Returns whether a source context has access to target context based 
> on \
>         class and permissions requested.\n"
>        " scon [str]: source context\n"

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Attachment: signature.asc
Description: PGP signature


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.