Message ID | 20200714142456.67054-1-alexandru.ardelean@analog.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: trigger: Staticise stub functions | expand |
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) > { > } >
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.
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 --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) { }