Re: [PATCH v9 1/1] genirq/devres: Add dev_err_probe() in devm_request_threaded_irq() and devm_request_any_context_irq()
From: PanChuang
Date: Wed Jul 30 2025 - 23:08:19 EST
Hi, tglx
在 2025/7/31 1:27, Thomas Gleixner 写道:
From my PoV, it would look more logical to have the same logic in
devm_request_threaded_irq() and in devm_request_any_context_irq().
As they print the same thing the right thing to do is:
int rc = __devm_request_any_context_irq(....);
return devm_request_result(dev, rc, irq, handler, NULL, devname);
and in devm_request_threaded_irq() invoke it with:
return devm_request_result(dev, rc, irq, handler, thread_fn, devname);
and let that function return rc if (rc >= 0), which handles both cases.
Could you please confirm if this implementation aligns with your vision?
I'm happy to refine it further based on your guidance.
> int rc = __devm_request_any_context_irq(dev, irq, handler,
irqflags,
> devname, dev_id);
>- if (rc < 0) {
>- return dev_err_probe(dev, rc, "request_irq(%u) %ps %s\n",
>- irq, handler, devname ? : "");
>- }
>+ if (rc >= 0)
>+ return rc;
>
>- return rc;
>+ return dev_err_probe(dev, rc, "request_irq(%u) %ps %s\n",
>+ irq, handler, devname ? : "");
>}
Thanks,
Pan Chuang