Re: [PATCH v4 02/26] leds: class: Improve LED and LED flash class registration API

From: Pavel Machek
Date: Wed Apr 24 2019 - 14:25:27 EST


Hi!

> >>+/**
> >>+ * led_classdev_register_ext - register a new object of LED class with
> >>+ * init data
> >>+ * @parent: LED controller device this LED is driven by
> >>+ * @led_cdev: the led_classdev structure for this device
> >>+ * @init_data: the LED class device initialization data
> >>+ *
> >>+ * Returns: 0 on success or negative error value on failure
> >>+ */
> >>+extern int led_classdev_register_ext(struct device *parent,
> >>+ struct led_classdev *led_cdev,
> >>+ struct led_init_data *init_data);
> >>+#define led_classdev_register(parent, led_cdev) \
> >>+ led_classdev_register_ext(parent, led_cdev, NULL)
> >>+extern int devm_led_classdev_register_ext(struct device *parent,
> >>+ struct led_classdev *led_cdev,
> >>+ struct led_init_data *init_data);
> >>+#define devm_led_classdev_register(parent, led_cdev) \
> >>+ devm_led_classdev_register_ext(parent, led_cdev, NULL)
> >
> >Static inline (instead of macro) might be preffered. More type safety
> >and less confusing behaviour in case of errors...
>
> This is kind of alias. You have type control in the function being
> mapped. With inline we'd have to nest the function calls, i.e.
> it will worsen performance by this one additional call level.

It is not a big issue; but no, performance will be exactly the
same. "static inline" says .. well, inline this into caller, so there
will be one function call, not two.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature