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] Re: [patch] netfront: unregister net device at backend_c

To: Joe Jin <joe.jin@xxxxxxxxxx>
Subject: Re: [Xen-devel] Re: [patch] netfront: unregister net device at backend_changed() if network_connect() failed
From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Date: Wed, 19 Nov 2008 08:56:09 +0000
Cc: Xen-Devel <Xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 19 Nov 2008 00:56:31 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20081119021337.GA16531@xxxxxxxxxxxxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AclKJKob6MTByrYXEd2n/QAWy6hiGQ==
Thread-topic: [Xen-devel] Re: [patch] netfront: unregister net device at backend_changed() if network_connect() failed
User-agent: Microsoft-Entourage/11.4.0.080122
On 19/11/08 02:13, "Joe Jin" <joe.jin@xxxxxxxxxx> wrote:

>> One concern I have is that leaving an interface structure allocated but
>> unregistered is not a state we've previously handled in netfront, and could
>> cause bad kernel behaviour if, for example, the netif gets unprobed later.
>> 
> 
> I think if device initilise failed, we'd better release all resources like
> former's netif_free(): http://xen.markmail.org/message/2bp3xgsqzdofwoy6
> from patch description the patch tried to *"eliminates earlier workaround
> patch
> for an observed crash."*
> In fact the crashed caused by not unregister the device made the interface's
> state is NETREG_REGISTERED, when network_connect() failed, call free_netdev()
> would trigered BUG_ON, just add unregister_netdev() would solved the issue.

My point is, if you unregister_netdev() on failed network_connect(), and
then do it unconditionally again in netfront_remove(), you will BUG_ON() in
unregister_netdevice().

 -- Keir



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