Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4707767pxj; Wed, 12 May 2021 11:21:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyiFdO+CN5eUEvUR1+Rmu7ucX2G5IQgYQiWKY3V8VYzV3sHq1hiUzVljRoy6Dx+jzxhoyYr X-Received: by 2002:a17:906:bcf9:: with SMTP id op25mr6876148ejb.453.1620843694387; Wed, 12 May 2021 11:21:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620843694; cv=none; d=google.com; s=arc-20160816; b=yBvFIF90jvc5bSEyeIQ97aCdnUMrHncznKBr9HvfVq6LSMfyXe7owecm7bsZb/5Vwc J0BV3HxfvaXWCYg93K6rUhUXDCoH0cvZUiqcWQ+R+VtxoGmS7NM/Sy4N0LpeFTthefxq eAyC4Wa/e7+vV04mmfSLTVv2IKp8cJX6JI+DL+qqBVfwBHohnel5l+oQmfWD8bO+Q5AJ CCiE2iyY32yfD+wc1EEa6lmPMvABGERUq5gjRCsomVpMUCOrsTtzM7eBDMZ+rS1j9TSp 7pjhyBSq3YoF4IWCFU36nGb06LC135H+YnE90G6UZJNGRGzUMoAF/kxBH1+kOfTund1t wetQ== 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=wdeBGBGdwrh6rG7ZcFKjcFsa8ZaqO9D/jveeCkPyJ7I=; b=PWJOUcAEFthiIcqDWO7rN+zSdDc9jeZ+rqa5xSqAwHJGpm13fWVaZ7SEMVDYDqGXzv c459EvnC3u3f0hUxOwdur+wlDXzn/TNcaygP4SOR71s22ZkWdR4H37M9s1hQt9EnKeIB tvuxDpSlOL7Z16MNPfofQPT+WXDyT9uwufcB3TO8FKOQShh04kyb+oLfhng+b5539Q7d +rj3De+KFRvHmKITnqNgfF0iBeyC5VRV4nLdSJVFStCx9uKnBzIHtI5McoOf+2DajiLI Eb0cHVUejsRD8fViSSzV2EHE/YgETL3rBKdzZmSnJA3qqIJxTp27k3k4rqyy4B6zmO6e 0EFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VOHlqb0w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 f20si588957ejh.417.2021.05.12.11.21.10; Wed, 12 May 2021 11:21:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=VOHlqb0w; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-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 S238102AbhELSVA (ORCPT + 99 others); Wed, 12 May 2021 14:21:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:44832 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239896AbhELQa3 (ORCPT ); Wed, 12 May 2021 12:30:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DCE7661AC0; Wed, 12 May 2021 15:57:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835037; bh=nijJKkOFtrIpFW9WD1G417CrwixcpBLkAhMUnVuFZr4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VOHlqb0wrkBTG58OOjWkNEK1AFMFOoMRkEo9DRJ9WsNQHuIYKQDuR22djdtpIySKL XUcusxGyFelG61576tSgEpBRBX0K37H8bqMl4DCBXx7gXOztgkGzvFrCDi6KhOsU7K 5DLrqJH2Ve4yhDJZsMUpPNXTWsPv01v1ahCWWJ74= 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.12 182/677] mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions() Date: Wed, 12 May 2021 16:43:48 +0200 Message-Id: <20210512144843.295955066@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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(+) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 2d6423d89a17..d97ddc65b5d4 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -820,6 +820,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) -- 2.30.2