From 6b5a05f7d8f77217af14067d841026dc54f8c05f Mon Sep 17 00:00:00 2001 From: Wendy Liang Date: Sat, 14 Jan 2017 23:06:42 -0800 Subject: [PATCH] rpmsg: rdev_init: do not create rpmsg channels before remote is OK It is the virtio master to allocate the vrings' memories, on the slave side, it should not create channels before the master driver is OK. Signed-off-by: Wendy Liang --- lib/rpmsg/remote_device.c | 3 +++ lib/rpmsg/rpmsg_core.c | 1 + 2 files changed, 4 insertions(+) diff --git a/lib/rpmsg/remote_device.c b/lib/rpmsg/remote_device.c index 223e3cc..9ddfa93 100644 --- a/lib/rpmsg/remote_device.c +++ b/lib/rpmsg/remote_device.c @@ -151,6 +151,9 @@ int rpmsg_rdev_init(struct hil_proc *proc, } } + if (!rpmsg_rdev_remote_ready(rdev_loc)) + return RPMSG_ERR_DEV_INIT; + /* Initialize endpoints list */ metal_list_init(&rdev_loc->rp_endpoints); diff --git a/lib/rpmsg/rpmsg_core.c b/lib/rpmsg/rpmsg_core.c index 06faa05..2a63c20 100644 --- a/lib/rpmsg/rpmsg_core.c +++ b/lib/rpmsg/rpmsg_core.c @@ -52,6 +52,7 @@ #include "metal/io.h" #include "metal/cache.h" #include "metal/alloc.h" +#include "metal/cpu.h" /* Internal functions */ static void rpmsg_rx_callback(struct virtqueue *vq); -- 2.26.2