Re: [Bug]:LAGER: GPIO-KEYS: Warning occurs after unbinding the e6051000.gpio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus-san

I am Hiep from Jinzai Solution.
We work for Renesas's drivers development project.

I am sorry to bother you again!
As I have reported you the issue that related to your released patch.
Could you please consider this issue and tell me how to resolve this problem? This issue still happens on Rcar-H2 and Rcar-M2 (Renesas's SOC) at the Linux upstream version v4.7-rc2.

Thank you!
Hiep.


On 04/27/2016 02:23 PM, Cao Minh Hiep wrote:
Hi Linus-san
Thanks for your reply!

On 04/26/2016 06:20 PM, Linus Walleij wrote:
On Mon, Apr 25, 2016 at 11:32 AM, Cao Minh Hiep <cm-hiep@xxxxxxxxxxx> wrote:

Hello Linus Walleij-san

We have tested Linux upstream v4.6-rc2 on Renesas's Lager board.
When we tried to unbind the e6051000.gpio, the following warning messages
occurs:

"root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# echo e6051000.gpio >
unbind
[  241.511034] ------------[ cut here ]------------
[  241.525054] WARNING: CPU: 0 PID: 2104 at fs/proc/generic.c:575
remove_proc_entry+0x13c/0x160
[ 241.550456] remove_proc_entry: removing non-empty directory 'irq/169',
leaking at least '6-0039'
Do you mean that you set up a handler in userspace, using the
deprecated sysfs ABI and then unbind the module providing the
IRQ resource?

Please see the attach file for procedure test of this case.
In order to make sure that driver works normally after unbind and rebind the device.

And we found a patch between v4.5 and v4.6-rc2 that causing of this issue.
The patch is "ff2b1359 gpio: make the gpiochip a real device"
It seems the issue is not a bug in the kernel, the issue is that the
kernel is warning you about something that was wrong also before
but you didn't get a warning for it until now.

It is not OK to unbind a driver providing IRQs.

It is even unclear if we should even allow modules to provide
IRQs because there is no way to handle irqchips going away
when it has consumers.

Maybe we should just do this?

diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
index 3fe8e773d95c..ae5e81358ec5 100644
--- a/drivers/gpio/gpio-rcar.c
+++ b/drivers/gpio/gpio-rcar.c
@@ -562,6 +562,7 @@ static struct platform_driver gpio_rcar_device_driver = {
         .driver         = {
                 .name   = "gpio_rcar",
                 .of_match_table = of_match_ptr(gpio_rcar_of_table),
+               .suppress_bind_attrs = true,
         }
  };

I have just tried to patch this patch on v4.6-rc2, then make a test.
The results is: I could not unbind the device.

"Welcome to Linaro 14.04 (GNU/Linux 4.6.0-rc2-dirty armv7l)

 * Documentation:  https://wiki.linaro.org/
root@linaro-nano:~# uname -a
Linux linaro-nano 4.6.0-rc2-dirty #8 SMP Wed Apr 27 13:40:12 JST 2016 armv7l armv7l armv7l GNU/Linux root@linaro-nano:~# cd /sys/bus/platform/drivers/gpio-keys; ls -d keyboard
keyboard
root@linaro-nano:/sys/bus/platform/drivers/gpio-keys# echo keyboard > unbind
root@linaro-nano:/sys/bus/platform/drivers/gpio-keys# cd
root@linaro-nano:~#
root@linaro-nano:~# cd /sys/bus/platform/drivers/gpio_rcar; ls -d e6051000.gpio
e6051000.gpio
root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# echo e6051000.gpio > unbind
-bash: unbind: Permission denied

root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# ls
e6050000.gpio  e6052000.gpio  e6054000.gpio  uevent
e6051000.gpio  e6053000.gpio  e6055000.gpio
root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar#
"

before patching the patch, gpio-rcar devices are shown as below:

"root@linaro-nano:~# cd /sys/bus/platform/drivers/gpio_rcar; ls
bind           e6051000.gpio  e6053000.gpio  e6055000.gpio  unbind
e6050000.gpio  e6052000.gpio  e6054000.gpio  uevent
root@linaro-nano:/sys/bus/platform/drivers/gpio_rcar# "


Best Regards,
Jinso/Cao Minh Hiep.





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux