commit c3b99f0db9b2ef4292ef774bae1ea0d6f1e8d82a Author: Marcel van Nies Date: Sat Apr 21 15:34:55 2007 -0700 [SUNHME]: Fix module unload. Signed-off-by: Marcel van Nies Signed-off-by: David S. Miller commit ef9467f8f0803881d6b20ad6f0f770fc39bcc2c2 Author: Jurij Smakov Date: Sun Dec 3 19:33:02 2006 -0800 [SUNHME]: Fix for sunhme failures on x86 The following patch fixes the failure of sunhme drivers on x86 hosts due to missing pci_enable_device() and pci_set_master() calls, lost during code refactoring. It has been filed as bugzilla bug #7502 [0] and Debian bug #397460 [1]. [0] http://bugzilla.kernel.org/show_bug.cgi?id=7502 [1] http://bugs.debian.org/397460 Signed-off-by: Jurij Smakov Signed-off-by: David S. Miller --- linux-2.6.18.noarch/drivers/net/sunhme.c.orig 2006-09-19 23:42:06.000000000 -0400 +++ linux-2.6.18.noarch/drivers/net/sunhme.c 2007-09-12 14:23:08.000000000 -0400 @@ -3012,6 +3012,11 @@ #endif err = -ENODEV; + + if (pci_enable_device(pdev)) + goto err_out; + pci_set_master(pdev); + if (!strcmp(prom_name, "SUNW,qfe") || !strcmp(prom_name, "qfe")) { qp = quattro_pci_find(pdev); if (qp == NULL) @@ -3308,7 +3313,7 @@ struct happy_meal *hp = dev_get_drvdata(&dev->dev); struct net_device *net_dev = hp->dev; - unregister_netdevice(net_dev); + unregister_netdev(net_dev); /* XXX qfe parent interrupt... */