Messages in this thread | | | Date | Mon, 3 Jul 2023 15:37:16 +0200 | Subject | Re: [PATCH v3 1/5] genirq/devres: Add devm_request_threaded_irq_emsg() | From | Krzysztof Kozlowski <> |
| |
On 03/07/2023 15:24, Yangtao Li wrote: > > 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 ? : "");
That's not the syntax already used - see existing code with `git grep`. Instead - return dev_err_probe().
Best regards, Krzysztof
| |