* 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
* 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).