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

Re: [Xen-devel] Re: [patch] netfront: unregister net device at backend_changed() if network_connect() failed


  • To: Joe Jin <joe.jin@xxxxxxxxxx>
  • 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
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AclKJKob6MTByrYXEd2n/QAWy6hiGQ==
  • Thread-topic: [Xen-devel] Re: [patch] netfront: unregister net device at backend_changed() if network_connect() failed

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


 


Rackspace

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