<br><tt><font size=2>Stefan Roscher &lt;ossrosch@linux.vnet.ibm.com&gt;
wrote on 09.06.2008 17:44:29:<br>
<br>
&gt; Signed-off-by: Stefan Roscher &lt;stefan.roscher@de.ibm.com&gt;<br>
&gt; ---<br>
&gt; &nbsp;arch/powerpc/kernel/ibmebus.c &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;
&nbsp;5 ++++-<br>
&gt; &nbsp;drivers/infiniband/hw/ehca/ehca_eq.c | &nbsp; &nbsp;4 ++--<br>
&gt; &nbsp;drivers/net/ehea/ehea_main.c &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;
&nbsp;6 +++---<br>
&gt; &nbsp;include/asm-powerpc/ibmebus.h &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;
&nbsp;2 +-<br>
&gt; &nbsp;4 files changed, 10 insertions(+), 7 deletions(-)<br>
&gt; <br>
&gt; diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c<br>
&gt; index 9971159..a002fdf 100644<br>
&gt; --- a/arch/powerpc/kernel/ibmebus.c<br>
&gt; +++ b/arch/powerpc/kernel/ibmebus.c<br>
&gt; @@ -208,7 +208,7 @@ void ibmebus_unregister_driver(struct <br>
&gt; of_platform_driver *drv)<br>
&gt; &nbsp;}<br>
&gt; &nbsp;EXPORT_SYMBOL(ibmebus_unregister_driver);<br>
&gt; &nbsp;<br>
&gt; -int ibmebus_request_irq(u32 ist, irq_handler_t handler,<br>
&gt; +int ibmebus_request_irq(u32 ist, int *irq_number, irq_handler_t handler,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unsigned long irq_flags, const
char *devname,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; void *dev_id)<br>
&gt; &nbsp;{<br>
&gt; @@ -217,6 +217,9 @@ int ibmebus_request_irq(u32 ist, irq_handler_t
handler,<br>
&gt; &nbsp; &nbsp; if (irq == NO_IRQ)<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;return -EINVAL;<br>
&gt; &nbsp;<br>
&gt; + &nbsp; if (irq_number)<br>
&gt; + &nbsp; &nbsp; &nbsp;*irq_number = irq;<br>
&gt; +<br>
&gt; &nbsp; &nbsp; return request_irq(irq, handler, irq_flags, devname,
dev_id);<br>
&gt; &nbsp;}<br>
&gt; &nbsp;EXPORT_SYMBOL(ibmebus_request_irq);<br>
&gt; diff --git a/drivers/infiniband/hw/ehca/ehca_eq.c <br>
&gt; b/drivers/infiniband/hw/ehca/ehca_eq.c<br>
&gt; index 49660df..5bc494f 100644<br>
&gt; --- a/drivers/infiniband/hw/ehca/ehca_eq.c<br>
&gt; +++ b/drivers/infiniband/hw/ehca/ehca_eq.c<br>
&gt; @@ -122,7 +122,7 @@ int ehca_create_eq(struct ehca_shca *shca,<br>
&gt; &nbsp;<br>
&gt; &nbsp; &nbsp; /* register interrupt handlers and initialize work queues
*/<br>
&gt; &nbsp; &nbsp; if (type == EHCA_EQ) {<br>
&gt; - &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(eq-&gt;ist, ehca_interrupt_eq,<br>
&gt; + &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(eq-&gt;ist, NULL,
ehca_interrupt_eq,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IRQF_DISABLED,
&quot;ehca_eq&quot;,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (void
*)shca);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;if (ret &lt; 0)<br>
&gt; @@ -130,7 +130,7 @@ int ehca_create_eq(struct ehca_shca *shca,<br>
&gt; &nbsp;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;tasklet_init(&amp;eq-&gt;interrupt_task,
ehca_tasklet_eq, (long)shca);<br>
&gt; &nbsp; &nbsp; } else if (type == EHCA_NEQ) {<br>
&gt; - &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(eq-&gt;ist, ehca_interrupt_neq,<br>
&gt; + &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(eq-&gt;ist, NULL,
ehca_interrupt_neq,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IRQF_DISABLED,
&quot;ehca_neq&quot;,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (void
*)shca);<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;if (ret &lt; 0)<br>
&gt; diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c<br>
&gt; index 287a619..102ffeb 100644<br>
&gt; --- a/drivers/net/ehea/ehea_main.c<br>
&gt; +++ b/drivers/net/ehea/ehea_main.c<br>
&gt; @@ -1216,7 +1216,7 @@ static int ehea_reg_interrupts(struct net_device
*dev)<br>
&gt; &nbsp; &nbsp; snprintf(port-&gt;int_aff_name, EHEA_IRQ_NAME_SIZE -
1, &quot;%s-aff&quot;,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; dev-&gt;name);<br>
&gt; &nbsp;<br>
&gt; - &nbsp; ret = ibmebus_request_irq(port-&gt;qp_eq-&gt;attr.ist1,<br>
&gt; + &nbsp; ret = ibmebus_request_irq(port-&gt;qp_eq-&gt;attr.ist1, NULL,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ehea_qp_aff_irq_handler,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IRQF_DISABLED,
port-&gt;int_aff_name, port);<br>
&gt; &nbsp; &nbsp; if (ret) {<br>
&gt; @@ -1234,7 +1234,7 @@ static int ehea_reg_interrupts(struct net_device
*dev)<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;pr = &amp;port-&gt;port_res[i];<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp;snprintf(pr-&gt;int_send_name, EHEA_IRQ_NAME_SIZE
- 1,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;%s-queue%d&quot;, dev-&gt;name,
i);<br>
&gt; - &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(pr-&gt;eq-&gt;attr.ist1,<br>
&gt; + &nbsp; &nbsp; &nbsp;ret = ibmebus_request_irq(pr-&gt;eq-&gt;attr.ist1,
NULL,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ehea_recv_irq_handler,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IRQF_DISABLED,
pr-&gt;int_send_name,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pr);<br>
&gt; @@ -3414,7 +3414,7 @@ static int __devinit ehea_probe_adapter(struct<br>
&gt; of_device *dev,<br>
&gt; &nbsp; &nbsp; tasklet_init(&amp;adapter-&gt;neq_tasklet, ehea_neq_tasklet,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (unsigned long)adapter);<br>
&gt; &nbsp;<br>
&gt; - &nbsp; ret = ibmebus_request_irq(adapter-&gt;neq-&gt;attr.ist1,<br>
&gt; + &nbsp; ret = ibmebus_request_irq(adapter-&gt;neq-&gt;attr.ist1,
NULL,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ehea_interrupt_neq,
IRQF_DISABLED,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;ehea_neq&quot;,
adapter);<br>
&gt; &nbsp; &nbsp; if (ret) {<br>
&gt; diff --git a/include/asm-powerpc/ibmebus.h b/include/asm-powerpc/ibmebus.h<br>
&gt; index 1a9d9ae..3a2618a 100644<br>
&gt; --- a/include/asm-powerpc/ibmebus.h<br>
&gt; +++ b/include/asm-powerpc/ibmebus.h<br>
&gt; @@ -51,7 +51,7 @@ extern struct bus_type ibmebus_bus_type;<br>
&gt; &nbsp;int ibmebus_register_driver(struct of_platform_driver *drv);<br>
&gt; &nbsp;void ibmebus_unregister_driver(struct of_platform_driver *drv);<br>
&gt; &nbsp;<br>
&gt; -int ibmebus_request_irq(u32 ist, irq_handler_t handler,<br>
&gt; +int ibmebus_request_irq(u32 ist, int *irq_number, irq_handler_t handler,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unsigned long irq_flags, const
char *devname,<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; void *dev_id);<br>
&gt; &nbsp;void ibmebus_free_irq(u32 ist, void *dev_id);<br>
&gt; -- <br>
&gt; 1.5.5<br>
&gt; </font></tt>
<br>
<br><tt><font size=2>Concerning the eHEA part:</font></tt>
<br>
<br><tt><font size=2>Acked-by: Jan-Bernd Themann &lt;themann@de.ibm.com&gt;</font></tt>
<br>
<br><tt><font size=2>Regards,<br>
Jan-Bernd<br>
</font></tt>