mmc: block: Ensure that debugfs files are removed
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 21 Nov 2017 13:42:30 +0000 (15:42 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 23 Nov 2017 13:39:13 +0000 (14:39 +0100)
commitf9f0da98819503b06b35e61869d18cf3a8cd3323
tree3958ac5701d4c83a9b79f27bbdb40df395aaa7db
parentebe7dd45cf49e3b49cacbaace17f9f878f21fbea
mmc: block: Ensure that debugfs files are removed

The card is not necessarily being removed, but the debugfs files must be
removed when the driver is removed, otherwise they will continue to exist
after unbinding the card from the driver. e.g.

  # echo "mmc1:0001" > /sys/bus/mmc/drivers/mmcblk/unbind
  # cat /sys/kernel/debug/mmc1/mmc1\:0001/ext_csd
  [  173.634584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
  [  173.643356] IP: mmc_ext_csd_open+0x5e/0x170

A complication is that the debugfs_root may have already been removed, so
check for that too.

Fixes: 627c3ccfb46a ("mmc: debugfs: Move block debugfs into block module")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org # 4.14+
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/block.c
drivers/mmc/core/debugfs.c