* Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP [not found] ` <4E0CDF8B.3020505@emulex.com> @ 2011-07-01 14:49 ` James Smart 2011-07-01 15:08 ` Jon Mason [not found] ` <4E0DDE5D.8040904@emulex.com> 1 sibling, 1 reply; 7+ messages in thread From: James Smart @ 2011-07-01 14:49 UTC (permalink / raw) To: linux-wireless@vger.kernel.org Cc: James Smart, Jon Mason, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, Larry.Finger, chaoming_li 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<jdmason@kudzu.us> >> --- >> 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 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP 2011-07-01 14:49 ` Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP James Smart @ 2011-07-01 15:08 ` Jon Mason 2011-07-02 16:49 ` Larry Finger 2011-07-06 3:15 ` Jon Mason 0 siblings, 2 replies; 7+ messages in thread From: Jon Mason @ 2011-07-01 15:08 UTC (permalink / raw) To: James Smart Cc: linux-wireless@vger.kernel.org, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, Larry.Finger, chaoming_li pci_is_pcie checks for a PCI-E capability offset that was determined by calling pci_find_capability during the PCI bus walking. Based on your description above this should be functionally equivalent. If this is not safe, then the PCI bus walking code is most likely busted on EEH enabled PPC systems (and that is a BIG problem). Thanks, Jon On Fri, Jul 1, 2011 at 9:49 AM, James Smart <james.smart@emulex.com> 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<jdmason@kudzu.us> >>> --- >>> 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 >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP 2011-07-01 15:08 ` Jon Mason @ 2011-07-02 16:49 ` Larry Finger 2011-07-02 17:04 ` Jon Mason 2011-07-04 1:47 ` Adrian Chadd 2011-07-06 3:15 ` Jon Mason 1 sibling, 2 replies; 7+ messages in thread From: Larry Finger @ 2011-07-02 16:49 UTC (permalink / raw) To: Jon Mason Cc: James Smart, linux-wireless@vger.kernel.org, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, chaoming_li On 07/01/2011 10:08 AM, Jon Mason wrote: > pci_is_pcie checks for a PCI-E capability offset that was determined > by calling pci_find_capability during the PCI bus walking. Based on > your description above this should be functionally equivalent. If > this is not safe, then the PCI bus walking code is most likely busted > on EEH enabled PPC systems (and that is a BIG problem). Are there PPC systems that support PCI-E cards? I looked for one earlier and did not find any. In particular, I wanted a machine to test the Realtek drivers for correct big-endian operation. I settled on a Powerbook G4 so that I could test the USB drivers. Larry ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP 2011-07-02 16:49 ` Larry Finger @ 2011-07-02 17:04 ` Jon Mason 2011-07-04 1:47 ` Adrian Chadd 1 sibling, 0 replies; 7+ messages in thread From: Jon Mason @ 2011-07-02 17:04 UTC (permalink / raw) To: Larry Finger Cc: James Smart, linux-wireless@vger.kernel.org, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, chaoming_li On Sat, Jul 2, 2011 at 11:49 AM, Larry Finger <Larry.Finger@lwfinger.net> wrote: > On 07/01/2011 10:08 AM, Jon Mason wrote: >> >> pci_is_pcie checks for a PCI-E capability offset that was determined >> by calling pci_find_capability during the PCI bus walking. Based on >> your description above this should be functionally equivalent. If >> this is not safe, then the PCI bus walking code is most likely busted >> on EEH enabled PPC systems (and that is a BIG problem). > > Are there PPC systems that support PCI-E cards? I looked for one earlier and > did not find any. In particular, I wanted a machine to test the Realtek > drivers for correct big-endian operation. I settled on a Powerbook G4 so > that I could test the USB drivers. High-end IBM PPC systems have PCI-E, but are most likely too expensive for an individual user. If you are okay with 32bit PPC, you can use qemu to emulate PPC (see qemu-system-ppc). I believe you can do USB pass-though on the emulated system. Thanks, Jon > Larry > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP 2011-07-02 16:49 ` Larry Finger 2011-07-02 17:04 ` Jon Mason @ 2011-07-04 1:47 ` Adrian Chadd 1 sibling, 0 replies; 7+ messages in thread From: Adrian Chadd @ 2011-07-04 1:47 UTC (permalink / raw) To: Larry Finger Cc: Jon Mason, James Smart, linux-wireless@vger.kernel.org, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, chaoming_li I've been made aware of PPC + PCI-E embedded systems boards. Adrian ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP 2011-07-01 15:08 ` Jon Mason 2011-07-02 16:49 ` Larry Finger @ 2011-07-06 3:15 ` Jon Mason 1 sibling, 0 replies; 7+ messages in thread From: Jon Mason @ 2011-07-06 3:15 UTC (permalink / raw) To: James Smart Cc: linux-wireless@vger.kernel.org, Richard Lary, wey-yi.w.guy, Stanislaw Gruszka, Larry.Finger, chaoming_li Per Richard Lary's testing, this is not an issue with the latest kernel. http://www.spinics.net/lists/linux-pci/msg11350.html Thanks, Jon On Fri, Jul 1, 2011 at 10:08 AM, Jon Mason <jdmason@kudzu.us> wrote: > pci_is_pcie checks for a PCI-E capability offset that was determined > by calling pci_find_capability during the PCI bus walking. Based on > your description above this should be functionally equivalent. If > this is not safe, then the PCI bus walking code is most likely busted > on EEH enabled PPC systems (and that is a BIG problem). > > Thanks, > Jon > > On Fri, Jul 1, 2011 at 9:49 AM, James Smart <james.smart@emulex.com> 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<jdmason@kudzu.us> >>>> --- >>>> 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 >>> >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <4E0DDE5D.8040904@emulex.com>]
* Re: Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP [not found] ` <4E0DDE5D.8040904@emulex.com> @ 2011-07-06 14:38 ` James Smart 0 siblings, 0 replies; 7+ messages in thread From: James Smart @ 2011-07-06 14:38 UTC (permalink / raw) 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 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<jdmason@kudzu.us> >>> --- >>> 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 >> > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-07-06 14:38 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1309196346-15749-1-git-send-email-jdmason@kudzu.us>
[not found] ` <4E0CDF8B.3020505@emulex.com>
2011-07-01 14:49 ` Warning: iwlegacy/iwlwifi/rtlwifi : removal of PCI_CAP_ID_EXP James Smart
2011-07-01 15:08 ` Jon Mason
2011-07-02 16:49 ` Larry Finger
2011-07-02 17:04 ` Jon Mason
2011-07-04 1:47 ` Adrian Chadd
2011-07-06 3:15 ` Jon Mason
[not found] ` <4E0DDE5D.8040904@emulex.com>
2011-07-06 14:38 ` James Smart
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).