Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2852474pxb; Mon, 17 Jan 2022 07:04:11 -0800 (PST) X-Google-Smtp-Source: ABdhPJyrXgOf4s9IABuCvKXTpoYJIyazcftas/79EL5mFdZ5kLaLfeRKKnZlt+3WHyRJuEEDdcaF X-Received: by 2002:a17:902:b08b:b0:149:ee23:8907 with SMTP id p11-20020a170902b08b00b00149ee238907mr23633902plr.59.1642431851384; Mon, 17 Jan 2022 07:04:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642431851; cv=none; d=google.com; s=arc-20160816; b=y7nzn4VKyzjoMW0apelWshf4FCtH9WWhpDpUd1eJbDnjHkyuFi4yM11motqndM2uVn 8s06pmXBhrfvuFl8nKZm49vW2K87pBrziBO/PUJrLkGzseKt5qJ/7r0OlPG3vFJInNln SLOetuIj32E6+eC6nMj9mnae3gtBDtdNbae1NLsGZ/yIOg6UfAu970nhbTc66wRO0GFa 6oKDJEVQLTWAzWs6wy0i0ly/LABG1vrY878yg3vyGKgfTKFLrbQqnOdK7QQV+Zm+kdTu tLrx2j97q3Lga7TRT3VwEAtko6ay8daF81VnQ3+r3WtchzHzjwSREMFIpbJJAEJIMKZX Pk1A== 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:date :subject:cc:to:from:message-id:dkim-signature; bh=FNEpumVdR0V042HQu4zqL7oQurwNLap94AMGiqd5IpE=; b=Xa6ApKH9/GaNZSk4gLnOO/LS32cP5GNAhvpRRwZ94XcY/DS8jStbgRXUUF54O6Njyj i52vfMjJQjeb3SVxwkpiEzhaEBfw5mrn9U1IEpoN3mMxDnPj6IO4CousXS3qp+o5LgBC I4oa5wP4KSm3cHVXQizXaF/1+6Yl0pBYR6vKbieoLMQVr5uHILwiSQM0AbvbYVrShiOi aYFCgXkf6W44xoJOxyrrO/rOFkuui8IBg+lsS6y2Y6o1HbNVDqUh6f/l+ZFu92gPE5Ds ueZEa3qmB3a6JhHHG4MWXL6MF7N/Llycb+/qzUONZnUVetL8DUHHw6kRuy5zjlFU89wM DSUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@foxmail.com header.s=s201512 header.b=vBUxB9WO; 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=foxmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z14si12365032pjh.105.2022.01.17.07.03.58; Mon, 17 Jan 2022 07:04:11 -0800 (PST) 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=@foxmail.com header.s=s201512 header.b=vBUxB9WO; 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=foxmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237294AbiAQHGl (ORCPT + 99 others); Mon, 17 Jan 2022 02:06:41 -0500 Received: from out162-62-57-64.mail.qq.com ([162.62.57.64]:49763 "EHLO out162-62-57-64.mail.qq.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237310AbiAQHGj (ORCPT ); Mon, 17 Jan 2022 02:06:39 -0500 X-Greylist: delayed 81946 seconds by postgrey-1.27 at vger.kernel.org; Mon, 17 Jan 2022 02:06:38 EST DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1642403195; bh=FNEpumVdR0V042HQu4zqL7oQurwNLap94AMGiqd5IpE=; h=From:To:Cc:Subject:Date; b=vBUxB9WO8/vHnqZrp5HTqGgZA8nw+ZQJvKFjMd1Z/j6vy9pyr/pTgkJ0O0BxnzUUP OeMC6lY25gyYVOTx8ffjJq6/pWT1Y4BLegAiWbiCqtYIpWCAglX+K3aagDzsZ6JLgk DLvttTM/SsGaGj6PA92Q0PmnXnA2gJzX/LXDSqNQ= Received: from localhost.localdomain ([43.227.138.48]) by newxmesmtplogicsvrszc9.qq.com (NewEsmtp) with SMTP id 1A08A296; Mon, 17 Jan 2022 15:06:32 +0800 X-QQ-mid: xmsmtpt1642403192tfdsxvpxm Message-ID: X-QQ-XMAILINFO: OAHLEV5KK0oz88TejDCCjtxc1/NDx0qMqz5+bhh+SN7UqDz7QcIBHoAgThmCVG xfRCclSwS5/RIGjiZpijD2udeR23s/j/B1ajJ9uYkT0WO7cFnZA5bMGBgk4cooCz3i04aDYZAtQ8 NALm1pxIcm+UM4sZ/p0TMNn28kf+eWgEPlM8pas+pWjHobgVxq4qUriJlHRLzyOTgmhu8Ly0er7M sFyLKow1gqLkEQtewUKLCHoULLdGClp6l2j12aPkikBMUFMHQUdvdwcRYBEL571UgWKUJRIRLYN6 +uUWjxGDXDrTqEoQw9FmU/S+SKt//EHj1cEGO25u14mTULG+HfGIdz9xTQ0hh1DnSoM6SFUf4o2m +6hxpaBK5eW90hUHTEnpjocBNK03RTVXtTyo2K/MIJvIyGVcCkQmJKsOOPH6BB6xb861oZgIbhUk mQN0omePJ9xN9yEKiz+8/CAWfaL3hj2CN2lOxDGNCEmOWJp/RQ4M4JD9htWfK9O4yZeQyrYab/Ws sg9pAjVd6IGDXFXqAfXPf5sFEn0eb24+r6rVzDHiYbgFnMzf8ivrhBP6Ky7tueTKG3MOxjqyDxG6 1SP6nD6Bpb42JYFJye/afrzePd5xyrBgN6lG4piUnBSv2FoT2OIvSH7kx+kUniOe/39KundlTYhG hSLaJJUwZpYvhMhE63iS70DCHZAfar/HpiZPwBzpAfoWFMMywViLdWDIS3hqvai+nK6kQhuzirl0 kKGvtMfmjZ/ynMau7nM6iDSy/04HzzH8F4bVvN3P2WCjtG+7VJDDdfIuOGkD6OV46O4Aot+r78rC 9tGMwAD5MU5Gyl9j1Mva4MfJHg5LR5L7Cw0XaZ6OPNoprTsOqPmz9Qjy8oBPkzpZAmWmccgumgmA 5S1OovJdyVGZHdwxcByH0qOTeeIt82CwKEhTO1F/LCppUdtF8Uc9c= From: xkernel.wang@foxmail.com To: andy@kernel.org Cc: linus.walleij@linaro.org, brgl@bgdev.pl, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Xiaoke Wang Subject: [PATCH v2] gpio: merrifield: check the return value of devm_kstrdup() Date: Mon, 17 Jan 2022 15:06:06 +0800 X-OQ-MSGID: <20220117070606.3475-1-xkernel.wang@foxmail.com> X-Mailer: git-send-email 2.33.0.windows.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Xiaoke Wang devm_kstrdup() returns pointer to allocated string on success, NULL on failure. So it is better to check the return value of it. Before, if devm_kstrdup() fails, pinctrl_dev_name will be NULL, then the retval below will be a negative error-code(inside gpiochip_add_pin_range(), pinctrl_find_and_add_gpio_range()->get_pinctrl_dev_from_devname() will finally check pinctrl_dev_name and return error), so the failure of devm_kstrdup() can be only implicitly caught after a long call chain. While this patch is to explicitly catch the failure in time. > retval = gpiochip_add_pin_range(&priv->chip, pinctrl_dev_name, > range->gpio_base, > range->pin_base, > range->npins); > if (retval) { > dev_err(priv->dev, "failed to add GPIO pin range\n"); > return retval; > } Signed-off-by: Xiaoke Wang --- Changelogs: v1 -> v2: update the commit message. drivers/gpio/gpio-merrifield.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 42c4d9d..f3d1bae 100644 --- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c @@ -409,6 +409,9 @@ static int mrfld_gpio_add_pin_ranges(struct gpio_chip *chip) int retval; pinctrl_dev_name = mrfld_gpio_get_pinctrl_dev_name(priv); + if (!pinctrl_dev_name) + return -ENOMEM; + for (i = 0; i < ARRAY_SIZE(mrfld_gpio_ranges); i++) { range = &mrfld_gpio_ranges[i]; retval = gpiochip_add_pin_range(&priv->chip, pinctrl_dev_name, --