[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.

>   -- Keir
Xen-devel mailing list



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