127 is the theoretical up boundary of QEIC number,
in fact there only be 44 qe_ic_info now.
add check to overflow for qe_ic_info
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
---
drivers/soc/fsl/qe/qe_ic.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
@@ -261,6 +261,11 @@ static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,structqe_ic*qe_ic=h->host_data;structirq_chip*chip;+if(hw>=ARRAY_SIZE(qe_ic_info)){+pr_err("%s: Invalid hw irq number for QEIC\n",__func__);+return-EINVAL;+}+if(qe_ic_info[hw].mask==0){printk(KERN_ERR"Can't map reserved IRQ\n");return-EINVAL;
@@ -409,7 +414,8 @@ int qe_ic_set_priority(unsigned int virq, unsigned int priority)if(priority>8||priority==0)return-EINVAL;-if(src>127)+if(WARN_ONCE(src>=ARRAY_SIZE(qe_ic_info),+"%s: Invalid hw irq number for QEIC\n",__func__))return-EINVAL;if(qe_ic_info[src].pri_reg==0)return-EINVAL;
@@ -438,6 +444,9 @@ int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high)if(priority>2||priority==0)return-EINVAL;+if(WARN_ONCE(src>=ARRAY_SIZE(qe_ic_info),+"%s: Invalid hw irq number for QEIC\n",__func__))+return-EINVAL;switch(qe_ic_info[src].pri_reg){caseQEIC_CIPZCC:
On Thu, Jan 21, 2016 at 9:06 AM, Zhao Qiang [off-list ref] wrote:
127 is the theoretical up boundary of QEIC number,
in fact there only be 44 qe_ic_info now.
add check to overflow for qe_ic_info
Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
Yes. This stuff was recently moved out of arch/powerpc to work toward being
able to use it on ARM. I'm expecting followup patches to move things like
this that belong elsewhere.
-Scott