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