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

Commit fb98e2bd authored by Bjorn Andersson's avatar Bjorn Andersson
Browse files

remoteproc: Clone rproc_ops in rproc_alloc()



In order to allow rproc_alloc() to, in a future patch, update entries in
the "ops" struct we need to make a local copy of it.

Reviewed-By: default avatarLoic Pallardy <loic.pallardy@st.com>
Tested-By: default avatarLoic Pallardy <loic.pallardy@st.com>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent a4b24c75
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -1342,6 +1342,7 @@ static void rproc_type_release(struct device *dev)
		ida_simple_remove(&rproc_dev_index, rproc->index);

	kfree(rproc->firmware);
	kfree(rproc->ops);
	kfree(rproc);
}

@@ -1406,9 +1407,15 @@ struct rproc *rproc_alloc(struct device *dev, const char *name,
		return NULL;
	}

	rproc->ops = kmemdup(ops, sizeof(*ops), GFP_KERNEL);
	if (!rproc->ops) {
		kfree(p);
		kfree(rproc);
		return NULL;
	}

	rproc->firmware = p;
	rproc->name = name;
	rproc->ops = ops;
	rproc->priv = &rproc[1];
	rproc->auto_boot = true;

+1 −1
Original line number Diff line number Diff line
@@ -419,7 +419,7 @@ struct rproc {
	const char *name;
	char *firmware;
	void *priv;
	const struct rproc_ops *ops;
	struct rproc_ops *ops;
	struct device dev;
	const struct rproc_fw_ops *fw_ops;
	atomic_t power;