From patchwork Wed May 12 14:47:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "gregkh@linuxfoundation.org" X-Patchwork-Id: 435540 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp4904404jao; Wed, 12 May 2021 07:57:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwg1OhcKvWElcOsYeLyXRisr9QGOpblb+oTOt5wTC48yENtIMp2QnlPG22DxkgtBsoTgp4 X-Received: by 2002:a05:6638:d7:: with SMTP id w23mr33270980jao.14.1620831463103; Wed, 12 May 2021 07:57:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620831463; cv=none; d=google.com; s=arc-20160816; b=Y+jBb+jjIOesBJC5jWQWyIcT/imBFmUK/sg9dU7F/CyJNdFw4pzsncEf1+HxSmmgVy 6AAuo7nEtEgJK04kR7TH5tszHnKG1mLl2bXvbmrBE/PyaY9OrMxDrwmuRnWbNloHFuif SD8f80A9UE2H70edDgJ/aUWvnvFxjDj88ff6VCodUTGlBKjE4vSd6zBRwx1xMp5hcNQV TNvlHy0qWBCJRtopf+1YMFJOD7eR/LogHqNdrnjvUWR0zmkKPA6yqx9jbjP9eiEzNnkG 13DAIB1iV6dPv409wfxTcSGVEeYENFpyvaWrD12ITIYOOZp31xOM5QH/XOm+xK5diphc o9YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Z+QTvovVHs/fNho80UfwfLHc0q2Ds4IHtB1uSde21+c=; b=Z5HAT9GWF5HHyKPxp0NX+tKreYeEROF5N5eVpSNkR0GlVBuk4nLr1k/ZnqktwzLVrS qUr5yr819d0+AT9AKwGpnACEx7uxOgjgy0pDvxetEJQG7xhqgfHA5oQ/RNwrTaO/LSxn 6nGQBA2m9oXfG6lhzaGMD64mtWpVo/HoZAqeYUweqvJnzf+cJL4lJYMeiBDiUGv0Upc4 PeMRC8t5CPNiqSww5VElMO6eDO2Lp4nz7G0FRsqXXnmZAhErqfGmcVuO7uoXspIjyUTY ge5WXfOqGQwZmN//5eLK4pziZqzGjeKhfV/jhIj5d87+nbOoVh/7Afxo3De+YcCzWwOj E2Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=jYurWSXV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k3si22736552ilc.30.2021.05.12.07.57.42; Wed, 12 May 2021 07:57:43 -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=@linuxfoundation.org header.s=korg header.b=jYurWSXV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232228AbhELO6t (ORCPT + 12 others); Wed, 12 May 2021 10:58:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:47248 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232426AbhELO5J (ORCPT ); Wed, 12 May 2021 10:57:09 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E38BE6141C; Wed, 12 May 2021 14:55:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831336; bh=m5gTygQReZ+6cLE2D8DY08nDCD/5HPRNS3WbEixY/n0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jYurWSXVdkhp8CW0KdfmNELUf6LdhMBFh+TFxI225md6/QkP9zJZM8/NkofWNYje/ lKAtVT1OF4YVQ7vHPVucglYgrBkwj9Htd2WbAe1+L4/ehwkbVm8vHgIQUgr/nt+GOR ICUS/3DRyhH/FLCZ6Kaq4r6P+hjIoDt1P4lWFASI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Manivannan Sadhasivam , Miquel Raynal , Sasha Levin Subject: [PATCH 5.4 078/244] mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions() Date: Wed, 12 May 2021 16:47:29 +0200 Message-Id: <20210512144745.529458841@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Manivannan Sadhasivam [ Upstream commit 08608adb520e51403be7592c2214846fa440a23a ] There are chances that the parse_mtd_partitions() function will return -EPROBE_DEFER in mtd_device_parse_register(). This might happen when the dependency is not available for the parser. For instance, on SDX55 the MTD_QCOMSMEM_PARTS parser depends on the QCOM_SMEM driver to parse the partitions defined in the shared memory region. With the current flow, the error returned from parse_mtd_partitions() will be discarded in favor of trying to add the fallback partition. This will prevent the driver to end up in probe deferred pool and the partitions won't be parsed even after the QCOM_SMEM driver is available. Fix this issue by bailing out of mtd_device_parse_register() when -EPROBE_DEFER error is returned from parse_mtd_partitions() function and propagate the error code to the driver core for probing later. Fixes: 5ac67ce36cfe ("mtd: move code adding (registering) partitions to the parse_mtd_partitions()") Signed-off-by: Manivannan Sadhasivam Signed-off-by: Miquel Raynal Signed-off-by: Sasha Levin --- drivers/mtd/mtdcore.c | 3 +++ 1 file changed, 3 insertions(+) -- 2.30.2 diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 036b9452b19f..32a76b8feaa5 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -825,6 +825,9 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, /* Prefer parsed partitions over driver-provided fallback */ ret = parse_mtd_partitions(mtd, types, parser_data); + if (ret == -EPROBE_DEFER) + goto out; + if (ret > 0) ret = 0; else if (nr_parts)