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 296256 Details for
Bug 435351
[RHEL4.7]: PV kernel can OOPs during live migrate
[?]
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]
Fix for the crash mentioned in this bug
linux-2.6.9-live-migrate-netfront-crash.patch (text/plain), 3.65 KB, created by
Chris Lalancette
on 2008-02-28 20:34:08 UTC
(
hide
)
Description:
Fix for the crash mentioned in this bug
Filename:
MIME Type:
Creator:
Chris Lalancette
Created:
2008-02-28 20:34:08 UTC
Size:
3.65 KB
patch
obsolete
>--- linux-2.6.9/drivers/xen/netfront/netfront.c.orig 2008-02-28 15:17:32.000000000 -0500 >+++ linux-2.6.9/drivers/xen/netfront/netfront.c 2008-02-28 15:32:08.000000000 -0500 >@@ -209,12 +209,8 @@ static inline grant_ref_t xennet_get_rx_ > 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 void netif_free(struct netfront_info *); > > static int network_connect(struct net_device *); >@@ -259,9 +255,20 @@ static int __devinit netfront_probe(stru > 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; > >@@ -271,6 +278,24 @@ static int __devinit netfront_probe(stru > 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 >@@ -503,7 +528,7 @@ static void backend_changed(struct xenbu > break; > > case XenbusStateClosing: >- netfront_closing(dev); >+ xenbus_frontend_closed(dev); > break; > } > } >@@ -1959,70 +1984,6 @@ inetdev_notify(struct notifier_block *th > } > > >-/* ** 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. */ >@@ -2047,7 +2008,6 @@ static void netif_disconnect_backend(str > > static void netif_free(struct netfront_info *info) > { >- close_netdev(info); > netif_disconnect_backend(info); > free_netdev(info->netdev); > }
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 435351
: 296256