Messages in this thread | | | Date | Mon, 3 Jul 2023 21:24:34 +0800 | Subject | Re: [PATCH v3 1/5] genirq/devres: Add devm_request_threaded_irq_emsg() | From | Yangtao Li <> |
| |
On 2023/7/3 20:31, Krzysztof Kozlowski wrote: > [你通常不会收到来自 krzk@kernel.org 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要] > > On 03/07/2023 11:04, Yangtao Li wrote: >> There are more than 700 calls to the devm_request_threaded_irq method. >> Most drivers only request one interrupt resource, and these error >> messages are basically the same. If error messages are printed >> everywhere, more than 1000 lines of code can be saved by removing the >> msg in the driver. > > ... > >> +int devm_request_threaded_irq_emsg(struct device *dev, unsigned int irq, >> + irq_handler_t handler, irq_handler_t thread_fn, >> + unsigned long irqflags, const char *devname, >> + void *dev_id, const char *emsg) >> +{ >> + int rc; >> + >> + rc = devm_request_threaded_irq(dev, irq, handler, NULL, irqflags, >> + devname, dev_id); >> + if (rc && rc != -EPROBE_DEFER) { >> + dev_err(dev, "Failed to request %sinterrupt %u %s %s: %pe\n", >> + thread_fn ? "threaded " : "", irq, devname ? : dev_name(dev), >> + emsg ? : "", ERR_PTR(rc)); > It is open-coding dev_err_probe(). Just use dev_err_probe instead.
How about the following? If possible, I would like to start modifying more drivers in the next version.
int devm_request_threaded_irq_emsg(struct device *dev, unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char *devname, void *dev_id, const char *emsg) { int rc;
rc = devm_request_threaded_irq(dev, irq, handler, NULL, irqflags, devname, dev_id); if (rc) { dev_err_probe(dev, rc, "Failed to request %sinterrupt %u %s %s\n", thread_fn ? "threaded " : "", irq, devname ? : dev_name(dev), emsg ? : ""); } return rc; } EXPORT_SYMBOL(devm_request_threaded_irq_emsg);
Thx,
Yangtao
> > Best regards, > Krzysztof >
| |