Current DPC driver acknowledges the interrupt in deferred work, which works
since MSI are edge triggered.
But when MSI is disabled (e.g. pci=nomsi boot option) port service
driver falls back to PCI legacy INT interrupt.
With current code we do not acknowledge the interrupt back in dpc_irq()
and we get dpc interrupt storm.
This patch acknowledges the interrupt in interrupt handler.
Signed-off-by: Oza Pawandeep <[email protected]>
diff --git a/drivers/pci/pcie/pcie-dpc.c b/drivers/pci/pcie/pcie-dpc.c
index 38e40c6..9c05120 100644
--- a/drivers/pci/pcie/pcie-dpc.c
+++ b/drivers/pci/pcie/pcie-dpc.c
@@ -112,7 +112,7 @@ static void dpc_work(struct work_struct *work)
}
pci_write_config_word(pdev, cap + PCI_EXP_DPC_STATUS,
- PCI_EXP_DPC_STATUS_TRIGGER | PCI_EXP_DPC_STATUS_INTERRUPT);
+ PCI_EXP_DPC_STATUS_TRIGGER);
pci_read_config_word(pdev, cap + PCI_EXP_DPC_CTL, &ctl);
pci_write_config_word(pdev, cap + PCI_EXP_DPC_CTL,
@@ -222,6 +222,9 @@ static irqreturn_t dpc_irq(int irq, void *context)
if (dpc->rp_extensions && reason == 3 && ext_reason == 0)
dpc_process_rp_pio_error(dpc);
+ pci_write_config_word(pdev, cap + PCI_EXP_DPC_STATUS,
+ PCI_EXP_DPC_STATUS_INTERRUPT);
+
schedule_work(&dpc->work);
return IRQ_HANDLED;
--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.,
a Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
On Wed, Mar 14, 2018 at 09:20:48PM +0530, Oza Pawandeep wrote:
> Current DPC driver acknowledges the interrupt in deferred work, which works
> since MSI are edge triggered.
>
> But when MSI is disabled (e.g. pci=nomsi boot option) port service
> driver falls back to PCI legacy INT interrupt.
>
> With current code we do not acknowledge the interrupt back in dpc_irq()
> and we get dpc interrupt storm.
>
> This patch acknowledges the interrupt in interrupt handler.
>
> Signed-off-by: Oza Pawandeep <[email protected]>
Thanks, this looks good to me.
Reviewed-by: Keith Busch <keith
On Wed, Mar 14, 2018 at 02:52:30PM -0600, Keith Busch wrote:
>
> Reviewed-by: Keith Busch <keith
Whoops, I accidentally truncated my message. My correct tag:
Reviewed-by: Keith Busch <[email protected]>
On 2018-03-15 02:22, Keith Busch wrote:
> On Wed, Mar 14, 2018 at 09:20:48PM +0530, Oza Pawandeep wrote:
>> Current DPC driver acknowledges the interrupt in deferred work, which
>> works
>> since MSI are edge triggered.
>>
>> But when MSI is disabled (e.g. pci=nomsi boot option) port service
>> driver falls back to PCI legacy INT interrupt.
>>
>> With current code we do not acknowledge the interrupt back in
>> dpc_irq()
>> and we get dpc interrupt storm.
>>
>> This patch acknowledges the interrupt in interrupt handler.
>>
>> Signed-off-by: Oza Pawandeep <[email protected]>
>
> Thanks, this looks good to me.
>
> Reviewed-by: Keith Busch <keith
checkpatch script shows
WARNING: 'acknowledgement' may be misspelled - perhaps 'acknowledgment'?
but dictionaries shows acknowledgement.
Regards,
Oza.
On 2018-03-15 02:26, Keith Busch wrote:
> On Wed, Mar 14, 2018 at 02:52:30PM -0600, Keith Busch wrote:
>>
>> Reviewed-by: Keith Busch <keith
>
> Whoops, I accidentally truncated my message. My correct tag:
>
> Reviewed-by: Keith Busch <[email protected]>
Hi Bjorn,
Can this be merged ?
Regards,
Oza.