mfd: cros_ec: remove unused __remove function

Message ID 20180608144834.3003465-1-arnd@arndb.de
State New
Headers show
Series
  • mfd: cros_ec: remove unused __remove function
Related show

Commit Message

Arnd Bergmann June 8, 2018, 2:48 p.m.
This function is no longer called, so we get a harmless
warning until it is removed as well:

drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/mfd/cros_ec_dev.c | 2 --
 1 file changed, 2 deletions(-)

-- 
2.9.0

Comments

Benson Leung June 8, 2018, 6:19 p.m. | #1
On Fri, Jun 08, 2018 at 04:48:06PM +0200, Arnd Bergmann wrote:
> This function is no longer called, so we get a harmless

> warning until it is removed as well:

> 

> drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

> 

> Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")


Gwendal, in PATCH v2 of https://patchwork.kernel.org/patch/10439449/
you mentioned that you readded the __remove to avoid a warning when built
as a module. Can you explain what's going on?

Benson

-- 
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
bleung@google.com
Chromium OS Project
bleung@chromium.org
Lee Jones June 11, 2018, 6:08 a.m. | #2
On Fri, 08 Jun 2018, Benson Leung wrote:

> 

> On Fri, Jun 08, 2018 at 04:48:06PM +0200, Arnd Bergmann wrote:

> > This function is no longer called, so we get a harmless

> > warning until it is removed as well:

> > 

> > drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

> > 

> > Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")

> 

> Gwendal, in PATCH v2 of https://patchwork.kernel.org/patch/10439449/

> you mentioned that you readded the __remove to avoid a warning when built

> as a module. Can you explain what's going on?


Yes please, and quickly.  I'm going to sent the patch-set today.  If I
don't hear from you promptly, I'll probably pull the patch!

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Gwendal Grignou June 12, 2018, 7:53 p.m. | #3
On Sun, Jun 10, 2018 at 11:08 PM Lee Jones <lee.jones@linaro.org> wrote:
>

> On Fri, 08 Jun 2018, Benson Leung wrote:

>

> >

> > On Fri, Jun 08, 2018 at 04:48:06PM +0200, Arnd Bergmann wrote:

> > > This function is no longer called, so we get a harmless

> > > warning until it is removed as well:

> > >

> > > drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

> > >

> > > Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")

> >

> > Gwendal, in PATCH v2 of https://patchwork.kernel.org/patch/10439449/

> > you mentioned that you readded the __remove to avoid a warning when built

> > as a module. Can you explain what's going on?

>

> Yes please, and quickly.  I'm going to sent the patch-set today.  If I

> don't hear from you promptly, I'll probably pull the patch!

I readded it because when cros_ec_dev is loaded as module, I get a
warning on dmesg when unloading:

"""Device 'cros_pd' [or 'cros_ec'] does not have a release() function,
it is broken and must be fixed."""

The warning comes from device_release(). Given I get a warning when I
remove the release function or when I leave it empty. Let's pull the
patch.

Sorry for the confusion,

Gwendal.
>

> --

> Lee Jones [李琼斯]

> Linaro Services Technical Lead

> Linaro.org │ Open source software for ARM SoCs

> Follow Linaro: Facebook | Twitter | Blog
Lee Jones June 13, 2018, 5:45 a.m. | #4
On Tue, 12 Jun 2018, Gwendal Grignou wrote:

> On Sun, Jun 10, 2018 at 11:08 PM Lee Jones <lee.jones@linaro.org> wrote:

> >

> > On Fri, 08 Jun 2018, Benson Leung wrote:

> >

> > >

> > > On Fri, Jun 08, 2018 at 04:48:06PM +0200, Arnd Bergmann wrote:

> > > > This function is no longer called, so we get a harmless

> > > > warning until it is removed as well:

> > > >

> > > > drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

> > > >

> > > > Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")

> > >

> > > Gwendal, in PATCH v2 of https://patchwork.kernel.org/patch/10439449/

> > > you mentioned that you readded the __remove to avoid a warning when built

> > > as a module. Can you explain what's going on?

> >

> > Yes please, and quickly.  I'm going to sent the patch-set today.  If I

> > don't hear from you promptly, I'll probably pull the patch!

> I readded it because when cros_ec_dev is loaded as module, I get a

> warning on dmesg when unloading:

> 

> """Device 'cros_pd' [or 'cros_ec'] does not have a release() function,

> it is broken and must be fixed."""

> 

> The warning comes from device_release(). Given I get a warning when I

> remove the release function or when I leave it empty. Let's pull the

> patch.


I already did.  It's in Mainline. :)

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Arnd Bergmann June 14, 2018, 10:35 a.m. | #5
On Tue, Jun 12, 2018 at 9:53 PM, Gwendal Grignou <gwendal@chromium.org> wrote:
> On Sun, Jun 10, 2018 at 11:08 PM Lee Jones <lee.jones@linaro.org> wrote:

>>

>> On Fri, 08 Jun 2018, Benson Leung wrote:

>>

>> >

>> > On Fri, Jun 08, 2018 at 04:48:06PM +0200, Arnd Bergmann wrote:

>> > > This function is no longer called, so we get a harmless

>> > > warning until it is removed as well:

>> > >

>> > > drivers/mfd/cros_ec_dev.c:265:13: error: '__remove' defined but not used [-Werror=unused-function]

>> > >

>> > > Fixes: 3aa2177e4787 ("mfd: cros_ec: Use devm_kzalloc for private data")

>> >

>> > Gwendal, in PATCH v2 of https://patchwork.kernel.org/patch/10439449/

>> > you mentioned that you readded the __remove to avoid a warning when built

>> > as a module. Can you explain what's going on?

>>

>> Yes please, and quickly.  I'm going to sent the patch-set today.  If I

>> don't hear from you promptly, I'll probably pull the patch!

> I readded it because when cros_ec_dev is loaded as module, I get a

> warning on dmesg when unloading:

>

> """Device 'cros_pd' [or 'cros_ec'] does not have a release() function,

> it is broken and must be fixed."""

>

> The warning comes from device_release(). Given I get a warning when I

> remove the release function or when I leave it empty. Let's pull the

> patch.


I had not realized that this function was supposed to be the .release
callback for a device, only that it was not being called at all.

The runtime warning you get is obviously correct and you do need a
.release function in the device that will free the memory for the
cros_ec_dev structure when the last reference to the device goes away.

Please send a fix for this, replacing the incorrect devm_kzalloc with
a working allocation/deallocation.

     Arnd

Patch

diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
index dfc9f131aabe..4199cdd4ff89 100644
--- a/drivers/mfd/cros_ec_dev.c
+++ b/drivers/mfd/cros_ec_dev.c
@@ -262,8 +262,6 @@  static const struct file_operations fops = {
 #endif
 };
 
-static void __remove(struct device *dev) { }
-
 static void cros_ec_sensors_register(struct cros_ec_dev *ec)
 {
 	/*