diff mbox series

iio: trigger: Staticise stub functions

Message ID 20200714142456.67054-1-alexandru.ardelean@analog.com (mailing list archive)
State New, archived
Headers show
Series iio: trigger: Staticise stub functions | expand

Commit Message

Alexandru Ardelean July 14, 2020, 2:24 p.m. UTC
From: Lars-Peter Clausen <lars@metafoo.de>

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@metafoo.de>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---

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(-)

Comments

Jonathan Cameron July 18, 2020, 4:25 p.m. UTC | #1
On Tue, 14 Jul 2020 17:24:56 +0300
Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:

> From: Lars-Peter Clausen <lars@metafoo.de>
> 
> 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@metafoo.de>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>

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)
>  {
>  }
>
Lars-Peter Clausen July 18, 2020, 4:36 p.m. UTC | #2
On 7/18/20 6:25 PM, Jonathan Cameron wrote:
> On Tue, 14 Jul 2020 17:24:56 +0300
> Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
>
>> From: Lars-Peter Clausen <lars@metafoo.de>
>>
>> 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@metafoo.de>
>> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> 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?

It's a bad commit message, my fault. This should have been

Make sure that the trigger function stubs are all static inline. 
Otherwise we might see compiler warnings about declared but unused 
functions.
Alexandru Ardelean July 18, 2020, 5:10 p.m. UTC | #3
Apologies from my side for being too much of a patch-bot here.
I should have also given some more thought to the patch.
Atm, I'm sending this from Outlook, since [for some reason] the Linux mail-client isn't working.
[ Which is why this isn't properly inlined either ]

I'll send a V2.

-----Original Message-----
From: Lars-Peter Clausen <lars@metafoo.de> 
Sent: Saturday, July 18, 2020 7:37 PM
To: Jonathan Cameron <jic23@kernel.org>; Ardelean, Alexandru <alexandru.Ardelean@analog.com>
Cc: linux-iio@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] iio: trigger: Staticise stub functions

[External]

On 7/18/20 6:25 PM, Jonathan Cameron wrote:
> On Tue, 14 Jul 2020 17:24:56 +0300
> Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
>
>> From: Lars-Peter Clausen <lars@metafoo.de>
>>
>> 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@metafoo.de>
>> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> 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?

It's a bad commit message, my fault. This should have been

Make sure that the trigger function stubs are all static inline. 
Otherwise we might see compiler warnings about declared but unused functions.
diff mbox series

Patch

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)
 {
 }