From patchwork Tue Jun 23 19:55:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 191563 Delivered-To: patch@linaro.org Received: by 2002:a92:1f07:0:0:0:0:0 with SMTP id i7csp2314763ile; Tue, 23 Jun 2020 13:35:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx9Na8WoJZGc+UtLbzZgcPU/Q6kH9/49DSWQgWT8IoDnDgIoczm9XzEvxu7+ZTrSJhjQxaM X-Received: by 2002:a50:ab53:: with SMTP id t19mr9738799edc.179.1592944552389; Tue, 23 Jun 2020 13:35:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592944552; cv=none; d=google.com; s=arc-20160816; b=ZgDmrSbeTJZKmopvx3U4t9qT9w7IJhGgeOKGaCYD9xsnaRaLrQSDdtyZnLKuppza0K 1BSTd/mv4Nd3quQ432jFms21dk0dZf735FPA1Bq1aRGj9OLUXzNGqTCxc/HdGovr1jBI C1ns8YPagZFA2H6UiBctsbuguPxQ/rDf7+2yKcW/oMAanj05TfrD9PFjvBhBpyHfl7Zd gMgNAhJB7wPeQndlZkiOZoqQVtTh6arTgua/lmCLpIvlMNIHFicxpLQ93uvwubgx0w6T kJeRIJAVhNpPxZh4wr+7u6X2hR9CDIOoGSvsv3jMkL2+KkvKRFzh1lxlPXVvpp4DADgs gDuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OiWwJKMB/fiZ9TWzSNV371QqNO5BlEpvM+5AIOuYcHE=; b=EmsA3t6Q0jZw/rrnd/VkLBMrFLZYsdZlsZXKtyO7DPuAW059/JdzwegEHiIPZzJwdy vynpppxFHlkhZxld4LSV1VsYVa2U7WQf/698pQ1PaR4hTzXTZQWtqnyTKk4BT6RYBDBh QDBq908k2mBWRGryzkyxXcEgOEXGFgiqLCbCvZMEkvuLTo2fQMelgqovsiYgyLh3G6Lh HqmorRUb6TSrLGV3nF44eRGo0NYyTp7naJjj3mu5ewFtZblPTPD2ut7vR74f1JyGOSKG Q2STHtvd+FM4vdhNiRanwBYFbYoxiBvh2gANnDxNIA4Ftwsn3Nbdha1KDrTheXbmltri GAKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HLBcPj1B; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l17si12305627ejf.494.2020.06.23.13.35.52; Tue, 23 Jun 2020 13:35:52 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=HLBcPj1B; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391723AbgFWUfn (ORCPT + 15 others); Tue, 23 Jun 2020 16:35:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:58378 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391722AbgFWUfn (ORCPT ); Tue, 23 Jun 2020 16:35:43 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B9AF720836; Tue, 23 Jun 2020 20:35:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592944543; bh=cqXo4sFFq3eyBc3yOBsOF0tDKrormseqsHL1lsfYwnQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HLBcPj1Bed+C497nCF8kuKh43fos1HssNFsythEj3iYAUOtKlrtLydEgNQojby2Bw JTQhM+dYagKqX92PXprdok+N/7RcA7RA4ByakWfz7Z+SWRpOCp6s1OxGbB9YHUfLHc Jaxh0zO3D+NQ+t1CMsd3iAzo5mlNkVjYz6kECdfw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Alex Elder , Mathieu Poirier , Suman Anna , Bjorn Andersson , Sasha Levin Subject: [PATCH 4.19 006/206] remoteproc: Fix IDR initialisation in rproc_alloc() Date: Tue, 23 Jun 2020 21:55:34 +0200 Message-Id: <20200623195317.244434695@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200623195316.864547658@linuxfoundation.org> References: <20200623195316.864547658@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Alex Elder [ Upstream commit 6442df49400b466431979e7634849a464a5f1861 ] If ida_simple_get() returns an error when called in rproc_alloc(), put_device() is called to clean things up. By this time the rproc device type has been assigned, with rproc_type_release() as the release function. The first thing rproc_type_release() does is call: idr_destroy(&rproc->notifyids); But at the time the ida_simple_get() call is made, the notifyids field in the remoteproc structure has not been initialized. I'm not actually sure this case causes an observable problem, but it's incorrect. Fix this by initializing the notifyids field before calling ida_simple_get() in rproc_alloc(). Fixes: b5ab5e24e960 ("remoteproc: maintain a generic child device for each rproc") Signed-off-by: Alex Elder Reviewed-by: Mathieu Poirier Reviewed-by: Suman Anna Reviewed-by: Bjorn Andersson Link: https://lore.kernel.org/r/20200415204858.2448-2-mathieu.poirier@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Sasha Levin --- drivers/remoteproc/remoteproc_core.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) -- 2.25.1 diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index d5ff272fde343..e48069db17033 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -1598,6 +1598,7 @@ struct rproc *rproc_alloc(struct device *dev, const char *name, rproc->dev.type = &rproc_type; rproc->dev.class = &rproc_class; rproc->dev.driver_data = rproc; + idr_init(&rproc->notifyids); /* Assign a unique device index and name */ rproc->index = ida_simple_get(&rproc_dev_index, 0, 0, GFP_KERNEL); @@ -1622,8 +1623,6 @@ struct rproc *rproc_alloc(struct device *dev, const char *name, mutex_init(&rproc->lock); - idr_init(&rproc->notifyids); - INIT_LIST_HEAD(&rproc->carveouts); INIT_LIST_HEAD(&rproc->mappings); INIT_LIST_HEAD(&rproc->traces);