Thread (48 messages) 48 messages, 7 authors, 2025-05-13

Re: [PATCH v5 08/12] gpio: aggregator: export symbols of the GPIO forwarder library

From: Thomas Richard <thomas.richard@bootlin.com>
Date: 2025-05-12 15:01:01
Also in: linux-hardening, lkml

On 5/12/25 16:39, Geert Uytterhoeven wrote:
Hi Thomas,

On Mon, 12 May 2025 at 16:08, Thomas Richard [off-list ref] wrote:
quoted
On 5/9/25 11:07, Geert Uytterhoeven wrote:
quoted
On Tue, 6 May 2025 at 17:21, Thomas Richard [off-list ref] wrote:
quoted
Export all symbols and create header file for the GPIO forwarder library.
It will be used in the next changes.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
...
quoted
quoted
+
+int gpio_fwd_set_config(struct gpio_chip *chip, unsigned int offset,
+                       unsigned long config);
+
+int gpio_fwd_to_irq(struct gpio_chip *chip, unsigned int offset);
I would expect all of these to take gpiochip_fwd pointers instead of
gpio_chip pointers.  What prevents you from passing a gpio_chip pointer
that does not correspond to a gpiochip_fwd object, causing a crash?
Indeed nothing prevents from passing gpio_chip pointer which does not
correspond to a gpiochip_fwd object.
And it is also a bit weird to pass a gpiochip_fwd pointer in some cases
(for example gpio_fwd_gpio_add()) and a gpio_chip in other cases.

I can keep GPIO operations as is, and create exported wrappers which
take a gpiochip_fwd pointer as parameter, for example:

int gpiochip_fwd_get_multiple(struct gpiochip_fwd *fwd,
                              unsigned long *mask,
                              unsigned long *bits)
{
        struct gpio_chip *gc = gpiochip_fwd_get_gpiochip(fwd);

        return gpio_fwd_get_multiple_locked(chip, mask, bits);
}
EXPORT_SYMBOL_NS_GPL(gpiochip_fwd_get_multiple, "GPIO_FORWARDER");

So exported functions are gpiochip_fwd_*().
That sounds fine to me.

BTW, do you need to use these functions as gpio_chip callbacks?
If that is the case, they do no need to take struct gpio_chip pointers.
I'm not sure to understand the question, or the idea behind the question.

Regards,

Thomas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help