Re: Linux 2.6.19-rc3

Jean Delvare
2006-10-26T07:20:06Z

Hi Auke,

On Wed, 25 Oct 2006 09:25:14 -0700, Auke Kok wrote:
> Damien Wyart wrote:
> > > > Auke Kok (1):
> > > > e100: fix reboot -f with netconsole enabled
> >
> > * Jean Delvare <khali@linux-fr.org> [2006-10-25 13:25]: This one breaks
> > > power-off and reboot on my laptop (thanks to git bisect for isolating
> > > it). The shutdown freezes after "Shutdown: hda" or "Rebooting".
> > > SysRq-p says the CPU is idle. If you need additional information on my
> > > config or want me to do more tests, just ask.
> >
> > This has already been discussed, a fix has been posted (see recent
> > netdev messages) and should be pulled soon into mainline (I guess).
>
> for those interested, here's the fix (which is already pushed to jgarzik)
>
> diff --git a/drivers/net/e100.c b/drivers/net/e100.c
> index d4a2572..815eb29 100644
> --- a/drivers/net/e100.c
> +++ b/drivers/net/e100.c
> @@ -2719,7 +2719,10 @@ static int e100_suspend(struct pci_dev *
> struct net_device *netdev = pci_get_drvdata(pdev);
> struct nic *nic = netdev_priv(netdev);
>
> - netif_poll_disable(nic->netdev);
> +#ifdef CONFIG_E100_NAPI
> + if (netif_running(netdev))
> + netif_poll_disable(nic->netdev);
> +#endif
> del_timer_sync(&nic->watchdog);
> netif_carrier_off(nic->netdev);
>
> @@ -2763,7 +2766,10 @@ static void e100_shutdown(struct pci_dev
> struct net_device *netdev = pci_get_drvdata(pdev);
> struct nic *nic = netdev_priv(netdev);
>
> - netif_poll_disable(nic->netdev);
> +#ifdef CONFIG_E100_NAPI
> + if (netif_running(netdev))
> + netif_poll_disable(nic->netdev);
> +#endif
> del_timer_sync(&nic->watchdog);
> netif_carrier_off(nic->netdev);

The patch above had some formating problems, but after fixing that I
could apply it and I confirm it fixes my problem. Thanks!

--
Jean Delvare