From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Yanmin" Date: Tue, 23 Jan 2007 01:40:45 +0000 Subject: Re: Questions on PCI express AER support in HBA driver Message-Id: <1169516445.15989.294.camel@ymzhang> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: linux-hotplug@vger.kernel.org On Mon, 2007-01-22 at 05:59 -0800, Allexio Ju wrote: > On 1/21/07, Zhang, Yanmin wrote: > > > >From the document "The PCI Express AER Driver Guide" that you wrote, > > > I've got an impression that SCSI LLD driver needs to have > > > (*link_reset). Isn't this callback also required if the driver > > > supports PCIe AER? > > link_reset was deleted in my final AER patch. My objective is > > to keep the callbacks simple, so driver developers are willing to > > add AER support. > > > > Linas said he would remove it from the definition of pci_error_handlers > > only after a long time that noboday really uses it. > So, instead of having (*reset_link) in pcie_port_service_driver > structure, I just need (*link_reset) in pci_error_handler structure to > support PCIe AER. Is this correct understanding? Sorry, the definition names are confusing which I tried to avoid. 1) pcie_port_service_driver is service driver of port, not end-point device= s. SCSI LLD driver should be end-point devices, so you needn't use reset_link in pcie_port_service_driver. 2) (*link_reset) in pci_error_handler structure was obsolete. Pls. don't us= e it at all. Originally, this callback was to tell driver that a pci express lin= k was reset. Its problem is error_detected might return PCI_ERS_RESULT_NEED_RESET= also which means next recovery step is slot_reset. In addition, I want to keep t= he error recovery steps simple, so driver developers are happy to add callback= s in drivers. Another reason is the specific driver should be compatible for pci= and pci-express together. If we use link_reset in pci_error_handler, the codes = might be not compatible. Typically, the callbacks in pci-e (or just pci) drivers could be: 1) pci_ers_result_t (*error_detected)(struct pci_dev *dev, enum pci_channel_state error); 2) pci_ers_result_t (*slot_reset)(struct pci_dev *dev); 3) void (*resume)(struct pci_dev *dev); Thanks, Yanmin ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=DEVD= EV _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel