Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp1187342ioo; Sun, 22 May 2022 06:29:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxxgsEZPWpBnmVTGkMg7wiW7AdlqsBwKaFMbBxzPndBrlacVhbZbkQSzKLXZx0zj6MJZM8N X-Received: by 2002:a05:6402:1ca5:b0:42a:a393:ff02 with SMTP id cz5-20020a0564021ca500b0042aa393ff02mr19974036edb.76.1653226168381; Sun, 22 May 2022 06:29:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653226168; cv=none; d=google.com; s=arc-20160816; b=r7zonVwbNB4uj7s+T1mMnAF4aCJMIN6BLdDsC+t8iggRAuERZsVrjoNMaAFnwzNNsF FN8c/3p13ebCYjRBEZeUOTb1Oid8W2erbaZprYGqO/6AXum7wc07CeAe4HMBK+rjUfEO MPxDyHA6Dg4E/TFHlhHmCgkD1Jj7Suon8aRk0KuHTxdNA+cHYjGvlmKA1KSiTZsvU54S 7CyZOt7RB4i/Bz91WHu/nl7zhIxc2pHGLXJY2bhyP13wpEPxswZ/jUmx9dkud9/nYiMA m4W9lu7HweZRr2hMVeIsTkjUXzGYyWUuhFC2usOP2OdXivKyT3SEBmbzBbJkSJsCk2aX 99Og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:references :cc:to:from:content-language:subject:user-agent:mime-version:date :message-id; bh=Q3+KwvtGpoXeNLoYBpi2WN4z6+uOcseBOFm6d+AeHHE=; b=eRbKfzWKwK8OTWMXgDQ6XhUjuPsmrEdagFjJe/uVpON0dPJwu0vxHHkJSmvcAalhRp uxAFSZ3rnq2s2fCLG0OZZvCDtYqNKg4CUejDz/pHx2aJVtOvSp5qb96V/+EJgagCp9M5 9UJ7qtfq48Hymeosm4ZIHkqDIyhp85mPLF8wmaSoVVN+4vc4vddMswujviYS9SBWKisK EWzy3RAWtxG2ljzJxBkgEIw4+soSSnLiAfBoMD0UMVMErxGGPjtQY1VBLnt8piQPV/9Y MHbUNNS3KpC13bguD639m2UlKULollBpYLf+HXgNfrVzY1Kv9InjrBUk4JC9Rx5F9hew SCgw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i8-20020a1709064fc800b006e81dd29c00si14611460ejw.569.2022.05.22.06.29.01; Sun, 22 May 2022 06:29:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352034AbiETRJX (ORCPT + 99 others); Fri, 20 May 2022 13:09:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1352018AbiETRJT (ORCPT ); Fri, 20 May 2022 13:09:19 -0400 Received: from smtp.smtpout.orange.fr (smtp06.smtpout.orange.fr [80.12.242.128]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8E356B020 for ; Fri, 20 May 2022 10:09:17 -0700 (PDT) Received: from [192.168.1.18] ([86.243.180.246]) by smtp.orange.fr with ESMTPA id s67knGiLCm7vss67kn9UzI; Fri, 20 May 2022 19:09:16 +0200 X-ME-Helo: [192.168.1.18] X-ME-Auth: YWZlNiIxYWMyZDliZWIzOTcwYTEyYzlhMmU3ZiQ1M2U2MzfzZDfyZTMxZTBkMTYyNDBjNDJlZmQ3ZQ== X-ME-Date: Fri, 20 May 2022 19:09:16 +0200 X-ME-IP: 86.243.180.246 Message-ID: <2c788d15-e771-377a-2dd2-796c86cf6f8a@wanadoo.fr> Date: Fri, 20 May 2022 19:09:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v2] mtd: rawnand: cafe: fix drivers probe/remove methods Content-Language: en-US From: Marion & Christophe JAILLET To: Peng Wu , miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, liwei391@huawei.com, Kernel Janitors References: <20220520084425.116686-1-wupeng58@huawei.com> <7b1b26e4-cc8e-3375-788c-56b5b548367d@wanadoo.fr> In-Reply-To: <7b1b26e4-cc8e-3375-788c-56b5b548367d@wanadoo.fr> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 20/05/2022 à 18:53, Christophe JAILLET a écrit : > Le 20/05/2022 à 10:44, Peng Wu a écrit : >> Driver should call pci_disable_device() if it returns from >> cafe_nand_probe() with error. >> >> Meanwhile, the driver calls pci_enable_device() in >> cafe_nand_probe(), but never calls pci_disable_device() >> during removal. >> >> Signed-off-by: Peng Wu >> --- >> v2: >> - fix the subject prefix with "mtd: ranwnand: cafe:" >> --- >>   drivers/mtd/nand/raw/cafe_nand.c | 9 +++++++-- >>   1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mtd/nand/raw/cafe_nand.c >> b/drivers/mtd/nand/raw/cafe_nand.c >> index 9dbf031716a6..af119e376352 100644 >> --- a/drivers/mtd/nand/raw/cafe_nand.c >> +++ b/drivers/mtd/nand/raw/cafe_nand.c >> @@ -679,8 +679,10 @@ static int cafe_nand_probe(struct pci_dev *pdev, >>       pci_set_master(pdev); >>       cafe = kzalloc(sizeof(*cafe), GFP_KERNEL); >> -    if (!cafe) >> -        return  -ENOMEM; >> +    if (!cafe) { >> +        err = -ENOMEM; >> +        goto out_disable_device; >> +    } >>       mtd = nand_to_mtd(&cafe->nand); >>       mtd->dev.parent = &pdev->dev; >> @@ -801,6 +803,8 @@ static int cafe_nand_probe(struct pci_dev *pdev, >>       pci_iounmap(pdev, cafe->mmio); >>    out_free_mtd: >>       kfree(cafe); >> + out_disable_device: >> +    pci_disable_device(pdev); >>    out: >>       return err; >>   } >> @@ -822,6 +826,7 @@ static void cafe_nand_remove(struct pci_dev *pdev) >>       pci_iounmap(pdev, cafe->mmio); >>       dma_free_coherent(&cafe->pdev->dev, 2112, cafe->dmabuf, >> cafe->dmaaddr); > > Hi, > > Not related to this patch , but I wonder if this dma_free_coherent() is > needed. > It is already part of cafe_nand_detach_chip() which is a .detach_chip() > function. > > Is this .detach_chip() function already called (by nand_cleanup()) > somewhere in the removal process? > In fact the "somewhere" is just 3 lines above the dma_free_coherent() call. So I definitively think that this line should be axed. CJ > CJ > > >>       kfree(cafe); >> +    pci_disable_device(pdev); >>   } >>   static const struct pci_device_id cafe_nand_tbl[] = { > >