From: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Such poisoning can cause oopses either because the refcount is not
zero when the poisoning occurs, or due to kernel debugging options
being enabled.
pci_release_regions (pdev);
-#ifndef NETDRV_NDEBUG
- /* poison memory before freeing */
- memset (dev, 0xBC,
- sizeof (struct net_device) +
- sizeof (struct netdrv_private));
-#endif /* NETDRV_NDEBUG */
-
free_netdev (dev);
pci_set_drvdata (pdev, NULL);
iounmap(tp->mmio_addr);
pci_release_regions(pdev);
- // poison memory before freeing
- memset(dev, 0xBC,
- sizeof (struct net_device) + sizeof (struct rtl8169_private));
-
pci_disable_device(pdev);
free_netdev(dev);
pci_set_drvdata(pdev, NULL);
iounmap(tp->mmio_addr);
pci_release_regions(pdev);
- // poison memory before freeing
- memset(dev, 0xBC,
- sizeof (struct net_device) + sizeof (struct sis190_private));
-
free_netdev(dev);
pci_set_drvdata(pdev, NULL);
}