FreeBSD Bugzilla – Attachment 119546 Details for
Bug 162110
[igb] [panic] RELENG_9 panics on boot in IGB driver - [regression] from 8.2
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
if_igb.c.diff
if_igb.c.diff (text/x-diff; charset=koi8-r), 2.59 KB, created by
Gleb Smirnoff
on 2011-10-31 19:37:28 UTC
(
hide
)
Description:
if_igb.c.diff
Filename:
MIME Type:
Creator:
Gleb Smirnoff
Created:
2011-10-31 19:37:28 UTC
Size:
2.59 KB
patch
obsolete
>Index: if_igb.c >=================================================================== >--- if_igb.c (revision 226966) >+++ if_igb.c (working copy) >@@ -670,11 +670,12 @@ > > err_late: > igb_detach(dev); >- igb_free_transmit_structures(adapter); >- igb_free_receive_structures(adapter); > igb_release_hw_control(adapter); > if (adapter->ifp != NULL) > if_free(adapter->ifp); >+ igb_free_pci_resources(adapter); >+ return (error); >+ > err_pci: > igb_free_pci_resources(adapter); > free(adapter->mta, M_DEVBUF); >@@ -701,26 +702,37 @@ > > INIT_DEBUGOUT("igb_detach: begin"); > >- /* Make sure VLANS are not using driver */ >- if (adapter->ifp->if_vlantrunk != NULL) { >- device_printf(dev,"Vlan in use, detach first\n"); >- return (EBUSY); >- } >+ IGB_CORE_LOCK(adapter); >+ adapter->in_detach = 1; >+ igb_stop(adapter); >+ IGB_CORE_UNLOCK(adapter); > >- ether_ifdetach(adapter->ifp); >+ /* Unregister VLAN events */ >+ if (adapter->vlan_attach != NULL) >+ EVENTHANDLER_DEREGISTER(vlan_config, adapter->vlan_attach); >+ if (adapter->vlan_detach != NULL) >+ EVENTHANDLER_DEREGISTER(vlan_unconfig, adapter->vlan_detach); > >- if (adapter->led_dev != NULL) >- led_destroy(adapter->led_dev); >+ callout_drain(&adapter->timer); > >+ if (ifp != NULL) { >+ /* Make sure VLANS are not using driver */ >+ if (ifp->if_vlantrunk != NULL) { >+ device_printf(dev,"Vlan in use, detach first\n"); >+ return (EBUSY); >+ } >+ >+ ether_ifdetach(ifp); >+ > #ifdef DEVICE_POLLING >- if (ifp->if_capenable & IFCAP_POLLING) >- ether_poll_deregister(ifp); >+ if (ifp->if_capenable & IFCAP_POLLING) >+ ether_poll_deregister(ifp); > #endif >+ if_free(ifp); >+ } > >- IGB_CORE_LOCK(adapter); >- adapter->in_detach = 1; >- igb_stop(adapter); >- IGB_CORE_UNLOCK(adapter); >+ if (adapter->led_dev != NULL) >+ led_destroy(adapter->led_dev); > > e1000_phy_hw_reset(&adapter->hw); > >@@ -734,17 +746,8 @@ > igb_enable_wakeup(dev); > } > >- /* Unregister VLAN events */ >- if (adapter->vlan_attach != NULL) >- EVENTHANDLER_DEREGISTER(vlan_config, adapter->vlan_attach); >- if (adapter->vlan_detach != NULL) >- EVENTHANDLER_DEREGISTER(vlan_unconfig, adapter->vlan_detach); >- >- callout_drain(&adapter->timer); >- > igb_free_pci_resources(adapter); > bus_generic_detach(dev); >- if_free(ifp); > > igb_free_transmit_structures(adapter); > igb_free_receive_structures(adapter); >@@ -2135,7 +2138,8 @@ > callout_stop(&adapter->timer); > > /* Tell the stack that the interface is no longer active */ >- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); >+ if (ifp != NULL) >+ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); > > /* Unarm watchdog timer. */ > for (int i = 0; i < adapter->num_queues; i++, txr++) {
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 162110
: 119546