> On 02/14/2017 09:44 PM, Raghava Aditya Renukunta wrote: > > This issue showed up on a kdump debug(single CPU on powerkvm), when > EEH > > errors rendered the adapter unusable. The driver correctly detected the > > issue and attempted to restart the controller, in doing so the driver > > attempted to read the status registers of the controller. This triggered > > additional eeh errors which continued for a good 6 minutes. > > > > Fixed by returning without waiting when EEH error is reported. > > > > Signed-off-by: Raghava Aditya Renukunta > <RaghavaAditya.Renukunta@xxxxxxxxxxxxx> > > Reviewed-by: David Carroll <David.Carroll@xxxxxxxxxxxxx> > > --- > > drivers/scsi/aacraid/commsup.c | 38 > +++++++++++++++++++++++++++++++++++++- > > 1 file changed, 37 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/scsi/aacraid/commsup.c > b/drivers/scsi/aacraid/commsup.c > > index 56090f5..6220b47 100644 > > --- a/drivers/scsi/aacraid/commsup.c > > +++ b/drivers/scsi/aacraid/commsup.c > > @@ -461,6 +461,30 @@ int aac_queue_get(struct aac_dev * dev, u32 * > index, u32 qid, struct hw_fib * hw > > return 0; > > } > > Please do > > > +#ifdef CONFIG_EEH > > +static inline int aac_check_eeh_failure(struct aac_dev *dev) > > +{ > > + /* Check for an EEH failure for the given > > + * device node. Function eeh_dev_check_failure() > > + * returns 0 if there has not been an EEH error > > + * otherwise returns a non-zero value. > > + * > > + * Need to be called before any PCI operation, > > + * i.e.,before aac_adapter_check_health() > > + */ > > + struct eeh_dev *edev = pci_dev_to_eeh_dev(dev->pdev); > > + > > + if (eeh_dev_check_failure(edev)) { > > + /* The EEH mechanisms will handle this > > + * error and reset the device if > > + * necessary. > > + */ > > + return 1; > > + } > > + return 0; > > +} > > #else > static inline int aac_check_eeh_failure(struct aac_dev *dev) > { > return 0; > } > > > +#endif > > + > > [...] > > > + > > +#if defined(CONFIG_EEH) > > + if (aac_check_eeh_failure(dev)) > > + return -EFAULT; > > +#endif > > + > > So the #if defined() blocks become unnecessary. Yes I can do that. Regards, Raghava Aditya > Thanks, > Johannes > -- > Johannes Thumshirn Storage > jthumshirn@xxxxxxx +49 911 74053 689 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: Felix Imendörffer, Jane Smithard, Graham Norton > HRB 21284 (AG Nürnberg) > Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850