From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 66247C54E5D for ; Thu, 14 Mar 2024 15:32:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=FnVfA9UseAdUa8tptPrIVo0OPogtLnqGlXpSRGVHwJA=; b=iPL8l+oqSHKsmu h6A9Rhg5c3BQtuBhN0S1z2Jg3jgWY6tNUbgmkhHtUmkDmEJc3vQGZ/sU2THq7/mD9mS5764a116Rl nEFXuzgXUIqY7Y8Uy9XvbmStjyeqra6fi+GjI5lqV6DKfryIQQzDh+Rmyg5VnN2Cs8hmIiaHCa2XE AeDDKfGcQk3doGnM1ge+uhyD2NVEcqeeeWURvYQ7PjkXU1pG9oHBAFZkjMzgoHDjzSwDbaDwDeqM4 qv6Te0fnOKMTv0ZQAOOwd7cQvU+cjDYuTplrUp6qJs+JwEizgnaUlXZub1VqL5ACZ3xbxq8hAdSPZ BxWyhFtvZvsTCkgcbLRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkn3b-0000000Er2V-1JfN; Thu, 14 Mar 2024 15:31:47 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rkn3X-0000000Er0J-0ndn for linux-arm-kernel@lists.infradead.org; Thu, 14 Mar 2024 15:31:45 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-513d212f818so854576e87.2 for ; Thu, 14 Mar 2024 08:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1710430300; x=1711035100; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=1GzIPdAccPQ9M4f+gmSEp7mIKo4xnW7trDdRbAnf9uA=; b=HNkvkTED9TNJRja9jHKynOJuEgbe29wnM1It2Q0jta+fJXQEGOO1rMO4oC5UjlhkOx +7kKYeMI2j0mZVgtdYdUQAnedgH7ZVFFbueaoY/m1BPs3xFsn0gdwUjC7FVzT+oZcNiJ 0Ax2zzu4EB8jhIz2xNzLxs3fPd+0BAahcBEFgOmPeFEClI2kaVEahdfENqsHvYjRMGai pOHKI6a307GklP++tORt1eIVnmw9mtn9wo14JsAIbRdMbVvZgNIx+kutecMmsWD7O2aS 9NTp2tzu1lXGhlJhxOXRlZOM6wB/5cCZFZQd+jpaK5hF1I/+3YLgNS+HPqNh7oG8ukPY RE8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710430300; x=1711035100; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1GzIPdAccPQ9M4f+gmSEp7mIKo4xnW7trDdRbAnf9uA=; b=CAl7SVCaPyudkWTHZokyjWvMAyvparH9aj1Aenlem31ugHZtqWUKp0fKR3/Kco4hL7 96j6lv8WkeC3oZNq0M9ebBTSJfT/PiDx5tG+pZZ3KRJpp0xcpCef4h/FzF94Npuk1w1a wH8ovr3CD0LAU9CZB0+VyzTICJC9htsBNEcOF34qhqgF2IDhhhhwdk9X3eDhIp2M1LQ3 +Dae29enZ4k2ua8N/YAE3qg0po8tKqt6i0rdPQ6XoR445cilQOMePLehHazsqjt/X6zZ HKVY3oAWb91vdeY2QfTPSpUisVVsNKntBkh4Fx9NSaS6a77jWuNr4gWIwsQcWHCgc8Xu ow1Q== X-Forwarded-Encrypted: i=1; AJvYcCWuMohKMjZ1nETVfed00yax5mrcf/zIGBvxoQ+wNBvfk8Sn/iu+2asltZZFPN/pBYh+52eYoKF1UMBNwATcSM60GdFNInvV7br+Zi6Zh68bN0im/eU= X-Gm-Message-State: AOJu0Yx2GB81LvAkD/8lCZr9GPkvsnssR/2gMqgDEOCC5XKhyIIgwfLX vs+tspK/M6p6Sqm1ljVaOCsfOxwmkye1meDG3rWl93he3gtDZMx1rIlqjpWcfDk= X-Google-Smtp-Source: AGHT+IGUzU/VbHGBcrrusrzXpFDMtduVe22+SATXuUUpn3+UEwM2lQYyx6T6FWVg+f4qJv6s5O6y7w== X-Received: by 2002:a19:ad02:0:b0:513:5a09:abbe with SMTP id t2-20020a19ad02000000b005135a09abbemr343146lfc.67.1710430299586; Thu, 14 Mar 2024 08:31:39 -0700 (PDT) Received: from localhost ([102.222.70.76]) by smtp.gmail.com with ESMTPSA id l5-20020a05600c1d0500b00412ea52b102sm6053706wms.34.2024.03.14.08.31.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Mar 2024 08:31:39 -0700 (PDT) Date: Thu, 14 Mar 2024 18:31:35 +0300 From: Dan Carpenter To: "Peng Fan (OSS)" Cc: Sudeep Holla , Cristian Marussi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Oleksii Moisieiev , Linus Walleij , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-gpio@vger.kernel.org, AKASHI Takahiro , Peng Fan Subject: Re: [PATCH v5 4/4] pinctrl: Implementation of the generic scmi-pinctrl driver Message-ID: <55ec2392-c196-4669-a339-12ef336707fa@moroto.mountain> References: <20240314-pinctrl-scmi-v5-0-b19576e557f2@nxp.com> <20240314-pinctrl-scmi-v5-4-b19576e557f2@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240314-pinctrl-scmi-v5-4-b19576e557f2@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240314_083143_264960_A10F1AF5 X-CRM114-Status: GOOD ( 16.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Thu, Mar 14, 2024 at 09:35:21PM +0800, Peng Fan (OSS) wrote: > +static int pinctrl_scmi_get_function_groups(struct pinctrl_dev *pctldev, > + unsigned int selector, > + const char * const **groups, > + unsigned int * const num_groups) > +{ > + const unsigned int *group_ids; > + int ret, i; > + struct scmi_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev); > + > + if (!groups || !num_groups) > + return -EINVAL; > + > + if (selector < pmx->nr_functions && > + pmx->functions[selector].num_groups) { If pmx->functions[selector].num_groups is set then we assume that functions[selector].groups has been allocated. > + *groups = (const char * const *)pmx->functions[selector].groups; > + *num_groups = pmx->functions[selector].num_groups; > + return 0; > + } > + > + ret = pinctrl_ops->function_groups_get(pmx->ph, selector, > + &pmx->functions[selector].num_groups, > + &group_ids); However, pmx->functions[selector].num_groups is set here and not cleared on the error paths. Or instead of clearing the .num_groups it would be nice to pass a local variable and only do the pmx->functions[selector].num_groups = local assignment right before the success return. regards, dan carpenter > + if (ret) { > + dev_err(pmx->dev, "Unable to get function groups, err %d", ret); > + return ret; > + } > + > + *num_groups = pmx->functions[selector].num_groups; > + if (!*num_groups) > + return -EINVAL; > + > + pmx->functions[selector].groups = > + devm_kcalloc(pmx->dev, *num_groups, > + sizeof(*pmx->functions[selector].groups), > + GFP_KERNEL); > + if (!pmx->functions[selector].groups) > + return -ENOMEM; > + > + for (i = 0; i < *num_groups; i++) { > + pmx->functions[selector].groups[i] = > + pinctrl_scmi_get_group_name(pmx->pctldev, > + group_ids[i]); > + if (!pmx->functions[selector].groups[i]) { > + ret = -ENOMEM; > + goto err_free; > + } > + } > + > + *groups = (const char * const *)pmx->functions[selector].groups; > + > + return 0; > + > +err_free: > + devm_kfree(pmx->dev, pmx->functions[selector].groups); > + > + return ret; > +} _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel