This patch ensures that 'axxia_rio_ds_port_irq_init' initializes the
right input irq handlers: 'ib_dse_vsid_irq' instead of 'ob_dse_irq'.

Mis-initializing 'ob_dse_irq' also caused an "array index out of
bounds" exception. The size of 'ob_dse_irq' is 16
(RIO_MAX_NUM_OBDS_DSE), while the init index ranges from 0 to the size
of 'ib_dse_vsid_irq' i.e. 32 (RIO_MAX_NUM_IBDS_VSID_M).

gcc warns about the mis-initialization:
"drivers/rapidio/devices/lsi/axxia-rio-ds.c:1857:41: warning: iteration
  16u invokes undefined behavior [-Waggressive-loop-optimizations]
  ptr_ds_priv->ob_dse_irq[i].release_fn = release_ib_ds;"

Signed-off-by: Cristian Bercaru <cristian.berc...@windriver.com>
---
 drivers/rapidio/devices/lsi/axxia-rio-ds.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rapidio/devices/lsi/axxia-rio-ds.c 
b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
index 0e5be61..f569ee3 100755
--- a/drivers/rapidio/devices/lsi/axxia-rio-ds.c
+++ b/drivers/rapidio/devices/lsi/axxia-rio-ds.c
@@ -1854,7 +1854,7 @@ void axxia_rio_ds_port_irq_init(
                ptr_ds_priv->ib_dse_vsid_irq[i].thrd_irq_fn =
                                ib_dse_vsid_m_irq_handler;
                ptr_ds_priv->ib_dse_vsid_irq[i].data = NULL;
-               ptr_ds_priv->ob_dse_irq[i].release_fn = release_ib_ds;
+               ptr_ds_priv->ib_dse_vsid_irq[i].release_fn = release_ib_ds;
        }
 }
 
-- 
1.7.9.5

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to