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

Re: [Xen-devel] [PATCH] Event channel request fix




Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> wrote on 10/06/2005 04:21:02 AM:

>
> On 6 Oct 2005, at 04:05, Stefan Berger wrote:
>
> >
> > I compiled Xen for SMP and for some strange reason I could not always
> > get the network interface connected to the backend - same for the TPM
> > frontend and probably also block frontend. The attached patch fixes
> > this problem for all three drivers by explicitly setting the requested
> > port for the channel to 0. Since the structure is on the stack (and
> > not declared static) all its members should be explicitly initialized.
> > I don't know why I did not encounter this problem on non-SMP systems
> > before...
>
> I broke it yesterday. Previously 'cmd' was statically initialised, and
> that caused all other fields to get filled with zero automatically.
> Oops. :-)


What about introducing functions like


inline int HV_EVTCHNOP_alloc_unbound(domid_t ldom,
                                     domid_t rdom,
                                     U32 *port
                                     )
{
        int err;
        evtchn_op_t op = {
                .cmd = EVTCHNOP_alloc_unbound;
                .u.alloc_unbound.dom = ldom;
                .u.alloc_unbound.remote_dom = rdom;
                .u.alloc_unbound.port = *port;
        }
        err = HYPERVISOR_event_channel_op(&op);
        *port = op.u.alloc_unbound.port;
        return err;
}

to hide the specifics of the structure that needs to be filled out and provide a form of parameter safety by forcing the caller to pass all necessary paramers.

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

 


Rackspace

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