Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2352058pxb; Mon, 20 Sep 2021 19:48:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyfs+SKjuc3HrZm+PeWNVjykqD+C1oDWWCWpdv4lG0aF8lN1qjTtAO6o3rhL6DNTr2joEWQ X-Received: by 2002:a6b:5d0b:: with SMTP id r11mr12572063iob.92.1632192531694; Mon, 20 Sep 2021 19:48:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632192531; cv=none; d=google.com; s=arc-20160816; b=OO4FojlBAIwFS05ORQY37XQe4HfmUXiB1PyRBveAtQLSgpITIDwVanxVn727mELeKH UgiOKCpshmowcD0MMuOsJFNtM5YJ95S++QPUgTtqNAVO7qUNg2l6/cUdqACBO9FOQRK6 2RqGTyfcU26llsxXyiVab+yJF0Z0ymks+VHS62NftLE5065mWeR0Z0P3uwGEiN9O4LBS ny2KCVGjDx/XtF3YoIOe4wVHyBcnwHpLZkMmmHstO7yuEavJtASukythqsM4/zPUaYWk ZFcxaBwrkMdEGccs4P5IJ/UZdDiX/yLWmHz+qdkOqrNe59R8IEPNMoGE0QoVAX1tzedZ BBdg== 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=LboSEFXizK8AMlyDuodx5hWcDxkKgYzmdDUV3oSCK+Q=; b=DFDGkLgjyk52bDsQssvT0rOncscsGglOkfqFCqlByT1XppHz4DXdkV2l7VbhQ+g6ZJ 14/uHixA/JciDqOOrOupF2Y9E1Ni8oyx7thKXI+NDwDiBcE6QF2tDetbsafXYT5XwhQG z0rg8YHNXvbt16tzU22rJNCxAIwi4tJHdp26POyLcYr1sSlYsLe/g1NSOB2Wa50KK1b8 vCnmSpaooYZBDCvFe/9rRCdDEOA137hXuAqvuRmQOUUiDB0bS9whrbZWBqVC27e2tmpn lFzPBMm6DU/YePcsQGHhsv/F+m6ylj+QjWGYaXYu07BSS/0Y43UZED+qCMuuLI8ESspl 6P2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ae94xqIv; 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 b8si13857157ilm.108.2021.09.20.19.48.40; Mon, 20 Sep 2021 19:48:51 -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=ae94xqIv; 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 S1353144AbhITShY (ORCPT + 99 others); Mon, 20 Sep 2021 14:37:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:49246 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1380084AbhITSc1 (ORCPT ); Mon, 20 Sep 2021 14:32:27 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D0E7D61A8F; Mon, 20 Sep 2021 17:27:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632158867; bh=HzC4FEJyEmQTpbQRKNOD5mi7b2ZooCXj66Madr1v6Og=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ae94xqIv2PkhSN4WnA+SIrVLJICf9yu9XxO62zHwOE4iFSqr4bV2b1t7c4++czXv9 eSyepO8LRLNVOYMVkk37KuyIzz0YFqvyGqFen6pgRlmdPmC95845IHeZcjdqjwoDaA NFGTXXUgMnVIP8bY4eXrILES2HzsCTr2Ghsnzzk4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Zhihao Cheng , Miquel Raynal , Sasha Levin Subject: [PATCH 5.10 091/122] mtd: mtdconcat: Check _read, _write callbacks existence before assignment Date: Mon, 20 Sep 2021 18:44:23 +0200 Message-Id: <20210920163918.770771631@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920163915.757887582@linuxfoundation.org> References: <20210920163915.757887582@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: Zhihao Cheng [ Upstream commit a89d69a44e282be95ae76125dddc79515541efeb ] Since 2431c4f5b46c3 ("mtd: Implement mtd_{read,write}() as wrappers around mtd_{read,write}_oob()") don't allow _write|_read and _write_oob|_read_oob existing at the same time, we should check the existence of callbacks "_read and _write" from subdev's master device (We can trust master device since it has been registered) before assigning, otherwise following warning occurs while making concatenated device: WARNING: CPU: 2 PID: 6728 at drivers/mtd/mtdcore.c:595 add_mtd_device+0x7f/0x7b0 Fixes: 2431c4f5b46c3 ("mtd: Implement mtd_{read,write}() around ...") Signed-off-by: Zhihao Cheng Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20210817114857.2784825-3-chengzhihao1@huawei.com Signed-off-by: Sasha Levin --- drivers/mtd/mtdconcat.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c index af51eee6b5e8..f685a581df48 100644 --- a/drivers/mtd/mtdconcat.c +++ b/drivers/mtd/mtdconcat.c @@ -694,6 +694,10 @@ struct mtd_info *mtd_concat_create(struct mtd_info *subdev[], /* subdevices to c concat->mtd._block_markbad = concat_block_markbad; if (subdev_master->_panic_write) concat->mtd._panic_write = concat_panic_write; + if (subdev_master->_read) + concat->mtd._read = concat_read; + if (subdev_master->_write) + concat->mtd._write = concat_write; concat->mtd.ecc_stats.badblocks = subdev[0]->ecc_stats.badblocks; @@ -755,8 +759,6 @@ struct mtd_info *mtd_concat_create(struct mtd_info *subdev[], /* subdevices to c concat->mtd.name = name; concat->mtd._erase = concat_erase; - concat->mtd._read = concat_read; - concat->mtd._write = concat_write; concat->mtd._sync = concat_sync; concat->mtd._lock = concat_lock; concat->mtd._unlock = concat_unlock; -- 2.30.2