Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 144179 Details for
Bug 219897
Unmatched decrementing of net device reference count
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
upstream fix
xen-netfront.fixes.patch (text/plain), 3.71 KB, created by
Glauber Costa
on 2006-12-21 13:57:03 UTC
(
hide
)
Description:
upstream fix
Filename:
MIME Type:
Creator:
Glauber Costa
Created:
2006-12-21 13:57:03 UTC
Size:
3.71 KB
patch
obsolete
># HG changeset patch ># User kfraser@localhost.localdomain ># Node ID e99ba0c6c0461159a40f27c9891e13098e791dca ># Parent 301bcae1692814d4261560cb053278ee51bfb1c0 >[NET] front: Fix interface teardown. > >Original bug discovered and fixed by Glauber de Oliveira Costa ><gcosta@redhat.com>. > >Signed-off-by: Keir Fraser <keir@xensource.com> > >diff -r 301bcae16928 -r e99ba0c6c046 linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c >--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Wed Dec 20 11:21:04 2006 >+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Wed Dec 20 11:39:22 2006 >@@ -244,12 +244,8 @@ > static int setup_device(struct xenbus_device *, struct netfront_info *); > static struct net_device *create_netdev(struct xenbus_device *); > >-static void netfront_closing(struct xenbus_device *); >- > static void end_access(int, void *); > static void netif_disconnect_backend(struct netfront_info *); >-static int open_netdev(struct netfront_info *); >-static void close_netdev(struct netfront_info *); > > static int network_connect(struct net_device *); > static void network_tx_buf_gc(struct net_device *); >@@ -293,9 +289,20 @@ > info = netdev_priv(netdev); > dev->dev.driver_data = info; > >- err = open_netdev(info); >- if (err) >+ err = register_netdev(info->netdev); >+ if (err) { >+ printk(KERN_WARNING "%s: register_netdev err=%d\n", >+ __FUNCTION__, err); > goto fail; >+ } >+ >+ err = xennet_sysfs_addif(info->netdev); >+ if (err) { >+ unregister_netdev(info->netdev); >+ printk(KERN_WARNING "%s: add sysfs failed err=%d\n", >+ __FUNCTION__, err); >+ goto fail; >+ } > > return 0; > >@@ -305,6 +312,24 @@ > return err; > } > >+static int __devexit netfront_remove(struct xenbus_device *dev) >+{ >+ struct netfront_info *info = dev->dev.driver_data; >+ >+ DPRINTK("%s\n", dev->nodename); >+ >+ netif_disconnect_backend(info); >+ >+ del_timer_sync(&info->rx_refill_timer); >+ >+ xennet_sysfs_delif(info->netdev); >+ >+ unregister_netdev(info->netdev); >+ >+ free_netdev(info->netdev); >+ >+ return 0; >+} > > /** > * We are reconnecting to the backend, due to a suspend/resume, or a backend >@@ -534,9 +559,7 @@ > break; > > case XenbusStateClosing: >- if (dev->state == XenbusStateClosed) >- break; >- netfront_closing(dev); >+ xenbus_frontend_closed(dev); > break; > } > } >@@ -1995,70 +2018,6 @@ > } > > >-/* ** Close down ** */ >- >- >-/** >- * Handle the change of state of the backend to Closing. We must delete our >- * device-layer structures now, to ensure that writes are flushed through to >- * the backend. Once is this done, we can switch to Closed in >- * acknowledgement. >- */ >-static void netfront_closing(struct xenbus_device *dev) >-{ >- struct netfront_info *info = dev->dev.driver_data; >- >- DPRINTK("%s\n", dev->nodename); >- >- close_netdev(info); >- xenbus_frontend_closed(dev); >-} >- >- >-static int __devexit netfront_remove(struct xenbus_device *dev) >-{ >- struct netfront_info *info = dev->dev.driver_data; >- >- DPRINTK("%s\n", dev->nodename); >- >- netif_disconnect_backend(info); >- free_netdev(info->netdev); >- >- return 0; >-} >- >- >-static int open_netdev(struct netfront_info *info) >-{ >- int err; >- >- err = register_netdev(info->netdev); >- if (err) { >- printk(KERN_WARNING "%s: register_netdev err=%d\n", >- __FUNCTION__, err); >- return err; >- } >- >- err = xennet_sysfs_addif(info->netdev); >- if (err) { >- unregister_netdev(info->netdev); >- printk(KERN_WARNING "%s: add sysfs failed err=%d\n", >- __FUNCTION__, err); >- return err; >- } >- >- return 0; >-} >- >-static void close_netdev(struct netfront_info *info) >-{ >- del_timer_sync(&info->rx_refill_timer); >- >- xennet_sysfs_delif(info->netdev); >- unregister_netdev(info->netdev); >-} >- >- > static void netif_disconnect_backend(struct netfront_info *info) > { > /* Stop old i/f to prevent errors whilst we rebuild the state. */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 219897
: 144179