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

Commit e5c82d7b authored by Santosh Mardi's avatar Santosh Mardi Committed by Gerrit - the friendly Code Review server
Browse files

drivers: soc: qcom: rimps_memlat: add NULL check for SCMI handle



SCMI handle will remain NULL in case of SCMI failures during
initialization.

Update all store functions to check for NULL before accessing
vendor ops structure.

Change-Id: Ied56f62785579078fb06fb526e29aaef9d45e00d
Signed-off-by: default avatarSantosh Mardi <gsantosh@codeaurora.org>
parent 55572f84
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -207,7 +207,12 @@ static ssize_t store_##name(struct kobject *kobj, \
	unsigned int val;						\
	struct memlat_mon *mon = to_memlat_mon(kobj);			\
	struct memlat_cpu_grp *cpu_grp = mon->cpu_grp;			\
	struct scmi_memlat_vendor_ops *ops = cpu_grp->handle->memlat_ops;	\
	struct scmi_memlat_vendor_ops *ops = NULL;			\
	if (cpu_grp && cpu_grp->handle &&				\
			cpu_grp->handle->memlat_ops)			\
		ops = cpu_grp->handle->memlat_ops;			\
	else								\
		return -ENODEV;						\
	ret = kstrtouint(buf, 10, &val);				\
	if (ret < 0)							\
		return ret;						\
@@ -248,11 +253,14 @@ static ssize_t store_min_freq(struct kobject *kobj,
	unsigned int val;
	struct memlat_mon *mon = to_memlat_mon(kobj);
	struct memlat_cpu_grp *cpu_grp = mon->cpu_grp;
	struct scmi_memlat_vendor_ops *ops = cpu_grp->handle->memlat_ops;
	struct scmi_memlat_vendor_ops *ops = NULL;
	unsigned int min_freq;
	unsigned int max_freq;

	if (!ops)
	if (cpu_grp && cpu_grp->handle &&
			cpu_grp->handle->memlat_ops)
		ops = cpu_grp->handle->memlat_ops;
	else
		return -ENODEV;

	if (mon->mon_type == L3_MEMLAT) {
@@ -290,11 +298,14 @@ static ssize_t store_max_freq(struct kobject *kobj,
	unsigned int val;
	struct memlat_mon *mon = to_memlat_mon(kobj);
	struct memlat_cpu_grp *cpu_grp = mon->cpu_grp;
	struct scmi_memlat_vendor_ops *ops = cpu_grp->handle->memlat_ops;
	struct scmi_memlat_vendor_ops *ops = NULL;
	unsigned int min_freq;
	unsigned int max_freq;

	if (!ops)
	if (cpu_grp && cpu_grp->handle &&
			cpu_grp->handle->memlat_ops)
		ops = cpu_grp->handle->memlat_ops;
	else
		return -ENODEV;

	if (mon->mon_type == L3_MEMLAT) {