Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp170758pxj; Fri, 28 May 2021 00:46:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy68rp39aX6fafa8GZFKw1MlAEOvsx6Q5yW1N5/sJ8Iodre7I4OXzcV7hHIunZZrRQph45n X-Received: by 2002:a17:906:36d4:: with SMTP id b20mr7822197ejc.44.1622188007838; Fri, 28 May 2021 00:46:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622188007; cv=none; d=google.com; s=arc-20160816; b=Nz9AdR+zgYEiv+n+zwrT8oQ6LBax7BLVfpI+wcGlHvW5ao8/ciUK6Gu2MeENZwSRKm MlUPy1lI8Jxe1cMAlG4+HH4gZCEOlgoH+Wm75Nga66iUXjxKHcF43AQzN8L0u1IN8T6l a+I9dfOUXeOMMy0i3JEzH4qU2rEPSmCMY3p3ZV29gX7HbRuQS7pa5pTKd7s+ORwp5Efb fwZGsuD9xiLvVdGUVppeSqjbEax3o2ZgohjNi2w0h9+5jjFuVLlYBj3PPvWtyM0RVkd1 LgqnCO3O0ybb9etdT/Np0mOwBGR62ehI2n86PDAMhWV//gtd4x327ztW6y3k1lNYeCHz 6p3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=NaGtmJFjgEP4SQtZ9accjoxps+BPoV4zSR0l1bR64y0=; b=gaJLgEF+iDgWTbp1Rx5KeX/nqE1/P8gM0D4U7hXELHKURfwzdnKBEU60LHINNDNHXp k8A3k9kAprCZOEvFBEPtX2imOAazQmr5zuTjPx3hjVkL/qWqXCQIiUp6F4Z9YiLWInlW hhRt3020mxYY+w3MPGsgvIIWDz8x2N4jWlr080McWdeiki3NBlr2m1JndNUOPpCZsfGe Fm+Cz8Aq4tLKEgCTwcu1K2h17QYlSXsIHX0gLiAzQ28UmsUSwe2IV0lWgkNVbYXSFG7B wv+vE05eplSPHO5G7dEgmXlHFsjv7tFjQEeeDQ14HrXS4hvqKYJKLZwvUgmt6Qukpx6M iHTw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n22si4371670ejy.18.2021.05.28.00.46.24; Fri, 28 May 2021 00:46:47 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235899AbhE1H2Z (ORCPT + 99 others); Fri, 28 May 2021 03:28:25 -0400 Received: from mail.v3.sk ([167.172.186.51]:49470 "EHLO shell.v3.sk" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235838AbhE1H2V (ORCPT ); Fri, 28 May 2021 03:28:21 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by zimbra.v3.sk (Postfix) with ESMTP id BFABCE149E; Fri, 28 May 2021 07:20:16 +0000 (UTC) Received: from shell.v3.sk ([127.0.0.1]) by localhost (zimbra.v3.sk [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id FCyTieu7pB7o; Fri, 28 May 2021 07:20:14 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by zimbra.v3.sk (Postfix) with ESMTP id 9AC34E14C8; Fri, 28 May 2021 07:20:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at zimbra.v3.sk Received: from shell.v3.sk ([127.0.0.1]) by localhost (zimbra.v3.sk [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5oYQl01BQKVL; Fri, 28 May 2021 07:20:14 +0000 (UTC) Received: from localhost (unknown [109.183.109.54]) by zimbra.v3.sk (Postfix) with ESMTPSA id EFF21E149E; Fri, 28 May 2021 07:20:13 +0000 (UTC) Date: Fri, 28 May 2021 09:26:36 +0200 From: Lubomir Rintel To: nizamhaider786@gmail.com Cc: arnd@arndb.de, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V4] char: pcmcia: scr24x_cs: Fix failure handling of device_create() Message-ID: References: <20210527193429.696-1-nizamhaider786@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210527193429.696-1-nizamhaider786@gmail.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, much better now, thank you. Acked-by: Lubomir Rintel There's one small remark below. On Fri, May 28, 2021 at 01:04:29AM +0530, nizamhaider786@gmail.com wrote: > From: Nijam Haider > > Ignored error in device_create() and pcmcia_enable_device() > this patch implements proper error handling. > > Signed-off-by: Nijam Haider > --- > V3 -> V4: Added label and moved the cleanup code > V2 -> V3: Added description, Changelog and removed whitespace error > V1 -> V2: Split the patch into two parts and addressed review comments > --- > drivers/char/pcmcia/scr24x_cs.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/drivers/char/pcmcia/scr24x_cs.c b/drivers/char/pcmcia/scr24x_cs.c > index 47feb39af34c..ba84b4dd13d3 100644 > --- a/drivers/char/pcmcia/scr24x_cs.c > +++ b/drivers/char/pcmcia/scr24x_cs.c > @@ -233,6 +233,7 @@ static int scr24x_probe(struct pcmcia_device *link) > { > struct scr24x_dev *dev; > int ret; > + struct device *dev_ret; > > dev = kzalloc(sizeof(*dev), GFP_KERNEL); > if (!dev) > @@ -271,22 +272,28 @@ static int scr24x_probe(struct pcmcia_device *link) > goto err; > > ret = pcmcia_enable_device(link); > - if (ret < 0) { > - pcmcia_disable_device(link); > - goto err; > - } > + if (ret < 0) > + goto err_device; > > - device_create(scr24x_class, NULL, MKDEV(MAJOR(scr24x_devt), dev->devno), > + dev_ret = device_create(scr24x_class, NULL, MKDEV(MAJOR(scr24x_devt), dev->devno), > NULL, "scr24x%d", dev->devno); > + if (IS_ERR(dev_ret)) { > + dev_err(&link->dev, "device_create failed for %d\n", > + dev->devno); > + goto err_device; > + } > > dev_info(&link->dev, "SCR24x Chip Card Interface\n"); > return 0; > > +err_device: > + pcmcia_disable_device(link); > + cdev_del(&dev->c_dev); > err: > if (dev->devno < SCR24X_DEVS) > clear_bit(dev->devno, scr24x_minors); > kfree (dev); > - return ret; > + return -ENODEV; Why -ENODEV? Couldn't we propagate the original error with something like "ret = PTR_ERR(dev_ret);" just before the "goto err_device"? Thank you, Lubo > } > > static void scr24x_remove(struct pcmcia_device *link) > -- > 2.17.1 >