summaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorShawn Lin <shawn.lin@rock-chips.com>2016-11-02 08:24:39 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2016-12-05 10:31:09 +0100
commita48ee3e65a9e7395e8bab86728fcdc81c30a89ca (patch)
tree70df777c1ef3238eb9b96f88c31448644b0f4c65 /drivers/mmc
parentmmc: core: remove BUG_ONs from sdio (diff)
downloadlinux-a48ee3e65a9e7395e8bab86728fcdc81c30a89ca.tar.xz
linux-a48ee3e65a9e7395e8bab86728fcdc81c30a89ca.zip
mmc: debugfs: remove BUG_ON from mmc_ext_csd_open
Return error value for file_operations callback instead of triggering BUG_ON which is meaningless. Personally I don't believe n != EXT_CSD_STR_LEN could happen. Anyway, propagate the error to the caller. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/debugfs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c
index c8451ce557ae..30623b8b86a4 100644
--- a/drivers/mmc/core/debugfs.c
+++ b/drivers/mmc/core/debugfs.c
@@ -321,7 +321,11 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp)
for (i = 0; i < 512; i++)
n += sprintf(buf + n, "%02x", ext_csd[i]);
n += sprintf(buf + n, "\n");
- BUG_ON(n != EXT_CSD_STR_LEN);
+
+ if (n != EXT_CSD_STR_LEN) {
+ err = -EINVAL;
+ goto out_free;
+ }
filp->private_data = buf;
kfree(ext_csd);