Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87e858a9 authored by Artem Bityutskiy's avatar Artem Bityutskiy Committed by David Woodhouse
Browse files

mtd: do not use mtd->get_*_prot_info directly



Instead, call 'mtd_get_*_prot_info()' and check for '-EOPNOTSUPP'. While
on it, fix the return code from '-EOPNOTSUPP' to '-EINVAL' for the case
when the mode parameter is invalid.

Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent dac2639f
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -919,17 +919,15 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg)
		struct otp_info *buf = kmalloc(4096, GFP_KERNEL);
		if (!buf)
			return -ENOMEM;
		ret = -EOPNOTSUPP;
		switch (mfi->mode) {
		case MTD_FILE_MODE_OTP_FACTORY:
			if (mtd->get_fact_prot_info)
			ret = mtd_get_fact_prot_info(mtd, buf, 4096);
			break;
		case MTD_FILE_MODE_OTP_USER:
			if (mtd->get_user_prot_info)
			ret = mtd_get_user_prot_info(mtd, buf, 4096);
			break;
		default:
			ret = -EINVAL;
			break;
		}
		if (ret >= 0) {
+4 −0
Original line number Diff line number Diff line
@@ -342,6 +342,8 @@ static inline int mtd_write_oob(struct mtd_info *mtd, loff_t to,
static inline int mtd_get_fact_prot_info(struct mtd_info *mtd,
					 struct otp_info *buf, size_t len)
{
	if (!mtd->get_fact_prot_info)
		return -EOPNOTSUPP;
	return mtd->get_fact_prot_info(mtd, buf, len);
}

@@ -357,6 +359,8 @@ static inline int mtd_get_user_prot_info(struct mtd_info *mtd,
					 struct otp_info *buf,
					 size_t len)
{
	if (!mtd->get_user_prot_info)
		return -EOPNOTSUPP;
	return mtd->get_user_prot_info(mtd, buf, len);
}