Re: [PATCH 5/5] PCI-Express AER implemetation: pcie_portdrv error handler

Zhang, Yanmin
2006-07-26T04:57:44Z

On Tue, 2006-07-25 at 03:37, Linas Vepstas wrote:
> Hi,
>
> Sorry for a late reply...
>
> On Fri, Jul 14, 2006 at 01:35:38PM +0800, Zhang, Yanmin wrote:
> >
> > --- linux-2.6.17/drivers/pci/pcie/portdrv_pci.c 2006-06-22 16:27:35.000000000 +0800
> > +++ linux-2.6.17_aer/drivers/pci/pcie/portdrv_pci.c 2006-06-22 16:46:29.000000000 +0800
> > +
> > +static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev,
> > + enum pci_channel_state error)
> > +{
> > + /* If fatal, save cfg space for possible link reset at upstream */
> > + if (error == pci_channel_io_frozen)
> > + pcie_portdrv_save_config(dev);
>
> If the channel is frozen, is the config space still readable?
> In my case, I had to save config space data early on before
> the bus error.
You are right.

>
> What's more, I discovered that I had to save the pci config
> space data before device drivers do thier probe. During the probe,
> device drivers will change the config. For example, they'll enable
> interrupts and dma. If you turn these on, and then do the probe,
> you'll get spectacuar failures.
>
> To be safe, I found the best thing to do was to save the pci
> config space state as it was during boot, before the PCI probe
> routines ran.
Thanks. I will try.

>
> --linas