Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1472123 > unrolled thread
| Started by | Brian Norris <briannorris@chromium.org> |
|---|---|
| First post | 2016-08-29 23:20 +0200 |
| Last post | 2016-08-31 15:10 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] PCI: rockchip: Correct the register value for clearing client interrupts Brian Norris <briannorris@chromium.org> - 2016-08-29 23:20 +0200
Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts Bjorn Helgaas <helgaas@kernel.org> - 2016-08-30 02:00 +0200
Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts Shawn Lin <shawn.lin@rock-chips.com> - 2016-08-31 03:00 +0200
Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts Bjorn Helgaas <helgaas@kernel.org> - 2016-08-31 15:10 +0200
| From | Brian Norris <briannorris@chromium.org> |
|---|---|
| Date | 2016-08-29 23:20 +0200 |
| Subject | [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts |
| Message-ID | <sbC8i-45Z-5@gated-at.bofh.it> |
I'm pretty sure the bitwise 'or' was meant for the value parameter, not
the register parameter.
This resolves an interrupt storm, where if we receive any client IRQs
(e.g., correctable errors), we fail to ever clear them properly, so they
reoccur indefinitely.
Fixes: 199410f6270e ("PCI: rockchip: Add Rockchip PCIe controller support")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
---
Patched against git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-rockchip
drivers/pci/host/pcie-rockchip.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
index 8fb47ee9eaee..e77aec3cc869 100644
--- a/drivers/pci/host/pcie-rockchip.c
+++ b/drivers/pci/host/pcie-rockchip.c
@@ -689,9 +689,10 @@ static irqreturn_t rockchip_pcie_client_irq_handler(int irq, void *arg)
PCIE_CLIENT_INT_MSG | PCIE_CLIENT_INT_HOT_RST |
PCIE_CLIENT_INT_DPA | PCIE_CLIENT_INT_FATAL_ERR |
PCIE_CLIENT_INT_NFATAL_ERR |
- PCIE_CLIENT_INT_CORR_ERR),
- PCIE_CLIENT_INT_STATUS |
- PCIE_CLIENT_INT_PHY);
+ PCIE_CLIENT_INT_CORR_ERR |
+ PCIE_CLIENT_INT_PHY),
+ PCIE_CLIENT_INT_STATUS);
+
return IRQ_HANDLED;
}
--
2.8.0.rc3.226.g39d4020
[toc] | [next] | [standalone]
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Date | 2016-08-30 02:00 +0200 |
| Subject | Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts |
| Message-ID | <sbED7-5tL-9@gated-at.bofh.it> |
| In reply to | #1472123 |
On Mon, Aug 29, 2016 at 02:14:11PM -0700, Brian Norris wrote:
> I'm pretty sure the bitwise 'or' was meant for the value parameter, not
> the register parameter.
>
> This resolves an interrupt storm, where if we receive any client IRQs
> (e.g., correctable errors), we fail to ever clear them properly, so they
> reoccur indefinitely.
>
> Fixes: 199410f6270e ("PCI: rockchip: Add Rockchip PCIe controller support")
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Cc: Shawn Lin <shawn.lin@rock-chips.com>
Shawn, please confirm. If this patch is correct, I'll fold it into
the initial commit that adds the driver.
> ---
> Patched against git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-rockchip
>
> drivers/pci/host/pcie-rockchip.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
> index 8fb47ee9eaee..e77aec3cc869 100644
> --- a/drivers/pci/host/pcie-rockchip.c
> +++ b/drivers/pci/host/pcie-rockchip.c
> @@ -689,9 +689,10 @@ static irqreturn_t rockchip_pcie_client_irq_handler(int irq, void *arg)
> PCIE_CLIENT_INT_MSG | PCIE_CLIENT_INT_HOT_RST |
> PCIE_CLIENT_INT_DPA | PCIE_CLIENT_INT_FATAL_ERR |
> PCIE_CLIENT_INT_NFATAL_ERR |
> - PCIE_CLIENT_INT_CORR_ERR),
> - PCIE_CLIENT_INT_STATUS |
> - PCIE_CLIENT_INT_PHY);
> + PCIE_CLIENT_INT_CORR_ERR |
> + PCIE_CLIENT_INT_PHY),
> + PCIE_CLIENT_INT_STATUS);
> +
> return IRQ_HANDLED;
> }
>
> --
> 2.8.0.rc3.226.g39d4020
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
[toc] | [prev] | [next] | [standalone]
| From | Shawn Lin <shawn.lin@rock-chips.com> |
|---|---|
| Date | 2016-08-31 03:00 +0200 |
| Subject | Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts |
| Message-ID | <sc22J-3Mi-1@gated-at.bofh.it> |
| In reply to | #1472171 |
On 2016/8/30 7:57, Bjorn Helgaas wrote:
> On Mon, Aug 29, 2016 at 02:14:11PM -0700, Brian Norris wrote:
>> I'm pretty sure the bitwise 'or' was meant for the value parameter, not
>> the register parameter.
>>
>> This resolves an interrupt storm, where if we receive any client IRQs
>> (e.g., correctable errors), we fail to ever clear them properly, so they
>> reoccur indefinitely.
>>
>> Fixes: 199410f6270e ("PCI: rockchip: Add Rockchip PCIe controller support")
>> Signed-off-by: Brian Norris <briannorris@chromium.org>
>> Cc: Shawn Lin <shawn.lin@rock-chips.com>
>
> Shawn, please confirm. If this patch is correct, I'll fold it into
> the initial commit that adds the driver.
yes, Brian's patch is correct. I probably didn't notice this as
the client interrput on EVB-rev1 board which I was using is broken, so
my SSD didn't actually yelled at this irqstorm.
Brain, thanks for fixing this.
>
>> ---
>> Patched against git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-rockchip
>>
>> drivers/pci/host/pcie-rockchip.c | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
>> index 8fb47ee9eaee..e77aec3cc869 100644
>> --- a/drivers/pci/host/pcie-rockchip.c
>> +++ b/drivers/pci/host/pcie-rockchip.c
>> @@ -689,9 +689,10 @@ static irqreturn_t rockchip_pcie_client_irq_handler(int irq, void *arg)
>> PCIE_CLIENT_INT_MSG | PCIE_CLIENT_INT_HOT_RST |
>> PCIE_CLIENT_INT_DPA | PCIE_CLIENT_INT_FATAL_ERR |
>> PCIE_CLIENT_INT_NFATAL_ERR |
>> - PCIE_CLIENT_INT_CORR_ERR),
>> - PCIE_CLIENT_INT_STATUS |
>> - PCIE_CLIENT_INT_PHY);
>> + PCIE_CLIENT_INT_CORR_ERR |
>> + PCIE_CLIENT_INT_PHY),
>> + PCIE_CLIENT_INT_STATUS);
>> +
>> return IRQ_HANDLED;
>> }
>>
>> --
>> 2.8.0.rc3.226.g39d4020
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Best Regards
Shawn Lin
[toc] | [prev] | [next] | [standalone]
| From | Bjorn Helgaas <helgaas@kernel.org> |
|---|---|
| Date | 2016-08-31 15:10 +0200 |
| Subject | Re: [PATCH] PCI: rockchip: Correct the register value for clearing client interrupts |
| Message-ID | <scdrb-2O7-23@gated-at.bofh.it> |
| In reply to | #1472123 |
On Mon, Aug 29, 2016 at 02:14:11PM -0700, Brian Norris wrote:
> I'm pretty sure the bitwise 'or' was meant for the value parameter, not
> the register parameter.
>
> This resolves an interrupt storm, where if we receive any client IRQs
> (e.g., correctable errors), we fail to ever clear them properly, so they
> reoccur indefinitely.
>
> Fixes: 199410f6270e ("PCI: rockchip: Add Rockchip PCIe controller support")
> Signed-off-by: Brian Norris <briannorris@chromium.org>
> Cc: Shawn Lin <shawn.lin@rock-chips.com>
I folded this into the initial commit, since Shawn confirmed it is correct.
> ---
> Patched against git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-rockchip
>
> drivers/pci/host/pcie-rockchip.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c
> index 8fb47ee9eaee..e77aec3cc869 100644
> --- a/drivers/pci/host/pcie-rockchip.c
> +++ b/drivers/pci/host/pcie-rockchip.c
> @@ -689,9 +689,10 @@ static irqreturn_t rockchip_pcie_client_irq_handler(int irq, void *arg)
> PCIE_CLIENT_INT_MSG | PCIE_CLIENT_INT_HOT_RST |
> PCIE_CLIENT_INT_DPA | PCIE_CLIENT_INT_FATAL_ERR |
> PCIE_CLIENT_INT_NFATAL_ERR |
> - PCIE_CLIENT_INT_CORR_ERR),
> - PCIE_CLIENT_INT_STATUS |
> - PCIE_CLIENT_INT_PHY);
> + PCIE_CLIENT_INT_CORR_ERR |
> + PCIE_CLIENT_INT_PHY),
> + PCIE_CLIENT_INT_STATUS);
> +
> return IRQ_HANDLED;
> }
>
> --
> 2.8.0.rc3.226.g39d4020
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web