Re: [PATCH V2 05/19] irqchip: crossbar: Change allocation logic by reversing search for free irqs
Hi Jason, On Thursday 12 June 2014 06:26 PM, Jason Cooper wrote: On Thu, Jun 12, 2014 at 05:23:13PM +0530, Sricharan R wrote: From: Nishanth Menon n...@ti.com Reverse the search algorithm to ensure that address mapping and IRQ allocation logics are proper. This can open up new bugs which are easily fixable rather than wait till allocation logic approaches the limit to find new bugs. Could you expand on this logic some more? What class of bugs are you hoping to discover more easily? class 1. address space errors - example: reg = a size_b ti,max-irqs = is a wrong parameter class 2: irq-reserved list - which decides which entries in the address space is not actually wired in class 3: wrong list of routable-irqs. in general allocating from max to min tends to have benefits in ensuring the different issues that may be present in dts is easily caught at definition time, rather than at a later point in time. Regards, Sricharan -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2 05/19] irqchip: crossbar: Change allocation logic by reversing search for free irqs
On Fri, Jun 13, 2014 at 11:39:39AM +0530, Sricharan R wrote: Hi Jason, On Thursday 12 June 2014 06:26 PM, Jason Cooper wrote: On Thu, Jun 12, 2014 at 05:23:13PM +0530, Sricharan R wrote: From: Nishanth Menon n...@ti.com Reverse the search algorithm to ensure that address mapping and IRQ allocation logics are proper. This can open up new bugs which are easily fixable rather than wait till allocation logic approaches the limit to find new bugs. Could you expand on this logic some more? What class of bugs are you hoping to discover more easily? class 1. address space errors - example: reg = a size_b ti,max-irqs = is a wrong parameter class 2: irq-reserved list - which decides which entries in the address space is not actually wired in class 3: wrong list of routable-irqs. in general allocating from max to min tends to have benefits in ensuring the different issues that may be present in dts is easily caught at definition time, rather than at a later point in time. Perfect, thanks for clarifying. Please add this to the commit log when you respin. thx, Jason. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH V2 05/19] irqchip: crossbar: Change allocation logic by reversing search for free irqs
From: Nishanth Menon n...@ti.com Reverse the search algorithm to ensure that address mapping and IRQ allocation logics are proper. This can open up new bugs which are easily fixable rather than wait till allocation logic approaches the limit to find new bugs. Signed-off-by: Nishanth Menon n...@ti.com Signed-off-by: Sricharan R r.sricha...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- drivers/irqchip/irq-crossbar.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c index 287d3ce..de021638 100644 --- a/drivers/irqchip/irq-crossbar.c +++ b/drivers/irqchip/irq-crossbar.c @@ -68,7 +68,7 @@ static inline int get_prev_map_irq(int cb_no) { int i; - for (i = 0; i cb-int_max; i++) + for (i = cb-int_max - 1; i = 0; i--) if (cb-irq_map[i] == cb_no) return i; @@ -79,7 +79,7 @@ static inline int allocate_free_irq(int cb_no) { int i; - for (i = 0; i cb-int_max; i++) { + for (i = cb-int_max - 1; i = 0; i--) { if (cb-irq_map[i] == IRQ_FREE) { cb-irq_map[i] = cb_no; return i; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2 05/19] irqchip: crossbar: Change allocation logic by reversing search for free irqs
On Thu, Jun 12, 2014 at 05:23:13PM +0530, Sricharan R wrote: From: Nishanth Menon n...@ti.com Reverse the search algorithm to ensure that address mapping and IRQ allocation logics are proper. This can open up new bugs which are easily fixable rather than wait till allocation logic approaches the limit to find new bugs. Could you expand on this logic some more? What class of bugs are you hoping to discover more easily? thx, Jason. Signed-off-by: Nishanth Menon n...@ti.com Signed-off-by: Sricharan R r.sricha...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- drivers/irqchip/irq-crossbar.c |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c index 287d3ce..de021638 100644 --- a/drivers/irqchip/irq-crossbar.c +++ b/drivers/irqchip/irq-crossbar.c @@ -68,7 +68,7 @@ static inline int get_prev_map_irq(int cb_no) { int i; - for (i = 0; i cb-int_max; i++) + for (i = cb-int_max - 1; i = 0; i--) if (cb-irq_map[i] == cb_no) return i; @@ -79,7 +79,7 @@ static inline int allocate_free_irq(int cb_no) { int i; - for (i = 0; i cb-int_max; i++) { + for (i = cb-int_max - 1; i = 0; i--) { if (cb-irq_map[i] == IRQ_FREE) { cb-irq_map[i] = cb_no; return i; -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html