Re: [PATCH v2 03/10] cxl: Make IRQ release idempotent

2015-08-10 Thread Cyril Bur
On Tue, 28 Jul 2015 15:28:36 +1000
Daniel Axtens d...@axtens.net wrote:

 Check if an IRQ is mapped before releasing it.
 
 This will simplify future EEH code by allowing unconditional unmapping
 of IRQs.
 

Acked-by: Cyril Bur cyril...@gmail.com

 Signed-off-by: Daniel Axtens d...@axtens.net
 ---
  drivers/misc/cxl/irq.c | 9 +
  1 file changed, 9 insertions(+)
 
 diff --git a/drivers/misc/cxl/irq.c b/drivers/misc/cxl/irq.c
 index 680cd263436d..121ec48f3ab4 100644
 --- a/drivers/misc/cxl/irq.c
 +++ b/drivers/misc/cxl/irq.c
 @@ -341,6 +341,9 @@ int cxl_register_psl_err_irq(struct cxl *adapter)
  
  void cxl_release_psl_err_irq(struct cxl *adapter)
  {
 + if (adapter-err_virq != irq_find_mapping(NULL, adapter-err_hwirq))
 + return;
 +
   cxl_p1_write(adapter, CXL_PSL_ErrIVTE, 0x);
   cxl_unmap_irq(adapter-err_virq, adapter);
   cxl_release_one_irq(adapter, adapter-err_hwirq);
 @@ -374,6 +377,9 @@ int cxl_register_serr_irq(struct cxl_afu *afu)
  
  void cxl_release_serr_irq(struct cxl_afu *afu)
  {
 + if (afu-serr_virq != irq_find_mapping(NULL, afu-serr_hwirq))
 + return;
 +
   cxl_p1n_write(afu, CXL_PSL_SERR_An, 0x);
   cxl_unmap_irq(afu-serr_virq, afu);
   cxl_release_one_irq(afu-adapter, afu-serr_hwirq);
 @@ -400,6 +406,9 @@ int cxl_register_psl_irq(struct cxl_afu *afu)
  
  void cxl_release_psl_irq(struct cxl_afu *afu)
  {
 + if (afu-psl_virq != irq_find_mapping(NULL, afu-psl_hwirq))
 + return;
 +
   cxl_unmap_irq(afu-psl_virq, afu);
   cxl_release_one_irq(afu-adapter, afu-psl_hwirq);
   kfree(afu-psl_irq_name);

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

[PATCH v2 03/10] cxl: Make IRQ release idempotent

2015-07-27 Thread Daniel Axtens
Check if an IRQ is mapped before releasing it.

This will simplify future EEH code by allowing unconditional unmapping
of IRQs.

Signed-off-by: Daniel Axtens d...@axtens.net
---
 drivers/misc/cxl/irq.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/drivers/misc/cxl/irq.c b/drivers/misc/cxl/irq.c
index 680cd263436d..121ec48f3ab4 100644
--- a/drivers/misc/cxl/irq.c
+++ b/drivers/misc/cxl/irq.c
@@ -341,6 +341,9 @@ int cxl_register_psl_err_irq(struct cxl *adapter)
 
 void cxl_release_psl_err_irq(struct cxl *adapter)
 {
+   if (adapter-err_virq != irq_find_mapping(NULL, adapter-err_hwirq))
+   return;
+
cxl_p1_write(adapter, CXL_PSL_ErrIVTE, 0x);
cxl_unmap_irq(adapter-err_virq, adapter);
cxl_release_one_irq(adapter, adapter-err_hwirq);
@@ -374,6 +377,9 @@ int cxl_register_serr_irq(struct cxl_afu *afu)
 
 void cxl_release_serr_irq(struct cxl_afu *afu)
 {
+   if (afu-serr_virq != irq_find_mapping(NULL, afu-serr_hwirq))
+   return;
+
cxl_p1n_write(afu, CXL_PSL_SERR_An, 0x);
cxl_unmap_irq(afu-serr_virq, afu);
cxl_release_one_irq(afu-adapter, afu-serr_hwirq);
@@ -400,6 +406,9 @@ int cxl_register_psl_irq(struct cxl_afu *afu)
 
 void cxl_release_psl_irq(struct cxl_afu *afu)
 {
+   if (afu-psl_virq != irq_find_mapping(NULL, afu-psl_hwirq))
+   return;
+
cxl_unmap_irq(afu-psl_virq, afu);
cxl_release_one_irq(afu-adapter, afu-psl_hwirq);
kfree(afu-psl_irq_name);
-- 
2.1.4

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev