2019-12-03 11:15:47

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH resend] scsi: smartpqi: add missed free_irq in suspend

The driver calls request_irq in resume but does not call free_irq in
suspend.
Add the missed call to fix it.

Signed-off-by: Chuhong Yuan <[email protected]>
---
drivers/scsi/smartpqi/smartpqi_init.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 7b7ef3acb504..2251c39afb1b 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -8078,6 +8078,8 @@ static __maybe_unused int pqi_suspend(struct pci_dev *pci_dev, pm_message_t stat
pqi_ctrl_wait_for_pending_io(ctrl_info, NO_TIMEOUT);
pqi_stop_heartbeat_timer(ctrl_info);

+ free_irq(pci_irq_vector(pci_dev, 0), &ctrl_info->queue_groups[0]);
+
if (state.event == PM_EVENT_FREEZE)
return 0;

--
2.24.0


2019-12-10 00:08:41

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH resend] scsi: smartpqi: add missed free_irq in suspend


> The driver calls request_irq in resume but does not call free_irq in
> suspend.
> Add the missed call to fix it.

Microsemi: Please review!

--
Martin K. Petersen Oracle Linux Engineering

2020-01-20 16:25:31

by Don Brace

[permalink] [raw]
Subject: RE: [PATCH resend] scsi: smartpqi: add missed free_irq in suspend

-----Original Message-----

The driver calls request_irq in resume but does not call free_irq in suspend.
Add the missed call to fix it.

Signed-off-by: Chuhong Yuan <[email protected]>

NAK: free_irq is called in pqi_resume after checking for correct power state change. (in pqi_free_interrupts())

Thanks for your review,
Don


---
drivers/scsi/smartpqi/smartpqi_init.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
index 7b7ef3acb504..2251c39afb1b 100644
--- a/drivers/scsi/smartpqi/smartpqi_init.c
+++ b/drivers/scsi/smartpqi/smartpqi_init.c
@@ -8078,6 +8078,8 @@ static __maybe_unused int pqi_suspend(struct pci_dev *pci_dev, pm_message_t stat
pqi_ctrl_wait_for_pending_io(ctrl_info, NO_TIMEOUT);
pqi_stop_heartbeat_timer(ctrl_info);

+ free_irq(pci_irq_vector(pci_dev, 0),
+ &ctrl_info->queue_groups[0]);
+
if (state.event == PM_EVENT_FREEZE)
return 0;

--
2.24.0