[PATCH 4/13]: PCI Err: e100 ethernet driver recovery

Linas Vepstas linas at austin.ibm.com
Thu Jun 30 01:59:54 EST 2005


On Wed, Jun 29, 2005 at 11:46:58AM +1000, Benjamin Herrenschmidt was heard to remark:
> On Tue, 2005-06-28 at 18:58 -0500, Linas Vepstas wrote:
> > /** e100_io_error_detected() is called when PCI error is detected */
> > +static int e100_io_error_detected (struct pci_dev *pdev, enum
> > pci_channel_state state)
> > +{
> > +       struct net_device *netdev = pci_get_drvdata(pdev);
> > +       struct nic *nic = netdev_priv(netdev);
> > +
> > +       mod_timer(&nic->watchdog, jiffies + 30*HZ);
> > +       e100_down(nic);
> > +
> > +       /* Request a slot reset. */
> > +       return PCIERR_RESULT_NEED_RESET;
> > +}
> 
> I'm not sure just "pushing" the watchdog timer to 30sec in the future is
> the way to go here. What about netif_stop_queue() or so ?

Yep, OK. Pushig the timer would in fact break if the device was marked
perm disabled.

--linas



More information about the Linuxppc64-dev mailing list