From patchwork Wed Jul 25 21:07:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Loic Pallardy X-Patchwork-Id: 142910 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp1273475ljj; Wed, 25 Jul 2018 14:07:36 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdNMqoKMWP8vxF+aqDxMPSPh7VuMgmGcA9jyWn5Ah53iZE4w20k6M6vk/ggxEBWeXTvAk3y X-Received: by 2002:a62:f50b:: with SMTP id n11-v6mr23617509pfh.120.1532552856349; Wed, 25 Jul 2018 14:07:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532552856; cv=none; d=google.com; s=arc-20160816; b=D1SgYBHNne6TByocjnEB5jm2UbU4vw2aUmKztNqCthitoVmI6KElme95+qngcwmAqY OLwOFxkY9nCxv+Rih7toBdy5CKU78K3oGVNELA1kswoqIhKdWemkQLEfKeMP3GZuZTAY Cah+LtW7wBD6QANErycf/vRn4gzakU/JlX6OYcc3ApGh4f69/EjnR71R4ZENZ4hVgYKQ cPE2SyRI/f3X84fjhc6ANA2Zek7AKNbmdJFYPRwpQ9SUgG5iEcMKgiWQiiXPosO1/s0X QVjiwP7KnWhzh6oKz//1e4uv8C9Wins7XPwj91amhrsnoulpWb3Jyoce/dRGJua9xHqM 9+rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:arc-authentication-results; bh=dQtJIkr7aFiiPcdUE0ACA1c9kO9/hmFpKp6uvH+AyIw=; b=yXQ/bMmH86FyNViLZOJrtjJ30C3bf0SgQUCELP+qmVBSwxgGo341u2E5UHO6apkgJ2 dFATcURpr4xJglqt5jmO8ORIujODw4Wfa6OvvoAxWxNg6WEIlYhUjBYtoi6slwLxnpwM iecye/9twKghDgli6x04wmPvu4+WCMG+ySv/EQiBtjygFhOHQMhCWIP+XTwVu8wPbQ+d B7ydaFdvbj/HOGkuocpm1EeT9wXoFsFVl1DLEzRe4P4qrtXOWTqTQ7wikeiSUG/GgImz 09oVCL+c51oDrMdzF77nwrfodX/sK76HlU9kJJKZu9pZyq7xVbxTrQIhiSTVz0zxIGxC s3CA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b39-v6si14274935pla.26.2018.07.25.14.07.36; Wed, 25 Jul 2018 14:07:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731226AbeGYWVB (ORCPT + 31 others); Wed, 25 Jul 2018 18:21:01 -0400 Received: from mx08-00178001.pphosted.com ([91.207.212.93]:35338 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730014AbeGYWVB (ORCPT ); Wed, 25 Jul 2018 18:21:01 -0400 Received: from pps.filterd (m0046660.ppops.net [127.0.0.1]) by mx08-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id w6PL408T008426; Wed, 25 Jul 2018 23:07:31 +0200 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx08-00178001.pphosted.com with ESMTP id 2kegc2m4tv-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 25 Jul 2018 23:07:31 +0200 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id B467031; Wed, 25 Jul 2018 21:07:30 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag7node2.st.com [10.75.127.20]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 9E0EBB08E; Wed, 25 Jul 2018 21:07:30 +0000 (GMT) Received: from localhost (10.75.127.44) by SFHDAG7NODE2.st.com (10.75.127.20) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Wed, 25 Jul 2018 23:07:30 +0200 From: Loic Pallardy To: , CC: , , , , Loic Pallardy Subject: [PATCH 1/1] rpmsg: virtio_rpmsg_bus: Fix rpmsg_remove() release order Date: Wed, 25 Jul 2018 23:07:06 +0200 Message-ID: <1532552826-30003-1-git-send-email-loic.pallardy@st.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [10.75.127.44] X-ClientProxiedBy: SFHDAG4NODE2.st.com (10.75.127.11) To SFHDAG7NODE2.st.com (10.75.127.20) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-07-25_04:, , signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In rpmsg_remove() procedure, children are removed then Name Service announcement endpoint is destroyed and device released. Issue with current implementation is if a NS announcement creation request is ongoing (received before virtio reset), child device could be created after children removing. In that case rpmsg_remove() is freeing rpmsg_virtio_bus, leading to an inconsistent state. This patch is destroying NS announcement service endpoint before removing children to guarantee that list of child devices is fixed and all of them will be correctly removed before cleaning resources. fixes: bcabbccabffe ("rpmsg: Split off generic tail of create_channel()") Signed-off-by: Loic Pallardy --- drivers/rpmsg/virtio_rpmsg_bus.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- 1.9.1 diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c index 664f957..f5d481f 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c @@ -1004,13 +1004,13 @@ static void rpmsg_remove(struct virtio_device *vdev) vdev->config->reset(vdev); + if (vrp->ns_ept) + __rpmsg_destroy_ept(vrp, vrp->ns_ept); + ret = device_for_each_child(&vdev->dev, NULL, rpmsg_remove_device); if (ret) dev_warn(&vdev->dev, "can't remove rpmsg device: %d\n", ret); - if (vrp->ns_ept) - __rpmsg_destroy_ept(vrp, vrp->ns_ept); - idr_destroy(&vrp->endpoints); vdev->config->del_vqs(vrp->vdev);