Re: [PATCH] iio: trigger: Staticise stub functions

From: Jonathan Cameron
Date: Sat Jul 18 2020 - 12:25:10 EST


On Tue, 14 Jul 2020 17:24:56 +0300
Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote:

> From: Lars-Peter Clausen <lars@xxxxxxxxxx>
>
> Make sure that the trigger function stubs are all static inline. Otherwise
> we'll get linker errors due to multiple definitions of the same function.
>
> Fixes f8c6f4e9a40d4: ("iio: trigger: Staticise stub functions")
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx>

I'm curious on what the actual build error is? Static functions should
result in independent implementations in each C file that includes
them. Inline is normally considered a hint. Hence what am I missing?

Jonathan

> ---
>
> FWIW: we can skip the Fixes tag from my side; this has been present for
> a while.
> I just bumped into it while sync-ing the ADI tree with some upstream
> stuff.
>
> drivers/iio/iio_core_trigger.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/iio_core_trigger.h b/drivers/iio/iio_core_trigger.h
> index 9d1a92cc6480..374816bc3e73 100644
> --- a/drivers/iio/iio_core_trigger.h
> +++ b/drivers/iio/iio_core_trigger.h
> @@ -30,7 +30,7 @@ int iio_trigger_detach_poll_func(struct iio_trigger *trig,
> * iio_device_register_trigger_consumer() - set up an iio_dev to use triggers
> * @indio_dev: iio_dev associated with the device that will consume the trigger
> **/
> -static int iio_device_register_trigger_consumer(struct iio_dev *indio_dev)
> +static inline int iio_device_register_trigger_consumer(struct iio_dev *indio_dev)
> {
> return 0;
> }
> @@ -39,7 +39,7 @@ static int iio_device_register_trigger_consumer(struct iio_dev *indio_dev)
> * iio_device_unregister_trigger_consumer() - reverse the registration process
> * @indio_dev: iio_dev associated with the device that consumed the trigger
> **/
> -static void iio_device_unregister_trigger_consumer(struct iio_dev *indio_dev)
> +static inline void iio_device_unregister_trigger_consumer(struct iio_dev *indio_dev)
> {
> }
>