From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from exht1.emulex.com ([138.239.113.183]:33067 "EHLO exht1.ad.emulex.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752862Ab1GFOic (ORCPT ); Wed, 6 Jul 2011 10:38:32 -0400 Message-ID: <4E147363.1060001@emulex.com> (sfid-20110706_163837_310770_F8AF7F58) Date: Wed, 6 Jul 2011 10:38:27 -0400 From: James Smart MIME-Version: 1.0 To: "linux-wireless@vger.kernel.org" CC: Jon Mason , Richard Lary , "wey-yi.w.guy@intel.com" , Stanislaw Gruszka , "Larry.Finger@lwfinger.net" , "chaoming_li@realsil.com.cn" Subject: Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP References: <1309196346-15749-1-git-send-email-jdmason@kudzu.us> <4E0CDF8B.3020505@emulex.com> <4E0DDE5D.8040904@emulex.com> In-Reply-To: <4E0DDE5D.8040904@emulex.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Sender: linux-wireless-owner@vger.kernel.org List-ID: FYI: after discussion of this error on linux-pci and linuxppc-dev, the error was corrected in a patch checked into 2.6.33-rc6/3.0-rc6 (http://marc.info/?l=linux-pci&m=130992047232053&w=2) -- james s On 7/1/2011 10:49 AM, James Smart wrote: > All, > > I wanted to communicate a potential warning to those drivers that had a patch > submitted to replace config space searches of PCI_CAP_ID_EXP with shorthand > options such as is_pcie and pci_is_pcie(). > > Testing with the lpfc driver and AER/EEH identified cases where the short-hand > search options would fail on PPC platforms. The only successful option in all > cases was the explicit search via PCI_CAP_ID_EXP. Therefore, I recommend > that this change not be accepted until the platform level issue can be > identified and corrected. > > -- james s > > > > On 6/30/2011 4:41 PM, James Smart wrote: >> Jon, >> >> I must NACK this patch to the lpfc driver and recommend that all other patches >> which replace pci_find_capability(pdef, PCI_CAP_ID_EXP) with >> "pci_is_pcie(pdev)" are NACK'd as well. >> >> The reason is due to an issue on PPC platforms whereby use of "pdev->is_pcie" >> and pci_is_pcie() will erroneously fail under some conditions, but explicit >> search for the capability struct via pci_find_capability() is always >> successful. I expect this to be due a shadowing of pci config space in the >> hal/platform that isn't sufficiently built up. We detected this issue while >> testing AER/EEH, and are functional only if the pci_find_capability() option >> is used. >> >> -- james s >> >> >> >> On 6/27/2011 1:39 PM, Jon Mason wrote: >>> The PCIE capability offset is saved during PCI bus walking. It will >>> remove an unnecessary search in the PCI configuration space if this >>> value is referenced instead of reacquiring it. Also, pci_is_pcie is a >>> better way of determining if the device is PCIE or not (as it uses the >>> same saved PCIE capability offset). >>> >>> Signed-off-by: Jon Mason >>> --- >>> drivers/scsi/lpfc/lpfc_init.c | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c >>> index 148b98d..9000ad0 100644 >>> --- a/drivers/scsi/lpfc/lpfc_init.c >>> +++ b/drivers/scsi/lpfc/lpfc_init.c >>> @@ -3970,7 +3970,7 @@ lpfc_enable_pci_dev(struct lpfc_hba *phba) >>> pci_save_state(pdev); >>> >>> /* PCIe EEH recovery on powerpc platforms needs fundamental reset */ >>> - if (pci_find_capability(pdev, PCI_CAP_ID_EXP)) >>> + if (pci_is_pcie(pdev)) >>> pdev->needs_freset = 1; >>> >>> return 0; >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> >