Received: by 10.213.65.68 with SMTP id h4csp515099imn; Fri, 23 Mar 2018 09:23:27 -0700 (PDT) X-Google-Smtp-Source: AG47ELtyXr6ys6vGuqlRVznMEZlRVuA5DChM4iMoy/TZJM4kskCDBDXy7IrPVd4cOJXGBUXrkkI+ X-Received: by 2002:a17:902:6547:: with SMTP id d7-v6mr26529533pln.253.1521822207101; Fri, 23 Mar 2018 09:23:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521822207; cv=none; d=google.com; s=arc-20160816; b=KQOiAI1B/KeBcdvmfms+HlqZgary8WtwmJv/Ii/yGK2Rsa092x5gQEOJFXbs0lzKI+ lOlikm0OERW3sAYg92ydo4FMiOK10hLgDZhRgtvPkqU5ZtXHIc+UUHGLik8xuJ18RzcD EfnMNgSgM9tF9Nz0lmJmTF8qu4PZ4nqfAaQQJ8fsH74CNcWl5fHGcXkYGCbybNS9zNhJ p+MsH/1Hd+ECAL7IwkHZzoxZnDBLL2vOjPMgWjnhT/ErppR3EHV9NjelTl0kr1euwpAC gxB3R0/qbjSre+rAm1qcZYH2SjSrTwxY44U6wUvIkKGbiNJRCN84T124bGIX2cnxU4WU 26ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:user-agent:message-id :references:cc:in-reply-to:from:to:content-transfer-encoding :mime-version:dkim-signature:arc-authentication-results; bh=2+IBz7AVFAuc+mn/4dAUWdwc8qxyjNvwBPgNesMlHZo=; b=lnb1EjFWkYb3aN5bOqd4M9lbvLzlQl84hpViYpgNZXjJYyWSKzw3vQJOKsnpyawED4 8CD5NsL0cK2UtFHbRmQYA6vuQbtuQJixnSTjMPFVGInbGEKTVVIRVgcVw8KinRAH0vYB dZ8oQYsgTKHsIVoKm/+N/O2sqfyyhFy+Mp00EKqq0huJl7NwoGsuElYVKaH9BR/c/sBE O4qn87YFHkxeEoNF3mVCO6M9QHGvWWx5k8ra7qK4643UeGscGqtpVAKsQ2t0w27YXVZH oXDMZ+buBclEOpL/7lJnsJawN2q2gwxkuT/HMf3S7LmrxYLhjSTsDzyk9sfu/KMS7lmV v1Xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=b4fbj8GD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z5si6896061pfz.382.2018.03.23.09.23.11; Fri, 23 Mar 2018 09:23:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=b4fbj8GD; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752199AbeCWQVx (ORCPT + 99 others); Fri, 23 Mar 2018 12:21:53 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:41953 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751632AbeCWQVv (ORCPT ); Fri, 23 Mar 2018 12:21:51 -0400 Received: by mail-pf0-f194.google.com with SMTP id a11so1549556pff.8 for ; Fri, 23 Mar 2018 09:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:content-transfer-encoding:to:from:in-reply-to:cc :references:message-id:user-agent:subject:date; bh=2+IBz7AVFAuc+mn/4dAUWdwc8qxyjNvwBPgNesMlHZo=; b=b4fbj8GDUcI1SxAdNiHBAT3VFg5JS8EfWxrjgPm5QVD1YTlJmE0wX0ftpXDDHAYMxi a17P9HNewZtUhY8GSi2VKj5LFMQ/VtB4vJWGDlKtIPgbm5JUGPhxyCFd6ls0FKUE1bjt z0FI4mQ/+r2ZLyURykigS0vduwAK/0caGT7+E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:content-transfer-encoding:to:from :in-reply-to:cc:references:message-id:user-agent:subject:date; bh=2+IBz7AVFAuc+mn/4dAUWdwc8qxyjNvwBPgNesMlHZo=; b=nB6nc4pVlvJ+M0FDbT3uRwUIHv4JrQ2G9A2Tz2Nad7/lRfWVEkoscTVhpb16E3Fr12 SFgR4UKcKfC9M1+84M3ANS67KgpztcTMreeH3J7xJ0kvWXqLtgM4Fzy8uf9r+kvb4mvS XIAe37P33d1yGS/hXmb7EeKUWi0lrk25nb8+Q9ll/5Mz96kwCQytRwomk/VD1qwFBD5C nf2crwmjrZZ/a7EOmXu2x+QOGONQ64ijZEmAuuidFsdMIcBKHwjEs6RV1mQDBzWRRaP6 baOucDF1s/eAZoxMWKvEUxyKkB6JkmHjlIDxd6ToO7p4rRdGr2WidrVE2Jto64wky7E1 EO+A== X-Gm-Message-State: AElRT7FItrZSTxfBtsk8NuIw9+19rmJz5R8Xo1vh4Cjl7zBCRl8cH/vL kZ0X9XqPmbxwZXkUpxAgqRx9WzcEajU= X-Received: by 10.98.71.76 with SMTP id u73mr11738385pfa.4.1521822110792; Fri, 23 Mar 2018 09:21:50 -0700 (PDT) Received: from localhost ([2620:0:1000:1511:d30e:62c6:f82c:ff40]) by smtp.gmail.com with ESMTPSA id m14sm20014412pfj.16.2018.03.23.09.21.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 23 Mar 2018 09:21:48 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: Andy Shevchenko , Linus Walleij , Timur Tabi From: Stephen Boyd In-Reply-To: <1521804964.23017.96.camel@linux.intel.com> Cc: Stephen Boyd , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bjorn Andersson , Grant Likely , linux-gpio@vger.kernel.org References: <20180321165848.89751-1-swboyd@chromium.org> <20180321165848.89751-4-swboyd@chromium.org> <97380342-c3aa-5d34-7b22-f6ebbab4bafe@codeaurora.org> <1521804964.23017.96.camel@linux.intel.com> Message-ID: <152182210780.178046.13284917877743312593@swboyd.mtv.corp.google.com> User-Agent: alot/0.7 Subject: Re: [PATCH v3 3/3] pinctrl: qcom: Don't allow protected pins to be requested Date: Fri, 23 Mar 2018 09:21:47 -0700 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Andy Shevchenko (2018-03-23 04:36:04) > On Thu, 2018-03-22 at 19:16 -0500, Timur Tabi wrote: > > On 03/21/2018 11:58 AM, Stephen Boyd wrote: > > > +static int msm_gpio_init_valid_mask(struct gpio_chip *chip, > > > + struct msm_pinctrl *pctrl) > > > +{ > > > + int ret; > > > + unsigned int len, i; > > > + unsigned int max_gpios =3D pctrl->soc->ngpios; > > > + > > > + /* The number of GPIOs in the ACPI tables */ > > > + ret =3D device_property_read_u16_array(pctrl->dev, "gpios", > > > NULL, 0); > > > + if (ret > 0 && ret < max_gpios) { > > = > > This needs to be ret <=3D max_gpios, otherwise it will fail if every > > GPIO = > > is available. > > = > > And it should print an error message and return an error code if ret > > > = > > max_gpios. > = > Perhaps makes sense to do the opposite condition > = > if (ret < 0 || ret > max_gpios) { > ... error handling ... > } > = Indeed. I already rewrote it like this two days ago: static int msm_gpio_init_valid_mask(struct gpio_chip *chip, struct msm_pinctrl *pctrl) { int ret; unsigned int len, i; unsigned int max_gpios =3D pctrl->soc->ngpios; u16 *tmp; /* The number of GPIOs in the ACPI tables */ len =3D ret =3D device_property_read_u16_array(pctrl->dev, "gpios", ULL, 0); if (ret < 0) return 0; if (ret > max_gpios) return -EINVAL; tmp =3D kmalloc_array(len, sizeof(*tmp), GFP_KERNEL); if (!tmp) return -ENOMEM; ret =3D device_property_read_u16_array(pctrl->dev, "gpios", tmp, en); if (ret < 0) { dev_err(pctrl->dev, "could not read list of GPIOs\n"); goto out; } bitmap_zero(chip->valid_mask, max_gpios); for (i =3D 0; i < len; i++) set_bit(tmp[i], chip->valid_mask); out: kfree(tmp); return ret; } I'll send the updated patches now.