WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Event channel request fix
From: Stefan Berger <stefanb@xxxxxxxxxx>
Date: Thu, 6 Oct 2005 08:48:10 -0500
Cc: xen-devel List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 06 Oct 2005 13:45:48 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4aaf3212f6a974120bb2581769ad0666@xxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

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
<Prev in Thread] Current Thread [Next in Thread>