From patchwork Mon Jul 20 15:35:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237548 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2132443ilg; Mon, 20 Jul 2020 09:31:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyfMCXdeo7S25KuayTGkn99fiuFy3o5k2Je2nwddK6sbmwD+R8XDqA16lG9KRieYM2DUQMK X-Received: by 2002:a17:906:384a:: with SMTP id w10mr22440370ejc.235.1595262678224; Mon, 20 Jul 2020 09:31:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262678; cv=none; d=google.com; s=arc-20160816; b=X7sxz6Qm3+Cr1Ulz/f4Ev6s/ADfcNS5B1WIK/EJjprcD8bf0IrOVg6LstWz8+skQP1 9M+l3tQwvEyhu5jCLYXrdI67Y+OyDR2FP57Y70e7HKhA5TO/tlUrqPl7Ll1znnHIF90u 3QyJKRtd3RIrxTDRWSrO6QN3IqMggupD0DvKG0udfB/G9Iovdq+bk3qpItsNGiVIV8jZ q/25yEdDdLEzxq/oaaYAr65pkdrl7jsEkrDnBNQgtNIUR5rpUamq2kKmsZQFEtyhbJJV tlAtxiuJvXBhYE5mB3rA6LKMqPh9dXsLC8V0hnRxFmdScwlnw+dtidLHxyBgQt+9tliK js2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OMmCnXHmN2ILvEh5wgtfRmO4LUerlNvY62aSFBd3j8g=; b=DPmj8HbZCd49/WxN9Q27GG7h7RZgncs0aptcM6Z4Kw/S2hx8TK3OMGv7vayaYWcRBx 4BxvuIXPz2Q3P6gBLT4tLiCi0+H+tfSaxzNzDyygPQ2257W6sGUwgdpV6yCHC+Cqo9eB UpFwOHHs2l28TtUF9amk+UZ+8baNhFiAPBnzre3eeWcLx7W/8XP0YV/UECIf1UwEyMI0 4oRJWecqy+AU0F8Od62stlNAfG08B6Q0F8H+rILw+3fKeg41KswjmhOi1D7whZcaV+9U oEL6qyO6qL3glCiJX/p4z5rX+3pNxsJsQOTbflUrfw13sRytaccFvOHN1Nhr3I5i7D1b 23jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sRD2vhhZ; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 a1si11610097edb.90.2020.07.20.09.31.04; Mon, 20 Jul 2020 09:31:18 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=sRD2vhhZ; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732581AbgGTQa4 (ORCPT + 15 others); Mon, 20 Jul 2020 12:30:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:57738 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730658AbgGTP5o (ORCPT ); Mon, 20 Jul 2020 11:57:44 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5955B20773; Mon, 20 Jul 2020 15:57:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260663; bh=B4KbhpoltGExd208/4xHgN1aUeY0aanpA2UIDqaA8Jk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sRD2vhhZgl+U7SxuaH/SwIom4LjERtjr8wCYMkeNJNosfN/CVqjHjTANt17kH9H0d 8sA0S2zty5SGlpIaDFCc0twZxc5U9MngFw0KeZU87ZGFGurGeen3jsUXkKlYjKCRCg UOHfhuekHzhfA3jfVemDXocZbvKI5zev43dasico= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, kbuild test robot , Marek Szyprowski , Inki Dae , Sasha Levin Subject: [PATCH 5.4 032/215] drm/exynos: Properly propagate return value in drm_iommu_attach_device() Date: Mon, 20 Jul 2020 17:35:14 +0200 Message-Id: <20200720152821.713321911@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Marek Szyprowski [ Upstream commit b9c633882de4601015625f9136f248e9abca8a7a ] Propagate the proper error codes from the called functions instead of unconditionally returning 0. Reported-by: kbuild test robot Signed-off-by: Marek Szyprowski Merge conflict so merged it manually. Signed-off-by: Inki Dae Signed-off-by: Sasha Levin --- drivers/gpu/drm/exynos/exynos_drm_dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.25.1 diff --git a/drivers/gpu/drm/exynos/exynos_drm_dma.c b/drivers/gpu/drm/exynos/exynos_drm_dma.c index 619f81435c1b2..58b89ec11b0eb 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dma.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dma.c @@ -61,7 +61,7 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev, struct device *subdrv_dev, void **dma_priv) { struct exynos_drm_private *priv = drm_dev->dev_private; - int ret; + int ret = 0; if (get_dma_ops(priv->dma_dev) != get_dma_ops(subdrv_dev)) { DRM_DEV_ERROR(subdrv_dev, "Device %s lacks support for IOMMU\n", @@ -92,7 +92,7 @@ static int drm_iommu_attach_device(struct drm_device *drm_dev, if (ret) clear_dma_max_seg_size(subdrv_dev); - return 0; + return ret; } /* From patchwork Mon Jul 20 15:35:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237550 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2133069ilg; Mon, 20 Jul 2020 09:31:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwpMfKUSUneVe7T9ndwJR+2lwGt6yA+jr3VQT2Z3USG7yy8ohuMi60Qd84nJ7zjmZpUNjhH X-Received: by 2002:a17:906:1688:: with SMTP id s8mr21755530ejd.164.1595262717051; Mon, 20 Jul 2020 09:31:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262717; cv=none; d=google.com; s=arc-20160816; b=zy3j9MzexOw6/LpqoB5o50tBaZ4EOLTanuFQnmnqxZD2PqzgogJS4QRgaTBGtqXMGe A6g0Vx0QKAPvuojSBkRW1HJgfLNUMaH2Hr99lB4SPoyAswFHP49gncHXUKXavWnzM95a nnTZ3diBikqpKeSoDiVbsobxIUR4ILd/I4lCl18aG4EQPGRSNDF0QVSncZa5pqdHKhuX dRWRNy1pbllBp41przEY5MB1S5EMmQkB2jwR+9LLNKKmtdbVtp00lwCD25M5KuS7gUNJ 0/orZdftpANNE+Il2dAEPRCXEpWd2N9csKFr6hy2T9O8DWpKoWdeRXZRnps8vcovnHPq Mv7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GUPYLs39yvW9dExfVoyDSN71ZYgfoawwxQIJUWhYVuQ=; b=h169J4JajhupX4J0c73ufcCUu3jSMP+lc5mPSFYmK0glGoggrP79jyIrttJsV6gHoh zs231a8G77R4z62loRg2WC3VfuHNN5+9t63b6Y72wbtYYc6L7nHCi7/50pZeHZ6mQEhn nGK2R3vONRtv2uqr1iORktMZbw/5BR++pKez227XGKdJUJ0Y1IVxtlHPFVxpCxV2AX15 JgEUTaGavOeplqUAjgye5xUDYiz/kodZKwE20y8MKQ3S9DVfM7D0dBqtRUy3qcgmh0Js bCsQvXZninqc599s9QsjvzxTu55+N1qPnJrfU64YeQFSPbYDlra54fmYUqevHZvKj41x wXcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Gw88Awx5; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 a1si11610097edb.90.2020.07.20.09.31.56; Mon, 20 Jul 2020 09:31:57 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=Gw88Awx5; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732334AbgGTQbH (ORCPT + 15 others); Mon, 20 Jul 2020 12:31:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:57466 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729978AbgGTP5d (ORCPT ); Mon, 20 Jul 2020 11:57:33 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A0D8E20773; Mon, 20 Jul 2020 15:57:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260652; bh=1CVY6Ixyfc3N1iXZi/C5GQOuWmGjDONCEAmLWXAlKvI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Gw88Awx5jr0H174cEFTYblMstGnsV1k6/I93kaaUSBkQ9LRfQC66IaizbYkB6wC9X n+PzflibWfx84koX/UaK9mPqII5FeES1oKdUfwCj6fBFaC8smi/KnYR/+i5xM4uTqm JMaR2XRcpSSLsraUbM9WD0KVDT26nEN5+3dARDmw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Linus Walleij , Jonathan Cameron , Stable@vger.kernel.org Subject: [PATCH 5.4 046/215] iio:magnetometer:ak8974: Fix alignment and data leak issues Date: Mon, 20 Jul 2020 17:35:28 +0200 Message-Id: <20200720152822.389114777@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit 838e00b13bfd4cac8b24df25bfc58e2eb99bcc70 upstream. One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses an array of smaller elements on the stack. As Lars also noted this anti pattern can involve a leak of data to userspace and that indeed can happen here. We close both issues by moving to a suitable structure in the iio_priv() data. This data is allocated with kzalloc so no data can leak appart from previous readings. Fixes: 7c94a8b2ee8cf ("iio: magn: add a driver for AK8974") Reported-by: Lars-Peter Clausen Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron Cc: Signed-off-by: Greg Kroah-Hartman --- drivers/iio/magnetometer/ak8974.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- a/drivers/iio/magnetometer/ak8974.c +++ b/drivers/iio/magnetometer/ak8974.c @@ -185,6 +185,11 @@ struct ak8974 { bool drdy_irq; struct completion drdy_complete; bool drdy_active_low; + /* Ensure timestamp is naturally aligned */ + struct { + __le16 channels[3]; + s64 ts __aligned(8); + } scan; }; static const char ak8974_reg_avdd[] = "avdd"; @@ -581,7 +586,6 @@ static void ak8974_fill_buffer(struct ii { struct ak8974 *ak8974 = iio_priv(indio_dev); int ret; - __le16 hw_values[8]; /* Three axes + 64bit padding */ pm_runtime_get_sync(&ak8974->i2c->dev); mutex_lock(&ak8974->lock); @@ -591,13 +595,13 @@ static void ak8974_fill_buffer(struct ii dev_err(&ak8974->i2c->dev, "error triggering measure\n"); goto out_unlock; } - ret = ak8974_getresult(ak8974, hw_values); + ret = ak8974_getresult(ak8974, ak8974->scan.channels); if (ret) { dev_err(&ak8974->i2c->dev, "error getting measures\n"); goto out_unlock; } - iio_push_to_buffers_with_timestamp(indio_dev, hw_values, + iio_push_to_buffers_with_timestamp(indio_dev, &ak8974->scan, iio_get_time_ns(indio_dev)); out_unlock: From patchwork Mon Jul 20 15:35:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237549 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2132675ilg; Mon, 20 Jul 2020 09:31:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy54QrqtNoj3g52NMf6VgeXHGQkMv1TVnezT8YlLS1cmll0V20amMOfkEkB+gDhqJ5gWJYa X-Received: by 2002:a05:6402:203c:: with SMTP id ay28mr22772829edb.271.1595262692327; Mon, 20 Jul 2020 09:31:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262692; cv=none; d=google.com; s=arc-20160816; b=MbL4TZ+YEYQXiJWPnT1NEQxkkmlw8H8cYCpTtc3NXWQ4N0LhHF/ZJH25+qI4unEyVn 3ZZ10r9nyjhmXJaLV7jSlHjEN+XAL6jTqOqgDXy8W7GooqFFUcoT3BVwAkaK7znmt+L9 STIS5OfsyYHO91+qEm6Rh1K06pJcCPtRR1gIG4GjR+T05oaG1HCeMuH9vIsmLOGOt6kn l3Ih6quK58PREdJniJfaqJirwRpVP5KshsN6s8tj6tR3z5mQHqyHNPzDRxyFOfwyYviJ YOPy8/cxxc7Mjkq9ujp+j2u4mRetdsWFW1C3dEPiBRydmj5HXfU6VjG23w74mXHJubSb f1Dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=l8KnzwoKf7gRZ0Fx41brVh3Q/lLjum33UsNQCpM7H/I=; b=iRXBL5eUKeEtLSBa1GpMnSJbU7yX68oq9CHjLBhfaOZStK6MY4vJ3lEb1CpQ1CrYq9 JL+YfnrHBtoEm0tF/yoiE+lNFUd3gkzz6VYDXddONQ79KhAF0M6hvHLVdZGrBjy4UMZq wnaRUedhNmaCmBbElfu4N+Dqhci6UL43+jRTkQU46I2eS/XFVG756fGx7QiAFY/WlA28 ZVWpHB1H7hc0CoFTRs42qRLhnVxn+3DRBMzDy4UsQodTYyoYK1tleW1UC1LdCA3iTD2c JVY3QTCwoPp5SCPPf5XLt6fb6Apb9UwWNLOzoSmsH1v+ByyM9V3AMedLc7NGShBC7Z5V Kp8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=VWZVSjHT; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 a1si11610097edb.90.2020.07.20.09.31.18; Mon, 20 Jul 2020 09:31:32 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=VWZVSjHT; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731472AbgGTP5h (ORCPT + 15 others); Mon, 20 Jul 2020 11:57:37 -0400 Received: from mail.kernel.org ([198.145.29.99]:57516 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731931AbgGTP5f (ORCPT ); Mon, 20 Jul 2020 11:57:35 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 975402065E; Mon, 20 Jul 2020 15:57:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260655; bh=bYcsp+lTAjYQXjg17ZAbSyfn2+pSwrVpblngizYvBnQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VWZVSjHT+Ox6f8Qrs/+/CsGP1r6Ly9IMKzL3mimIB3eDE/50fqiIQo6fMMTnsH6SE v+nk37paGQ0MNhHb4qPZ4n9RNY3V7uoADGCu1F3VNDttEi9hQpRII4UXBYOV4mTEr0 cxlOpIAsUzkVLi4+qCz+0mIYgqMuMPekt7jf6f0U= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Matt Ranostay , Alison Schofield , Jonathan Cameron , Stable@vger.kernel.org Subject: [PATCH 5.4 047/215] iio:humidity:hdc100x Fix alignment and data leak issues Date: Mon, 20 Jul 2020 17:35:29 +0200 Message-Id: <20200720152822.437100100@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit ea5e7a7bb6205d24371373cd80325db1bc15eded upstream. One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses an array of smaller elements on the stack. As Lars also noted this anti pattern can involve a leak of data to userspace and that indeed can happen here. We close both issues by moving to a suitable structure in the iio_priv() data. This data is allocated with kzalloc so no data can leak apart from previous readings. Fixes: 16bf793f86b2 ("iio: humidity: hdc100x: add triggered buffer support for HDC100X") Reported-by: Lars-Peter Clausen Acked-by: Matt Ranostay Cc: Alison Schofield Signed-off-by: Jonathan Cameron Cc: Signed-off-by: Greg Kroah-Hartman --- drivers/iio/humidity/hdc100x.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) --- a/drivers/iio/humidity/hdc100x.c +++ b/drivers/iio/humidity/hdc100x.c @@ -38,6 +38,11 @@ struct hdc100x_data { /* integration time of the sensor */ int adc_int_us[2]; + /* Ensure natural alignment of timestamp */ + struct { + __be16 channels[2]; + s64 ts __aligned(8); + } scan; }; /* integration time in us */ @@ -319,7 +324,6 @@ static irqreturn_t hdc100x_trigger_handl struct i2c_client *client = data->client; int delay = data->adc_int_us[0] + data->adc_int_us[1]; int ret; - s16 buf[8]; /* 2x s16 + padding + 8 byte timestamp */ /* dual read starts at temp register */ mutex_lock(&data->lock); @@ -330,13 +334,13 @@ static irqreturn_t hdc100x_trigger_handl } usleep_range(delay, delay + 1000); - ret = i2c_master_recv(client, (u8 *)buf, 4); + ret = i2c_master_recv(client, (u8 *)data->scan.channels, 4); if (ret < 0) { dev_err(&client->dev, "cannot read sensor data\n"); goto err; } - iio_push_to_buffers_with_timestamp(indio_dev, buf, + iio_push_to_buffers_with_timestamp(indio_dev, &data->scan, iio_get_time_ns(indio_dev)); err: mutex_unlock(&data->lock); From patchwork Mon Jul 20 15:35:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237359 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2103855ilg; Mon, 20 Jul 2020 08:57:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTptntMBkkyV6uAD54aL/7LReyRgJOhPl51SCOlgFwbBsRQ6ot98YB9GeTtatGF7gWjMWD X-Received: by 2002:a17:906:3842:: with SMTP id w2mr21883462ejc.273.1595260675334; Mon, 20 Jul 2020 08:57:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260675; cv=none; d=google.com; s=arc-20160816; b=TZlhXN34yzgOcpVSZrIgeHM7heL9uBgB4AB2gP7QCW6h5/SPR+o+IgQ/W+vxLYfwXi Bf1vlmTHVRAHAwwP1vk2uA94V5EHY0zKibCiq32I94Qoi3fzVqpB4rDuxVaIr8r3VTGv 7oF7tfZs8ddikaOy0+xXgCrnCZpJyaYiieB2sfk39GnogaGcVCLN2pcuPHmtAkiM5h+h QIpx4tEFqoMdZaQRUaI5ek+YCiswTVFRghOoi7ZLOl8pqm1lfxOFfJHeitxjfudQoWNr MzLyfhac1c6vHFyuvaEJCEoP+KS6jXJs2BSwk/UIyErgYifWPRpzARKv2VZv8S+3GX6g k9WA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=n/Viv3BKqq8pIm+TYLRX1e59MtTTFZasgakEooSEyHw=; b=BehUuenRo9tvzcBEYujZUw0xvNb0wQ2o9KB3wt3e2ZqqUwoEl7djVztIA767bdmF8v 25Ik+tpNiv2tHw8wZ8m2vnJyKhnYh3QsoHMXqMCSd0oZ1xtxZXpd3iLCOQfpLVE8oLjh VmDZF58B6JGeAb217SDPzfRcZQdkYgqeArJ4KdSxcfWu7RJ4vbfl1na+C3nukQ+gHp7X 1OXVYzVw0/dL/9pMXlBtbZ1rWTZqvIKXEeR89Zom3KmbNwt31Mc1D2Shk+TlFv4hqZB4 FAHTncCZtDZre71KiL+fdJELGgj1ByZ2Ym95IDMxRRYys8iqpGz0Yslx35WdjkmFjeR1 EXTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hPbYSGjp; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 l7si10979731edv.475.2020.07.20.08.57.55; Mon, 20 Jul 2020 08:57:55 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=hPbYSGjp; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731690AbgGTP5y (ORCPT + 15 others); Mon, 20 Jul 2020 11:57:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:57912 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731948AbgGTP5w (ORCPT ); Mon, 20 Jul 2020 11:57:52 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A7FD02176B; Mon, 20 Jul 2020 15:57:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260671; bh=gBJjacVL2m/4ejgMgslD8NKdAbwGMCJFnQvE0Zo+e6Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hPbYSGjp5vnrALz9T0RNTQfCjCR4elZHepOU47ACv0DNg5PET6CY+U8cMeu+qa8D6 KB1r98dU7nBaPRKg3ziYSJ7+vpYMFNz/zIuxr1QR52Bn3wJ/S3lOSlo7Vmi+t/oX15 m998H1IJ5hFZXBHjpXzV+G/2rdgwfKiZNf02AAKk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Lorenzo Bianconi , Jonathan Cameron , Stable@vger.kernel.org Subject: [PATCH 5.4 052/215] iio:humidity:hts221 Fix alignment and data leak issues Date: Mon, 20 Jul 2020 17:35:34 +0200 Message-Id: <20200720152822.680365104@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit 5c49056ad9f3c786f7716da2dd47e4488fc6bd25 upstream. One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses an array of smaller elements on the stack. As Lars also noted this anti pattern can involve a leak of data to userspace and that indeed can happen here. We close both issues by moving to a suitable structure in the iio_priv() data. This data is allocated with kzalloc so no data can leak apart from previous readings. Explicit alignment of ts needed to ensure consistent padding on all architectures (particularly x86_32 with it's 4 byte alignment of s64) Fixes: e4a70e3e7d84 ("iio: humidity: add support to hts221 rh/temp combo device") Reported-by: Lars-Peter Clausen Acked-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron Cc: Signed-off-by: Greg Kroah-Hartman --- drivers/iio/humidity/hts221.h | 7 +++++-- drivers/iio/humidity/hts221_buffer.c | 9 +++++---- 2 files changed, 10 insertions(+), 6 deletions(-) --- a/drivers/iio/humidity/hts221.h +++ b/drivers/iio/humidity/hts221.h @@ -14,8 +14,6 @@ #include -#define HTS221_DATA_SIZE 2 - enum hts221_sensor_type { HTS221_SENSOR_H, HTS221_SENSOR_T, @@ -39,6 +37,11 @@ struct hts221_hw { bool enabled; u8 odr; + /* Ensure natural alignment of timestamp */ + struct { + __le16 channels[2]; + s64 ts __aligned(8); + } scan; }; extern const struct dev_pm_ops hts221_pm_ops; --- a/drivers/iio/humidity/hts221_buffer.c +++ b/drivers/iio/humidity/hts221_buffer.c @@ -162,7 +162,6 @@ static const struct iio_buffer_setup_ops static irqreturn_t hts221_buffer_handler_thread(int irq, void *p) { - u8 buffer[ALIGN(2 * HTS221_DATA_SIZE, sizeof(s64)) + sizeof(s64)]; struct iio_poll_func *pf = p; struct iio_dev *iio_dev = pf->indio_dev; struct hts221_hw *hw = iio_priv(iio_dev); @@ -172,18 +171,20 @@ static irqreturn_t hts221_buffer_handler /* humidity data */ ch = &iio_dev->channels[HTS221_SENSOR_H]; err = regmap_bulk_read(hw->regmap, ch->address, - buffer, HTS221_DATA_SIZE); + &hw->scan.channels[0], + sizeof(hw->scan.channels[0])); if (err < 0) goto out; /* temperature data */ ch = &iio_dev->channels[HTS221_SENSOR_T]; err = regmap_bulk_read(hw->regmap, ch->address, - buffer + HTS221_DATA_SIZE, HTS221_DATA_SIZE); + &hw->scan.channels[1], + sizeof(hw->scan.channels[1])); if (err < 0) goto out; - iio_push_to_buffers_with_timestamp(iio_dev, buffer, + iio_push_to_buffers_with_timestamp(iio_dev, &hw->scan, iio_get_time_ns(iio_dev)); out: From patchwork Mon Jul 20 15:35:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237547 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2132044ilg; Mon, 20 Jul 2020 09:30:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKeUkAmYkl3hfw30lZKJr8AgOmLhOtEa9wy2I4KYGMF25f6sFI0tULEoF5cdPK7QiWpcbL X-Received: by 2002:aa7:d44f:: with SMTP id q15mr21275343edr.340.1595262653842; Mon, 20 Jul 2020 09:30:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262653; cv=none; d=google.com; s=arc-20160816; b=e3MrrMUkzxQGMgnEOOqg2xLinTbSFobARODwqjcT12vZSuaX+2zsRR+3Lt2Cs2676z /6jTzN/U86lfygsiYHS1QGXnxWFYwJv74dbQSDhAPS+Qalm7jWd9A+Ghldts+ISPnHkW Wb7uiotWDW/ND0C8cxlO7oRk4np3sSmJrVg3h0Rer0HwpWkhU2mUj3lPY0fHb27NA0vh RCVD7YKtBaHGU1TxkL9DNM7Fjj2DEW6lzGnh2oa3POe4SF3Cp/XwPc6w+/7O6TXvTLaU o9nlRqsvVGgjTuDE3Ee0N1U8wmiBgcR9yhXJmmvYdXA0mH8j62GEUKGIvCey9dwK3bKi JazA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=MQukpceyA3tWf1bkLRu/MatGBpYJxWayJXaiWUTaRdA=; b=QIxhgMLMUvu5tiK2MvOdBodJ8N1UsKhDefjquhbWlKNNW2lqRG5jhlGiWDJAnpnscU 9jkVk9z2jK5XBcaqSqBXNpmR9CHb/qTpVPDfvalasBBYbSQwvcCBS7vdx6IGUnA40fFI 0Rk7aWfkrpiYGaB0OU4XPOyDJH9C3PseQRX6frbGkw3x/VlCuNHVngfroDrSxrCySQwI /hQmBiGjcu2T3ZVkG/RQbFRQbT9xEkkft2QZVczFLCUQdxJ4e5EtERe7cbudDPqZZ4/9 E80D/ObfwvuIEirjtc3kfuQHA4ruv8q0QQJj1E3rNuhLhRJaqwlzcaM0fHagaPmbt1BY QfxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="jEQ/lHdi"; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 n7si11026106edv.74.2020.07.20.09.30.53; Mon, 20 Jul 2020 09:30:53 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b="jEQ/lHdi"; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732684AbgGTQat (ORCPT + 15 others); Mon, 20 Jul 2020 12:30:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:58008 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730562AbgGTP5y (ORCPT ); Mon, 20 Jul 2020 11:57:54 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1D60622CAF; Mon, 20 Jul 2020 15:57:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260673; bh=1H5+7kJO9eaqpbN5JgnI5mNMkNUZHr0WnC6h16aXQEM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jEQ/lHdiIhVJCF/1YQjwx9oG0JIBMjpzzjat7V9/pYukZjj4/bc3M3FBi9/CA8Crc H9HlKvmWHes1dqob8Xna+mmey2EIknBXQDQ7vx/fYAFjhgaHEtREaLQCJDMbGSrSRd ze5oyXQcA6YZjmL3fc1bpAL8+0MrOgVd83whKNK4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Jonathan Cameron , Tomasz Duszynski , Stable@vger.kernel.org Subject: [PATCH 5.4 053/215] iio:pressure:ms5611 Fix buffer element alignment Date: Mon, 20 Jul 2020 17:35:35 +0200 Message-Id: <20200720152822.732782291@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit 8db4afe163bbdd93dca6fcefbb831ef12ecc6b4d upstream. One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses an array of smaller elements on the stack. Here there is no data leak possibility so use an explicit structure on the stack to ensure alignment and nice readable fashion. The forced alignment of ts isn't strictly necessary in this driver as the padding will be correct anyway (there isn't any). However it is probably less fragile to have it there and it acts as documentation of the requirement. Fixes: 713bbb4efb9dc ("iio: pressure: ms5611: Add triggered buffer support") Reported-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron Acked-by: Tomasz Duszynski Cc: Signed-off-by: Greg Kroah-Hartman --- drivers/iio/pressure/ms5611_core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/drivers/iio/pressure/ms5611_core.c +++ b/drivers/iio/pressure/ms5611_core.c @@ -212,16 +212,21 @@ static irqreturn_t ms5611_trigger_handle struct iio_poll_func *pf = p; struct iio_dev *indio_dev = pf->indio_dev; struct ms5611_state *st = iio_priv(indio_dev); - s32 buf[4]; /* s32 (pressure) + s32 (temp) + 2 * s32 (timestamp) */ + /* Ensure buffer elements are naturally aligned */ + struct { + s32 channels[2]; + s64 ts __aligned(8); + } scan; int ret; mutex_lock(&st->lock); - ret = ms5611_read_temp_and_pressure(indio_dev, &buf[1], &buf[0]); + ret = ms5611_read_temp_and_pressure(indio_dev, &scan.channels[1], + &scan.channels[0]); mutex_unlock(&st->lock); if (ret < 0) goto err; - iio_push_to_buffers_with_timestamp(indio_dev, buf, + iio_push_to_buffers_with_timestamp(indio_dev, &scan, iio_get_time_ns(indio_dev)); err: From patchwork Mon Jul 20 15:35:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237546 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2132021ilg; Mon, 20 Jul 2020 09:30:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx5ObPJ9QMjKbHM9yLgDsNwXl4+weETa459GpgtNIb2vmlAy7E76w5YHbbFRlosMzh9fGle X-Received: by 2002:a17:906:2b9b:: with SMTP id m27mr19068661ejg.19.1595262652748; Mon, 20 Jul 2020 09:30:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262652; cv=none; d=google.com; s=arc-20160816; b=Uu0b5lRVgMchEioHCM6N8Z8dLVKO73PbCGoY4b0H37TdLIMY0Bqy4+9dvECduWLDXa H6W8jU/iNKKVXqD6Ocdpcxol0dv0Y2I0mt2qdMUz5WCgD1rbvUAF7fVlVFKA0nWngAq0 rOQhjT/ZdzkWCNBYVG4qPL5JTVPplfFa+eSKJKBGKsw1uuCT5D4NpEi+UGEK2CMHYwYA VLPQcfA6jL0E6CUCP4divYcfrWM9I6CybWC85Ngzxc0Mu1Y/3V596fllgb4gW2k7Kaom W3Hks6rvxUBr8974OzhZYe3fy2D6ExOSE69IEyxqUA6VBL5s6kxKadcbu1YAKLf1kfbr qzGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=k6U0NZgnQQRIoQRUlqjRi7AMq0FczpcvAqO0hXo/poo=; b=HzMiju7J29/rUnbOa6YxRVkD8m0LpAr8Xr4uTWulORKOUd9yZA/OiVgId3j4k6le/F g69tpAeoJPWpBSoT8fmJ0IhqVx49T8jigPUOUB6sHRuUHQq9a8mL3BZrDz/mgwRtgOBM A/u9YZ9zdekGWg0q2dP1iR1dMC6cXr82GJkSVhyoNUfqM0mOeFjpC9SJ+Lv0qWH4mEkT X3RwFZiHZmmtFHrf7C/zxg0tCavKKNghSYhuRp6UM1SP7xfy2wuQOcRdMgLEeYTYtO5N j8iO8hVx+ITcY0ZoduCV45lAK9r8+CbQemYfWrD0eoTQs5tbwPXGzvNzSTYpR2ZRcL78 tQyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=v0hZNpYh; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 n7si11026106edv.74.2020.07.20.09.30.49; Mon, 20 Jul 2020 09:30:52 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=v0hZNpYh; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731735AbgGTP56 (ORCPT + 15 others); Mon, 20 Jul 2020 11:57:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:58056 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731964AbgGTP55 (ORCPT ); Mon, 20 Jul 2020 11:57:57 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id B0D4E2065E; Mon, 20 Jul 2020 15:57:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260676; bh=IReQaCQ1JzU9pd3WgkQG2WkZwI3+Cf/nWKg9g+Jb9Do=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=v0hZNpYhqQKbHIBnF7bS1GvVtsy8xwKWfxXRD6XFgUBO08HPhkRoVAh9O3SEvvXm3 ufeiVW4KWWEHGbAAE4HEqSkrKvmM3NNhgVUbVHXIGSssyU1EfoTg/2pyMXWv0T1aJ3 H8sufYsJwWKDvjTn3mHqvpDv/XsZlpua5vQIX9xo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Jonathan Cameron , "Andrew F. Davis" , Stable@vger.kernel.org Subject: [PATCH 5.4 054/215] iio:health:afe4403 Fix timestamp alignment and prevent data leak. Date: Mon, 20 Jul 2020 17:35:36 +0200 Message-Id: <20200720152822.782068169@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron commit 3f9c6d38797e9903937b007a341dad0c251765d6 upstream. One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses a 32 byte array of smaller elements on the stack. As Lars also noted this anti pattern can involve a leak of data to userspace and that indeed can happen here. We close both issues by moving to a suitable structure in the iio_priv() data with alignment explicitly requested. This data is allocated with kzalloc so no data can leak appart from previous readings. Fixes: eec96d1e2d31 ("iio: health: Add driver for the TI AFE4403 heart monitor") Reported-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron Acked-by: Andrew F. Davis Cc: Signed-off-by: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman --- drivers/iio/health/afe4403.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) --- a/drivers/iio/health/afe4403.c +++ b/drivers/iio/health/afe4403.c @@ -63,6 +63,7 @@ static const struct reg_field afe4403_re * @regulator: Pointer to the regulator for the IC * @trig: IIO trigger for this device * @irq: ADC_RDY line interrupt number + * @buffer: Used to construct data layout to push into IIO buffer. */ struct afe4403_data { struct device *dev; @@ -72,6 +73,8 @@ struct afe4403_data { struct regulator *regulator; struct iio_trigger *trig; int irq; + /* Ensure suitable alignment for timestamp */ + s32 buffer[8] __aligned(8); }; enum afe4403_chan_id { @@ -309,7 +312,6 @@ static irqreturn_t afe4403_trigger_handl struct iio_dev *indio_dev = pf->indio_dev; struct afe4403_data *afe = iio_priv(indio_dev); int ret, bit, i = 0; - s32 buffer[8]; u8 tx[4] = {AFE440X_CONTROL0, 0x0, 0x0, AFE440X_CONTROL0_READ}; u8 rx[3]; @@ -326,9 +328,9 @@ static irqreturn_t afe4403_trigger_handl if (ret) goto err; - buffer[i++] = (rx[0] << 16) | - (rx[1] << 8) | - (rx[2]); + afe->buffer[i++] = (rx[0] << 16) | + (rx[1] << 8) | + (rx[2]); } /* Disable reading from the device */ @@ -337,7 +339,8 @@ static irqreturn_t afe4403_trigger_handl if (ret) goto err; - iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp); + iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer, + pf->timestamp); err: iio_trigger_notify_done(indio_dev->trig); From patchwork Mon Jul 20 15:35:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237382 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2105379ilg; Mon, 20 Jul 2020 09:00:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx2swKkg4Xe1oHr/pRUGfDk2RHeUr6TBdKs6RDm1LQA01YEXlw2u9/CtC5Pm+F8YdMA55X5 X-Received: by 2002:a17:906:1d1b:: with SMTP id n27mr21988212ejh.272.1595260800058; Mon, 20 Jul 2020 09:00:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260800; cv=none; d=google.com; s=arc-20160816; b=x4GFwF9RKRs6s/urNBT4NPrOETdeF89vZQzAVlft154E4RQGiKRLztWgCWoJ0Jyt/O 5qJ+199Xgin9gyspvVbV1G//uAhLBFUgkmph9jlo9UahCn2EjuxjiZtZPZA8qZjikKJ4 8qktMMHx4G+Ov4sUN85QWcql5ohV5jByXy7tqRq+01r4b6x7GLlG7WrEBUbtKFmkB1P6 hM/zUUNt2Xf2aqxQQ0b4ha6Ls3QZXy4PSe1rL3nhNnUfbIPw86K6Bj95RYR6qFaEAp8E 5coAnrtodUM65zuIwhQUFH9N4gxtxu9EiMgLM2OCSNHYAdfRq2auXCBqVGI7v01IgxxI XxTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iQuSnhR0RhvCIyq7wr5Z0MdZ0QfTiyiaQuDtAjyQTLc=; b=TVxOKgxNfw0B+CsBtXBVpl5r9J87HmFeAkidjFzqTt/kSFIArP4ZTc01f81Znt/5To DOYHuM/GrafjADCiEDcTD2l0xkP+BPVigkY7Q9aN++wRuw1keoXv3KUSYwK7knNR/OE4 OXGu0/h9wReKWxVtwvPNz5OM8QBEfmVYRBs3Y1LvDm5x0j1Dm1P29etC36QqZU5UNKtX n5fFmtQfSlfmX9q98kXrhTBx7euM4wQYUGsUUOlhtEBrSHd+qOoexDt1lxZh8Xy06j9t 9ulDsk11FfKLRNVYgrHWui/TTsYOnTYjxu3ypAPP3J2FzJeGBY08lGujEN+21Kx/VDPe gIjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1GQ4dOtZ; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 c43si10923686edf.293.2020.07.20.08.59.59; Mon, 20 Jul 2020 09:00:00 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=1GQ4dOtZ; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732334AbgGTP76 (ORCPT + 15 others); Mon, 20 Jul 2020 11:59:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:60958 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732329AbgGTP75 (ORCPT ); Mon, 20 Jul 2020 11:59:57 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3999E20773; Mon, 20 Jul 2020 15:59:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260796; bh=NU3TG0s7MfbTzVYgvNToxG5Yjvfw1M2N6dcL0zCmgGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1GQ4dOtZoXFWFvAmbQLCp3Pmhvey7EE41b/wYWRzLfieEsQBZNAdUdByna8+5bUpZ zwPYiHbPVvqQn5z/nPXapP4WumhhoW6rh0/nLCzbhevsfoZzHmgX6RHIiyp1llXruS MSmvJoQ3WWqryjxFNVYMeL0oTVmyxNh2wl1X+1Ew= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ludovic Barre , Brian Masney , Stephan Gerhold , Niklas Cassel , Russell King , Ulf Hansson , Srinivas Kandagatla , Linus Walleij , Sasha Levin Subject: [PATCH 5.4 069/215] mmc: mmci: Support any block sizes for ux500v2 and qcom variant Date: Mon, 20 Jul 2020 17:35:51 +0200 Message-Id: <20200720152823.494421593@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Linus Walleij [ Upstream commit 2253ed4b36dc876d1598c4dab5587e537ec68c34 ] For the ux500v2 variant of the PL18x block, any block sizes are supported. This is necessary to support some SDIO transfers. This also affects the QCOM MMCI variant and the ST micro variant. For Ux500 an additional quirk only allowing DMA on blocks that are a power of two is needed. This might be a bug in the DMA engine (DMA40) or the MMCI or in the interconnect, but the most likely is the MMCI, as transfers of these sizes work fine for other devices using the same DMA engine. DMA works fine also with SDIO as long as the blocksize is a power of 2. This patch has proven necessary for enabling SDIO for WLAN on PostmarketOS-based Ux500 platforms. What we managed to test in practice is Broadcom WiFi over SDIO on the Ux500 based Samsung GT-I8190 and GT-S7710. This WiFi chip, BCM4334 works fine after the patch. Before this patch: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4334-sdio for chip BCM4334/3 mmci-pl18x 80118000.sdi1_per2: unsupported block size (60 bytes) brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed brcmfmac: brcmf_sdio_download_code_file: error -22 on writing 434236 membytes at 0x00000000 brcmfmac: brcmf_sdio_download_firmware: dongle image file download failed After this patch: brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4334/3 wl0: Nov 21 2012 00:21:28 version 6.10.58.813 (B2) FWID 01-0 Bringing up networks, discovering networks with "iw dev wlan0 scan" and connecting works fine from this point. This patch is inspired by Ulf Hansson's patch http://www.spinics.net/lists/linux-mmc/msg12160.html As the DMA engines on these platforms may now get block sizes they were not used to before, make sure to also respect if the DMA engine says "no" to a transfer. Make a drive-by fix for datactrl_blocksz, misspelled. Cc: Ludovic Barre Cc: Brian Masney Cc: Stephan Gerhold Cc: Niklas Cassel Cc: Russell King Signed-off-by: Ulf Hansson Signed-off-by: Srinivas Kandagatla Signed-off-by: Linus Walleij Tested-by: Stephan Gerhold Link: https://lore.kernel.org/r/20191217143952.2885-1-linus.walleij@linaro.org Signed-off-by: Sasha Levin --- drivers/mmc/host/mmci.c | 34 ++++++++++++++++++++++++++++++---- drivers/mmc/host/mmci.h | 8 +++++++- 2 files changed, 37 insertions(+), 5 deletions(-) -- 2.25.1 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index c37e70dbe250e..7e4bc9124efde 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -168,6 +168,8 @@ static struct variant_data variant_ux500 = { .cmdreg_srsp = MCI_CPSM_RESPONSE, .datalength_bits = 24, .datactrl_blocksz = 11, + .datactrl_any_blocksz = true, + .dma_power_of_2 = true, .datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN, .st_sdio = true, .st_clkdiv = true, @@ -201,6 +203,8 @@ static struct variant_data variant_ux500v2 = { .datactrl_mask_ddrmode = MCI_DPSM_ST_DDRMODE, .datalength_bits = 24, .datactrl_blocksz = 11, + .datactrl_any_blocksz = true, + .dma_power_of_2 = true, .datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN, .st_sdio = true, .st_clkdiv = true, @@ -260,6 +264,7 @@ static struct variant_data variant_stm32_sdmmc = { .datacnt_useless = true, .datalength_bits = 25, .datactrl_blocksz = 14, + .datactrl_any_blocksz = true, .stm32_idmabsize_mask = GENMASK(12, 5), .init = sdmmc_variant_init, }; @@ -279,6 +284,7 @@ static struct variant_data variant_qcom = { .data_cmd_enable = MCI_CPSM_QCOM_DATCMD, .datalength_bits = 24, .datactrl_blocksz = 11, + .datactrl_any_blocksz = true, .pwrreg_powerup = MCI_PWR_UP, .f_max = 208000000, .explicit_mclk_control = true, @@ -447,10 +453,11 @@ void mmci_dma_setup(struct mmci_host *host) static int mmci_validate_data(struct mmci_host *host, struct mmc_data *data) { + struct variant_data *variant = host->variant; + if (!data) return 0; - - if (!is_power_of_2(data->blksz)) { + if (!is_power_of_2(data->blksz) && !variant->datactrl_any_blocksz) { dev_err(mmc_dev(host->mmc), "unsupported block size (%d bytes)\n", data->blksz); return -EINVAL; @@ -515,7 +522,9 @@ int mmci_dma_start(struct mmci_host *host, unsigned int datactrl) "Submit MMCI DMA job, sglen %d blksz %04x blks %04x flags %08x\n", data->sg_len, data->blksz, data->blocks, data->flags); - host->ops->dma_start(host, &datactrl); + ret = host->ops->dma_start(host, &datactrl); + if (ret) + return ret; /* Trigger the DMA transfer */ mmci_write_datactrlreg(host, datactrl); @@ -822,6 +831,18 @@ static int _mmci_dmae_prep_data(struct mmci_host *host, struct mmc_data *data, if (data->blksz * data->blocks <= variant->fifosize) return -EINVAL; + /* + * This is necessary to get SDIO working on the Ux500. We do not yet + * know if this is a bug in: + * - The Ux500 DMA controller (DMA40) + * - The MMCI DMA interface on the Ux500 + * some power of two blocks (such as 64 bytes) are sent regularly + * during SDIO traffic and those work fine so for these we enable DMA + * transfers. + */ + if (host->variant->dma_power_of_2 && !is_power_of_2(data->blksz)) + return -EINVAL; + device = chan->device; nr_sg = dma_map_sg(device->dev, data->sg, data->sg_len, mmc_get_dma_dir(data)); @@ -872,9 +893,14 @@ int mmci_dmae_prep_data(struct mmci_host *host, int mmci_dmae_start(struct mmci_host *host, unsigned int *datactrl) { struct mmci_dmae_priv *dmae = host->dma_priv; + int ret; host->dma_in_progress = true; - dmaengine_submit(dmae->desc_current); + ret = dma_submit_error(dmaengine_submit(dmae->desc_current)); + if (ret < 0) { + host->dma_in_progress = false; + return ret; + } dma_async_issue_pending(dmae->cur); *datactrl |= MCI_DPSM_DMAENABLE; diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index 833236ecb31e6..89ab73343cf30 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h @@ -278,7 +278,11 @@ struct mmci_host; * @stm32_clkdiv: true if using a STM32-specific clock divider algorithm * @datactrl_mask_ddrmode: ddr mode mask in datactrl register. * @datactrl_mask_sdio: SDIO enable mask in datactrl register - * @datactrl_blksz: block size in power of two + * @datactrl_blocksz: block size in power of two + * @datactrl_any_blocksz: true if block any block sizes are accepted by + * hardware, such as with some SDIO traffic that send + * odd packets. + * @dma_power_of_2: DMA only works with blocks that are a power of 2. * @datactrl_first: true if data must be setup before send command * @datacnt_useless: true if you could not use datacnt register to read * remaining data @@ -323,6 +327,8 @@ struct variant_data { unsigned int datactrl_mask_ddrmode; unsigned int datactrl_mask_sdio; unsigned int datactrl_blocksz; + u8 datactrl_any_blocksz:1; + u8 dma_power_of_2:1; u8 datactrl_first:1; u8 datacnt_useless:1; u8 st_sdio:1; From patchwork Mon Jul 20 15:36:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237545 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2129315ilg; Mon, 20 Jul 2020 09:27:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxo9Z2MuGXoquq7626aAKbCPMGP3AZETzLHeMaOjimeIPEtKcP5vhSrprCq07B07EOHYOO6 X-Received: by 2002:a17:906:7d86:: with SMTP id v6mr20993551ejo.542.1595262445321; Mon, 20 Jul 2020 09:27:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262445; cv=none; d=google.com; s=arc-20160816; b=Rifz7pVXuYvb+DTO0wfbHXYkEK3fan5HgIjWNCLBBguI0McpGXWN7NuanooOihf9ux ZrjgktSi32TIHJzuK5OHZ04sblw5q2Z7GXav7WzbcUKT6dOwP4P59fy86J+FlowbWmBY hIxuJMDPVUU6WGvvH7zK3Cdo2Ho2Z9v9CxyvBFq4foYsCdLuuISZMm5ELqC5gjUPIc7d wRevH4cQqtQNfCtfx6imjuf/bdkmE5QfYQ3TCP9B2Ya+NzMM7zZjYwbs80UY8doHTN7N yVg64VDUFrsecLieQy4qpZEevvy7oadjrJ29VFsPX+gfK8rWKA0xxEhv7jZFbItrTadt YC+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=bg1QsSJ+1PnVYtnO+4KbjyPf/NMpr4oRz1r6haFyT7M=; b=KvJjO5paC1VrHC4mfr6SbbKz0dCXlz7/d6wUboCtQPsP4rlWrA2A/DTAVxHPlgRfeC gzJdXen2tYG9WGN5Ui0Px2+zqtPewlRWfAEjHmzyr1VnM+H5ND9LF/KnWD0cYHxBYIWZ eSNXhoJ8+v8wgett4bcHNxnZeE9y48DbYBfTE/SAXDjWPtBzwrDTCAbRf79Of30Oo/Cy Rw56e3VZChTSe8yGPlcIHt6etZrA1c558jc5hwaiAqWMl8L6i4h14mNMGIBMiw87OmH5 caSeQYI/7jPhcFHJLcPJnD5fI4B6m0Y4NKK44gdrSvfNurJB/uDHWL6oKKtwMSV15UQ5 BexQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0L3YDBpt; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 z1si10758738eju.231.2020.07.20.09.27.25; Mon, 20 Jul 2020 09:27:25 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=0L3YDBpt; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387994AbgGTQ1M (ORCPT + 15 others); Mon, 20 Jul 2020 12:27:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:60628 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732287AbgGTP7n (ORCPT ); Mon, 20 Jul 2020 11:59:43 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7D5F822BEF; Mon, 20 Jul 2020 15:59:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260783; bh=OrUqV8JJjkoxK8FuCM07uleGXeKVco3gz7e0rfHRBo0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0L3YDBptN8h1RGID9SxAOYrhicAsc9OUFIlqETxLVyvkR/QI+vMYnDl0HpahfxlPW MxmgckBE/Y5jFXVcHJpoQB6HpQS5cofl/MyTIdl5S5qwCxJPKQCwO2uqHAnboP0TRa jwTaIasCMYaZEaybs7CppkGB1xSlSIytXVqIFqbg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Lars-Peter Clausen , Jonathan Cameron , "Andrew F. Davis" , Sasha Levin Subject: [PATCH 5.4 093/215] iio:health:afe4404 Fix timestamp alignment and prevent data leak. Date: Mon, 20 Jul 2020 17:36:15 +0200 Message-Id: <20200720152824.632533390@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan Cameron [ Upstream commit f88ecccac4be348bbcc6d056bdbc622a8955c04d ] One of a class of bugs pointed out by Lars in a recent review. iio_push_to_buffers_with_timestamp assumes the buffer used is aligned to the size of the timestamp (8 bytes). This is not guaranteed in this driver which uses a 40 byte array of smaller elements on the stack. As Lars also noted this anti pattern can involve a leak of data to userspace and that indeed can happen here. We close both issues by moving to a suitable structure in the iio_priv() data with alignment explicitly requested. This data is allocated with kzalloc so no data can leak appart from previous readings. Fixes: 87aec56e27ef ("iio: health: Add driver for the TI AFE4404 heart monitor") Reported-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron Acked-by: Andrew F. Davis Signed-off-by: Jonathan Cameron Signed-off-by: Sasha Levin --- drivers/iio/health/afe4404.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) -- 2.25.1 diff --git a/drivers/iio/health/afe4404.c b/drivers/iio/health/afe4404.c index e728bbb21ca88..cebb1fd4d0b15 100644 --- a/drivers/iio/health/afe4404.c +++ b/drivers/iio/health/afe4404.c @@ -83,6 +83,7 @@ static const struct reg_field afe4404_reg_fields[] = { * @regulator: Pointer to the regulator for the IC * @trig: IIO trigger for this device * @irq: ADC_RDY line interrupt number + * @buffer: Used to construct a scan to push to the iio buffer. */ struct afe4404_data { struct device *dev; @@ -91,6 +92,7 @@ struct afe4404_data { struct regulator *regulator; struct iio_trigger *trig; int irq; + s32 buffer[10] __aligned(8); }; enum afe4404_chan_id { @@ -328,17 +330,17 @@ static irqreturn_t afe4404_trigger_handler(int irq, void *private) struct iio_dev *indio_dev = pf->indio_dev; struct afe4404_data *afe = iio_priv(indio_dev); int ret, bit, i = 0; - s32 buffer[10]; for_each_set_bit(bit, indio_dev->active_scan_mask, indio_dev->masklength) { ret = regmap_read(afe->regmap, afe4404_channel_values[bit], - &buffer[i++]); + &afe->buffer[i++]); if (ret) goto err; } - iio_push_to_buffers_with_timestamp(indio_dev, buffer, pf->timestamp); + iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer, + pf->timestamp); err: iio_trigger_notify_done(indio_dev->trig); From patchwork Mon Jul 20 15:36:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237396 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2106095ilg; Mon, 20 Jul 2020 09:00:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwAVRcNYTmpqlqzOHg8OxK4No9Ct9FzuJGJk0Z41JtpQIi0SKs58kPUg9HDN2EysX8G7SGk X-Received: by 2002:a05:6402:2064:: with SMTP id bd4mr21639585edb.180.1595260843090; Mon, 20 Jul 2020 09:00:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260843; cv=none; d=google.com; s=arc-20160816; b=lyWCtiwHcW9AeGmBt/X+ufReacyFPgxBaqCr5NTL0YuC+jkhMA/ucu3IYOd9E3zqS4 A5mAPK7ZXpRRlbUOp1omX+qHl/L5fp7VQfO9CKbACs7ltAJCaSqwiXjNiW7SGYOsf+ez MthdmeL49YiDY0+gDJ9rbKGs3o4vuOm5tZoXX1n4aep4/xmaFKnBA6I6WBUMxLDCNZsF BLQSA1Uqu9mcHLpb4bodS1ZbpgNDtcFJDg5d6U0Hc3+AIL/G7D2yhP6MNxHoYEXG+RwA IxA2GyC5Z+vXCX+agJSEZpwz2GvfFVbYIYRLg9gyLaUH1/YSxCQgtT277TDQREDqu93B L7Mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7vtUv1GNDqc8aOxPlks5ht/ChsaUGCiN5cEWBbFiUO0=; b=z0RB7EnxXkRjZBG6FlOg1OkZLLJyfCoCcfJRpRgz2zDuziF3zjBBF7i5yOPxchAmtd o12BsqEyMxl74LbXnxIYt2anI1T8o5xkHbY46qV9SLVHWLMVcpUG6HGIZA/TglBbBOV3 ojW5iKTxEiOmNX1jN6PLxFvJ3KNPi84JMWCwxs4TQRVkSbjceJoP6KFsCh7gLH/TYqZV dO9mbHL8EtRmRo9zDYd54k04aV/A2epKPQ+WHYtjkmYz9ibZY7X73LNeQxGRhaQNsqxM WaphWp5JAYB8irLpFhY5N06EyEC/ZrDOImh07HH20Iw0IFCxgqM5pOnpRbOwtrsr2HmU DkOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OigXwxwO; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 a2si13079057edb.243.2020.07.20.09.00.42; Mon, 20 Jul 2020 09:00:43 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=OigXwxwO; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732005AbgGTQAm (ORCPT + 15 others); Mon, 20 Jul 2020 12:00:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:33730 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732429AbgGTQAj (ORCPT ); Mon, 20 Jul 2020 12:00:39 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1CF1A20684; Mon, 20 Jul 2020 16:00:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260838; bh=8+F1xvidluSTrZ/um2PpFkWZI11lB1bsHhGjws3CU2E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OigXwxwOthGw+A3QBQnN7W4Hdaur0bYll9cE7R2rSZAjkPH2IJR/Kz5UlXlHo5ykD T9ys5yH2PnRXpDqWcWXfrDl9qZl+Oe3KhNREZdKUshwQxlWGOPJdCD+0dIH03+44Dg kxHxD4lMXxuR8s5+NP7AzxpGMSc6b9h8Q4WRZ/qk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jerome Brunet , Kevin Hilman , Neil Armstrong , Sasha Levin Subject: [PATCH 5.4 097/215] arm64: dts: meson: add missing gxl rng clock Date: Mon, 20 Jul 2020 17:36:19 +0200 Message-Id: <20200720152824.826299352@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jerome Brunet [ Upstream commit 95ca6f06dd4827ff63be5154120c7a8511cd9a41 ] The peripheral clock of the RNG is missing for gxl while it is present for gxbb. Fixes: 1b3f6d148692 ("ARM64: dts: meson-gx: add clock CLKID_RNG0 to hwrng node") Signed-off-by: Jerome Brunet Signed-off-by: Kevin Hilman Reviewed-by: Neil Armstrong Link: https://lore.kernel.org/r/20200617125346.1163527-1-jbrunet@baylibre.com Signed-off-by: Sasha Levin --- arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 5 +++++ 1 file changed, 5 insertions(+) -- 2.25.1 diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi index 49ff0a7d0210f..e3cfa24dca5ab 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi @@ -288,6 +288,11 @@ clkc: clock-controller { }; }; +&hwrng { + clocks = <&clkc CLKID_RNG0>; + clock-names = "core"; +}; + &i2c_A { clocks = <&clkc CLKID_I2C>; }; From patchwork Mon Jul 20 15:36:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237414 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2107108ilg; Mon, 20 Jul 2020 09:01:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwzjRIA7+8/8yt1/kuc9sZemYDIlCCqP1G15blMjN59C8id9QvdGOzNk3bH0dPj6bsKas+ X-Received: by 2002:a50:ab5c:: with SMTP id t28mr22022982edc.209.1595260902256; Mon, 20 Jul 2020 09:01:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260902; cv=none; d=google.com; s=arc-20160816; b=jast2R5mgRbyrQEQRIWIgI+ZCeh78bfGFx5rjushuQ1Riac8nEQmDQtd85WKODnfY4 DuldvLfYLHwyG1NCMdi/SAusZAyMynIHZGIWM0fQwzGow2vnLplYO8W3E1XGFmcGd7PW nuRZUKU1E6YFXcyWINtcGO7ubLUYmrndwtaQJ99wuGWyJnYdYhJgPmGpz9q4P7d75LLn tXWgB2jBL0wHJJUFxiCTNIgbpOSnflKib2RXfVnQySBlpKHQCs25zqdTk4ulQYxhtZLh +/K9v/TdS5K1CBa1DR8yZzq/0s9V2rS4zxHliyFV85a+ZODWzklal5vJx3EcHkSPev3L ap7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iaWi5sR2G1WhlUTAECIPelg/poxP8qZrAMD5SmbPKEQ=; b=ptMSl1iH2AxJ4blt+4I1zozZNvoZ3isBA7B+ofce+89ru4MnQRSyIELw49toIWEVWg bbPrr6MQ4rUvdyQHkmcnmyTysaPQtF/1KO3uPLSjKha2XhAgJnkXV3rGn67/njQ9UEMG Aqqp7DAyvFj1Cung9SzWtncvxVvaMVtKQw/kNYPXGwkvfHbbqTjMqPNSUIZSKmNCl1W6 VtyDm0+gn+5YDzd318BcDtKibdMsEFvijbm84uLgNJJN8PZHLCD7/iJDGuk6Ufpmu6R6 Q99rvKJkMyYxutFjdCB9Izw3jTNvfzZnw0XiiOr7yiPjJ4dPFmw4XxhQpvDJeP0AgeaL 7+jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uYbE5UeF; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 z16si10703062ejw.386.2020.07.20.09.01.42; Mon, 20 Jul 2020 09:01:42 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=uYbE5UeF; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732548AbgGTQBk (ORCPT + 15 others); Mon, 20 Jul 2020 12:01:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:35122 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732023AbgGTQBh (ORCPT ); Mon, 20 Jul 2020 12:01:37 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5F79320672; Mon, 20 Jul 2020 16:01:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260897; bh=yOzak47EJ9Fo5F4o+e8MA+hzD4MsUtU/5HybLtvGEXA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uYbE5UeFM9cJwD9kOFSqkV9ITDdOYhiEpsdPpyoMw7P6ZLLKB2Q+EFS/a6h0d+uBz AeZkGoTBCD+zg5hsISTO742qrznckt6oI78BUjs6462BXN3S9HRD2bMr10Ms2WmKdu l4QSeXCTkJPIogCWm/xPSgzukH3UThiV6JecVspY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Grygorii Strashko , Peter Ujfalusi , Vinod Koul , Sasha Levin Subject: [PATCH 5.4 104/215] dmaengine: dmatest: stop completed threads when running without set channel Date: Mon, 20 Jul 2020 17:36:26 +0200 Message-Id: <20200720152825.156428904@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Peter Ujfalusi [ Upstream commit fd17d1abce426b4224a916a242b57be94272771b ] The completed threads were not cleared and consequent run would result threads accumulating: echo 800000 > /sys/module/dmatest/parameters/test_buf_size echo 2000 > /sys/module/dmatest/parameters/timeout echo 50 > /sys/module/dmatest/parameters/iterations echo 1 > /sys/module/dmatest/parameters/max_channels echo "" > /sys/module/dmatest/parameters/channel [ 237.507265] dmatest: Added 1 threads using dma1chan2 echo 1 > /sys/module/dmatest/parameters/run [ 244.713360] dmatest: Started 1 threads using dma1chan2 [ 246.117680] dmatest: dma1chan2-copy0: summary 50 tests, 0 failures 2437.47 iops 977623 KB/s (0) echo 1 > /sys/module/dmatest/parameters/run [ 292.381471] dmatest: No channels configured, continue with any [ 292.389307] dmatest: Added 1 threads using dma1chan3 [ 292.394302] dmatest: Started 1 threads using dma1chan2 [ 292.399454] dmatest: Started 1 threads using dma1chan3 [ 293.800835] dmatest: dma1chan3-copy0: summary 50 tests, 0 failures 2624.53 iops 975014 KB/s (0) echo 1 > /sys/module/dmatest/parameters/run [ 307.301429] dmatest: No channels configured, continue with any [ 307.309212] dmatest: Added 1 threads using dma1chan4 [ 307.314197] dmatest: Started 1 threads using dma1chan2 [ 307.319343] dmatest: Started 1 threads using dma1chan3 [ 307.324492] dmatest: Started 1 threads using dma1chan4 [ 308.730773] dmatest: dma1chan4-copy0: summary 50 tests, 0 failures 2390.28 iops 965436 KB/s (0) Fixes: 6b41030fdc79 ("dmaengine: dmatest: Restore default for channel") Reported-by: Grygorii Strashko Signed-off-by: Peter Ujfalusi Link: https://lore.kernel.org/r/20200701101225.8607-1-peter.ujfalusi@ti.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/dmatest.c | 2 ++ 1 file changed, 2 insertions(+) -- 2.25.1 diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 0425984db118a..62d9825a49e9d 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -1168,6 +1168,8 @@ static int dmatest_run_set(const char *val, const struct kernel_param *kp) } else if (dmatest_run) { if (!is_threaded_test_pending(info)) { pr_info("No channels configured, continue with any\n"); + if (!is_threaded_test_run(info)) + stop_threaded_test(info); add_threaded_test(info); } start_threaded_tests(info); From patchwork Mon Jul 20 15:36:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237404 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2106420ilg; Mon, 20 Jul 2020 09:01:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxk4D7e0YwJ+32AKeoT1bUz6sUDFUa2ngF5pgF1hLz/FOiKndkyEN4DvMH5lkmQh/vLHFwk X-Received: by 2002:a50:f08c:: with SMTP id v12mr21564210edl.119.1595260862299; Mon, 20 Jul 2020 09:01:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260862; cv=none; d=google.com; s=arc-20160816; b=xV/X5Jv0E5/hXpUFD6eNr+KRr8S421Py014TSYqm/ngYq8LSP42XLIwE48uRskIQjJ dMeH4AFptKkHVKir8Y5QV/8jQhHAbWLAhIMSVtaiZLpjKaUmcRrNFMMZweXlt9c+mJHM kteLOLVZllSH1XxlOy1PSCimmL+16W0yPlZU+yy8HMvahX3xnlrNXPAzf4LUuN5lkhK5 liGwraYVm39UsXSJvlzJG4LfIilJAO4Wr7W9POE7LDQ5WZPmGtwXtyJ++EYdkxcpzLni Gs7ITrOrmmL5l9jk9CNki0xDFz9JPiVxMyVF7skSbg3YcPAO74Y7QE05BCIpO6wz4UVh SCyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=N/Ns3Bw6k+Kzqqw7d/vZudUKKvsCg5YgWPZthY2uS1Q=; b=GxcgXSLhbe2vx7Derhn3FfTWsxkdWe/5XxdbRgfw43cdrSmCwHyJBWWBWjASLmSno2 dHCOOhoFsb0dHuA5qxMovCJzROQ1gmdNCNjH2zae9yccAzNmLhJ/COYA6CXiDwtqMVUy dRqzqEcRGjKqzW6gYBW2tlyP7h+m1l1NM1NWMCBNbBLfDkcBDbk39TZlkFWrkU32LVMe IBLWxDyjVvG4BL1rD56cBmM4aTHk0JZGJKI4JTO7Mc7YSiKHIvUiyhKuuD/HIF1W/xAy sanZ9JakZK7r1+oWP4WqRtgc1JM+IFbyXVvMkNqC94UgLRft9Kdw2u4Q2ItPF0FFjLkL 7OCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=fV0XoJYh; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 mf6si10543058ejb.660.2020.07.20.09.01.01; Mon, 20 Jul 2020 09:01:02 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=fV0XoJYh; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731453AbgGTQA7 (ORCPT + 15 others); Mon, 20 Jul 2020 12:00:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:34192 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731999AbgGTQA6 (ORCPT ); Mon, 20 Jul 2020 12:00:58 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 73C6622CF7; Mon, 20 Jul 2020 16:00:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260858; bh=JNClSQQYpxj38ahF4M0o2Rn4B8uhr5eTzyuyhfw4B98=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fV0XoJYhKPldlL7gZUe/O4bM1dAZg8AWUS5K6h3PX9aJ/7nA9UgZOWiwUHs80L2Bq Hjrz+OJ58GAN1aVARZtDKeCYwR5xUMKGAN3vRRZ8MU7qR4UefSohXtqTm/c3G0f13K yUAr9DHR2gNvMc4w2k72Owpp1+8q4kcX1b0t4zwE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Stephen Boyd , Srinivas Kandagatla , Bjorn Andersson Subject: [PATCH 5.4 121/215] soc: qcom: socinfo: add missing soc_id sysfs entry Date: Mon, 20 Jul 2020 17:36:43 +0200 Message-Id: <20200720152825.957684716@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Srinivas Kandagatla commit 27a344139c186889d742764d3c2a62b395949cef upstream. Looks like SoC ID is not exported to sysfs for some reason. This patch adds it! This is mostly used by userspace libraries like Snapdragon Neural Processing Engine (SNPE) SDK for checking supported SoC info. Fixes: efb448d0a3fc ("soc: qcom: Add socinfo driver") Reviewed-by: Stephen Boyd Signed-off-by: Srinivas Kandagatla Link: https://lore.kernel.org/r/20200319121418.5180-1-srinivas.kandagatla@linaro.org Signed-off-by: Bjorn Andersson Signed-off-by: Greg Kroah-Hartman --- drivers/soc/qcom/socinfo.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/soc/qcom/socinfo.c +++ b/drivers/soc/qcom/socinfo.c @@ -428,6 +428,8 @@ static int qcom_socinfo_probe(struct pla qs->attr.family = "Snapdragon"; qs->attr.machine = socinfo_machine(&pdev->dev, le32_to_cpu(info->id)); + qs->attr.soc_id = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u", + le32_to_cpu(info->id)); qs->attr.revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%u.%u", SOCINFO_MAJOR(le32_to_cpu(info->ver)), SOCINFO_MINOR(le32_to_cpu(info->ver))); From patchwork Mon Jul 20 15:37:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237426 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2107277ilg; Mon, 20 Jul 2020 09:01:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRAv1pezH7rv/9Cnucind5lKCwVpmrLrz6d66JLADMpTodf3Op+sSoFJBDU88s0LzVt+fT X-Received: by 2002:a05:6402:741:: with SMTP id p1mr21475420edy.222.1595260912254; Mon, 20 Jul 2020 09:01:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595260912; cv=none; d=google.com; s=arc-20160816; b=LqKhAmuoPZTiVsnmHKKmp/XpiHdvfqNg7oANMsbsKCUMXrbXqz1+qidHlDOF1APh5w dSD4kdQtNvgiIdXahLkALOviXEXQX/CXt+mjFnfKeVImt4zf096nacHVMu+zVJDsOUIN TaINMOzPJIiHH0w2UNXS4ZEE6kpyFUrz9kY0CFif0piUNUlTaSXi6qQdx6FbHUp/Y0SF DwPHHi8/mkIOZAPyx3DxoLKCFWK/iUGH5ajOn3qJiL8qY+Va3yQru56I06cjf48nqF4R 089tIF8BxAnrecAsMDFm0OiJFBbXepk9wkEZXDjFAPS1lkLP8GJcS/upYBroanaMIo/8 ayeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=V1QWFzjLsWr5buy1tPGIXZxc9spB/FJ5yVFtIg7qe5I=; b=WZ41K0EQMmoGv61SlWQ+qAUkyG07VFZS8fS4QDg5e7uSwIw+5Bi+gMWGCkTAptTPJ5 Mq+15dfwbBh44X1PHVTjeVx1X5l1T7KPR0cpLz/u3WpVSu8g0q1U9G52NybNHxKI3xJg tF7OAPMOzCd1QYUrnXfVfXwqD8t/BWbZtA5Kqrelrs0ZcRB6PLPlEY1gRTQrwIZ3oEme WcbHvOIv80Qt5cK1wHErpJIJwx8MDZM+avqe9Zm+kE4Ns/QkSQjcQKtbbZXiYX5szZlM BUXmoIiSQaDH50oTJGcg+bOCeeM4k7HwnRnQX1L4aTwSDkskLdrZnOmoBJFUbnLEwE+2 O56g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=F6TfLEE8; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 x5si10501006eje.481.2020.07.20.09.01.51; Mon, 20 Jul 2020 09:01:52 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=F6TfLEE8; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732571AbgGTQBu (ORCPT + 15 others); Mon, 20 Jul 2020 12:01:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:35384 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732567AbgGTQBs (ORCPT ); Mon, 20 Jul 2020 12:01:48 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 52A2C20672; Mon, 20 Jul 2020 16:01:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260907; bh=FQsF0DA/IXrvq+RpcXmh+sDlHG+IjbwiwYDz8ZJnW/g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F6TfLEE8GwnwMy8J58s1Bd2Y9SzKPTUURN8akB1RHzmoaquDst/KZpNTNVJDJfHeo CX8oTdY8/wBBX1kJMuHrg7XYFjx+OxGjwcdJKDME++/2+/ySWuMPxryoVUVBkADFxv zufsCUGqKL57IE9NVwiXqwIUZJiyNQ5S2QF9wYw0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vinod Koul , Stephen Boyd Subject: [PATCH 5.4 140/215] clk: qcom: gcc: Add GPU and NPU clocks for SM8150 Date: Mon, 20 Jul 2020 17:37:02 +0200 Message-Id: <20200720152826.851906552@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Vinod Koul commit f73a4230d5bbc8fc7e1a2479ac997f786111c7bb upstream. Add the GPU and NPU clocks for SM8150. They were missed in earlier addition of clock driver. Fixes: 2a1d7eb854bb ("clk: qcom: gcc: Add global clock controller driver for SM8150") Signed-off-by: Vinod Koul Link: https://lkml.kernel.org/r/20200513065420.32735-1-vkoul@kernel.org Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman --- drivers/clk/qcom/gcc-sm8150.c | 64 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) --- a/drivers/clk/qcom/gcc-sm8150.c +++ b/drivers/clk/qcom/gcc-sm8150.c @@ -1615,6 +1615,36 @@ static struct clk_branch gcc_gpu_cfg_ahb }, }; +static struct clk_branch gcc_gpu_gpll0_clk_src = { + .clkr = { + .enable_reg = 0x52004, + .enable_mask = BIT(15), + .hw.init = &(struct clk_init_data){ + .name = "gcc_gpu_gpll0_clk_src", + .parent_hws = (const struct clk_hw *[]){ + &gpll0.clkr.hw }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_gpu_gpll0_div_clk_src = { + .clkr = { + .enable_reg = 0x52004, + .enable_mask = BIT(16), + .hw.init = &(struct clk_init_data){ + .name = "gcc_gpu_gpll0_div_clk_src", + .parent_hws = (const struct clk_hw *[]){ + &gcc_gpu_gpll0_clk_src.clkr.hw }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_gpu_iref_clk = { .halt_reg = 0x8c010, .halt_check = BRANCH_HALT, @@ -1697,6 +1727,36 @@ static struct clk_branch gcc_npu_cfg_ahb }, }; +static struct clk_branch gcc_npu_gpll0_clk_src = { + .clkr = { + .enable_reg = 0x52004, + .enable_mask = BIT(18), + .hw.init = &(struct clk_init_data){ + .name = "gcc_npu_gpll0_clk_src", + .parent_hws = (const struct clk_hw *[]){ + &gpll0.clkr.hw }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + +static struct clk_branch gcc_npu_gpll0_div_clk_src = { + .clkr = { + .enable_reg = 0x52004, + .enable_mask = BIT(19), + .hw.init = &(struct clk_init_data){ + .name = "gcc_npu_gpll0_div_clk_src", + .parent_hws = (const struct clk_hw *[]){ + &gcc_npu_gpll0_clk_src.clkr.hw }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_npu_trig_clk = { .halt_reg = 0x4d00c, .halt_check = BRANCH_VOTED, @@ -3331,12 +3391,16 @@ static struct clk_regmap *gcc_sm8150_clo [GCC_GP3_CLK] = &gcc_gp3_clk.clkr, [GCC_GP3_CLK_SRC] = &gcc_gp3_clk_src.clkr, [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, + [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, + [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, [GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr, [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, [GCC_NPU_AT_CLK] = &gcc_npu_at_clk.clkr, [GCC_NPU_AXI_CLK] = &gcc_npu_axi_clk.clkr, [GCC_NPU_CFG_AHB_CLK] = &gcc_npu_cfg_ahb_clk.clkr, + [GCC_NPU_GPLL0_CLK_SRC] = &gcc_npu_gpll0_clk_src.clkr, + [GCC_NPU_GPLL0_DIV_CLK_SRC] = &gcc_npu_gpll0_div_clk_src.clkr, [GCC_NPU_TRIG_CLK] = &gcc_npu_trig_clk.clkr, [GCC_PCIE0_PHY_REFGEN_CLK] = &gcc_pcie0_phy_refgen_clk.clkr, [GCC_PCIE1_PHY_REFGEN_CLK] = &gcc_pcie1_phy_refgen_clk.clkr, From patchwork Mon Jul 20 15:37:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237544 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2127586ilg; Mon, 20 Jul 2020 09:25:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTkz+Ix992DYtLv26QllCAvCMM8Ff5hEOoGAqpIyUkPWF5qgT/W3WAA00AKOAaL9WNbBWc X-Received: by 2002:a17:906:17c1:: with SMTP id u1mr12483736eje.536.1595262313139; Mon, 20 Jul 2020 09:25:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262313; cv=none; d=google.com; s=arc-20160816; b=F2am6ucZus5yp6g2uM+QjmIUjKWEeOviEOB0x2mNLD8+MvwN8YHb5oBOAHgZXaV6G8 GNQ5O8Jzb3sN3QMG6hiC5uPjaI4kwJvo+p/9wBzg2Ukmgiui1XoZJBnjdsM9sky9TP7G GzeqGOG3aVy9/zy9AqSvBCPYJQElwZmWu76vEK0uWfiZWRBm7l0NlUGHbHDgUtnmFCYs yBfsD80hZo1PlGBICJGqu9wcoXOXwRULkPTBMaM9OFaZjoe2RcDZgheam/NZwV3AMVLa 9bRoXl2jwYXRnL0sW36zNTC5vTnJoDtV2rc0hmKoi/d5DS/pYVR5GRfiAXqtLfunyyb9 RMJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=m5tWV0qgfZ3inHq7FnNWrEdt4sc8oLXRrA91UMq5KSA=; b=wknVHoa7O2ersy6MLWpo8LEEziNaYZo/cmuJtAiSZkh94/nk/tv4LRtMMDn6vHxsq8 ze9u74eFf9DYZy4j143S0wQzfwsIe/fCrdbckPZszjtJFPiIe2WHxN11M86/pfs22+tu 7gN6bjwjl9FDxFeJe5W0lEwquM9MlUFk/wTtKbhqYD6Zfh+Is1UBVgdLl1Cx7wf+bzeD 0dcyRe5A2Mk10TCvdmqCQy8jQWCwWWOEcXCFSRt3OM61Whr1R3TO7nynoTIO74Jfhkj1 iMqVxScG3ZxOjh8aKZoqdv8ZAyOYdifd73MYmzd2ylsxT7/q8sqeZzUxMKwHfmdTPXki Um4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=eQTqtUsl; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 ox14si10153558ejb.688.2020.07.20.09.25.12; Mon, 20 Jul 2020 09:25:13 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=eQTqtUsl; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733222AbgGTQZL (ORCPT + 15 others); Mon, 20 Jul 2020 12:25:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:35456 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732572AbgGTQBv (ORCPT ); Mon, 20 Jul 2020 12:01:51 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4B9FE20684; Mon, 20 Jul 2020 16:01:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595260910; bh=EZp7EbVzjECGRGwjyKB11h7G0TtcxxGzzT7NSgdYeLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eQTqtUslUkGR/gJFqNfoE4ug2QeHFZZhQ6Lji8ps3CIABxMpbYVYk7mAmu0fk3zFH rADK9/rWSD9V/GCyv0DJK7nOMDxgfckQrtFaEzwLG3OxUKX8s7v7OYG5rbYXRD8UU/ JoCbJuR/CQCjhDXWeK82wYi/iiaQdZrP5LThaQ3w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vinod Koul , Stephen Boyd Subject: [PATCH 5.4 141/215] clk: qcom: gcc: Add missing UFS clocks for SM8150 Date: Mon, 20 Jul 2020 17:37:03 +0200 Message-Id: <20200720152826.900135438@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Vinod Koul commit 37c72e4cae37f0dace1abb3711ede7fbc6d0862a upstream. Add the missing ufs card and ufs phy clocks for SM8150. They were missed in earlier addition of clock driver. Fixes: 2a1d7eb854bb ("clk: qcom: gcc: Add global clock controller driver for SM8150") Signed-off-by: Vinod Koul Link: https://lkml.kernel.org/r/20200513065420.32735-2-vkoul@kernel.org Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman --- drivers/clk/qcom/gcc-sm8150.c | 84 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) --- a/drivers/clk/qcom/gcc-sm8150.c +++ b/drivers/clk/qcom/gcc-sm8150.c @@ -2871,6 +2871,45 @@ static struct clk_branch gcc_ufs_card_ph }, }; +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_card_rx_symbol_0_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x7501c, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_card_rx_symbol_0_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_card_rx_symbol_1_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x750ac, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_card_rx_symbol_1_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_card_tx_symbol_0_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x75018, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_card_tx_symbol_0_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_ufs_card_unipro_core_clk = { .halt_reg = 0x75058, .halt_check = BRANCH_HALT, @@ -3051,6 +3090,45 @@ static struct clk_branch gcc_ufs_phy_phy }, }; +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_phy_rx_symbol_0_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x7701c, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_phy_rx_symbol_0_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_phy_rx_symbol_1_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x770ac, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_phy_rx_symbol_1_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + +/* external clocks so add BRANCH_HALT_SKIP */ +static struct clk_branch gcc_ufs_phy_tx_symbol_0_clk = { + .halt_check = BRANCH_HALT_SKIP, + .clkr = { + .enable_reg = 0x77018, + .enable_mask = BIT(0), + .hw.init = &(struct clk_init_data){ + .name = "gcc_ufs_phy_tx_symbol_0_clk", + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch gcc_ufs_phy_unipro_core_clk = { .halt_reg = 0x77058, .halt_check = BRANCH_HALT, @@ -3505,6 +3583,9 @@ static struct clk_regmap *gcc_sm8150_clo [GCC_UFS_CARD_PHY_AUX_CLK_SRC] = &gcc_ufs_card_phy_aux_clk_src.clkr, [GCC_UFS_CARD_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_card_phy_aux_hw_ctl_clk.clkr, + [GCC_UFS_CARD_RX_SYMBOL_0_CLK] = &gcc_ufs_card_rx_symbol_0_clk.clkr, + [GCC_UFS_CARD_RX_SYMBOL_1_CLK] = &gcc_ufs_card_rx_symbol_1_clk.clkr, + [GCC_UFS_CARD_TX_SYMBOL_0_CLK] = &gcc_ufs_card_tx_symbol_0_clk.clkr, [GCC_UFS_CARD_UNIPRO_CORE_CLK] = &gcc_ufs_card_unipro_core_clk.clkr, [GCC_UFS_CARD_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_card_unipro_core_clk_src.clkr, @@ -3522,6 +3603,9 @@ static struct clk_regmap *gcc_sm8150_clo [GCC_UFS_PHY_PHY_AUX_CLK] = &gcc_ufs_phy_phy_aux_clk.clkr, [GCC_UFS_PHY_PHY_AUX_CLK_SRC] = &gcc_ufs_phy_phy_aux_clk_src.clkr, [GCC_UFS_PHY_PHY_AUX_HW_CTL_CLK] = &gcc_ufs_phy_phy_aux_hw_ctl_clk.clkr, + [GCC_UFS_PHY_RX_SYMBOL_0_CLK] = &gcc_ufs_phy_rx_symbol_0_clk.clkr, + [GCC_UFS_PHY_RX_SYMBOL_1_CLK] = &gcc_ufs_phy_rx_symbol_1_clk.clkr, + [GCC_UFS_PHY_TX_SYMBOL_0_CLK] = &gcc_ufs_phy_tx_symbol_0_clk.clkr, [GCC_UFS_PHY_UNIPRO_CORE_CLK] = &gcc_ufs_phy_unipro_core_clk.clkr, [GCC_UFS_PHY_UNIPRO_CORE_CLK_SRC] = &gcc_ufs_phy_unipro_core_clk_src.clkr, From patchwork Mon Jul 20 15:38:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 237543 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp2126473ilg; Mon, 20 Jul 2020 09:23:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDR4h4sIRWcW/hYWJMZUayg6QTDe2Q+Qgg+dSNNzBRv5yHEPDjnGovQ3jxpyaC/RuR/Nrh X-Received: by 2002:a05:6402:319b:: with SMTP id di27mr22604311edb.133.1595262229519; Mon, 20 Jul 2020 09:23:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595262229; cv=none; d=google.com; s=arc-20160816; b=AwfV4fQsAZOKAOkHZQQ52/j2YC9kALcf415wCPqN/M43SNJ86ovZ519zDo6WMSOv9v t+CgdJIHS0xoPsmJOhPUydElUBynxQyy1PuQlX80CfsooDv4o9wcIidez3liT/tRA5So tLbFHAAMKSFC6+y89eNiA8vE2SpsutOF0jjqlYXFNJBYW7S7Zaq1MZ1fwAVb/8KyogRv hUppoQ9De3u1zWOj/OGuLeb397CYH7nBR9bRskuqXs0Gg+l/BpJ68xPTV8N9q/Fa4z1a l/VaUYResH41reDo94nFBhbr29n1Cl1aB/SPuLSSCh9RN2WjStVtnE1LbCs7WceANFeq v6+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0i+xfNAoqj8wyLYquuVB7yNnXnGSumMG40RWtsOdSSs=; b=AVWKoSasjKnb7R1gL4CrWXuR03YdjVo970tRTpuUDZ2EjkEEKn5rzDqKOoUt455t+V M3pUtDQlqanqseEpfgEYAIlobhfvzsRuuGVf+95YXiVYZOI+VbciM8K44cJIZACOZ82K z7i6f0T4WQLLaApMUP4voO60Kefj82XPIlNIp2TGnCHaUQsnbP6Sh4yuyjKAEoc9F2SV ZoOa2c2zkCg29VznHpc6NOKboffcslMvNY/sCY8R5vjZCcWbOnSTELyFvvjWHCWeqbPE hyRHyy0jet+8wKAVUHYICHmYcan8PpO+BI9485exogDbS66geUhVoHkh7mrpBvbL7n3w Zaog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uao4MNRY; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 u6si11307929ejf.218.2020.07.20.09.23.49; Mon, 20 Jul 2020 09:23:49 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-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=@kernel.org header.s=default header.b=uao4MNRY; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731755AbgGTQX0 (ORCPT + 15 others); Mon, 20 Jul 2020 12:23:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:41196 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732644AbgGTQFf (ORCPT ); Mon, 20 Jul 2020 12:05:35 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 26B5A2064B; Mon, 20 Jul 2020 16:05:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1595261134; bh=9fcM8UNcJIVaRWwp8+SdABCME/wG7n29B/fICmrFgRw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uao4MNRY0FK3yurvQKkMp0eNXoRFUkIY0SOCu9aaS1EJ0QKBc+z2DZpkKm6glRxV4 TZ+htyWveymbDOjNwcmQwhPabI2chlXkis4s5aqfYaMcy2eOW6S6KrniBtA8e7u8oE Kx4U7Dy4Nc37JuJDC5gRqdI2Ye4/q1yUEkU7giWE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vincent Guittot , "Peter Zijlstra (Intel)" , Valentin Schneider , Dietmar Eggemann Subject: [PATCH 5.4 203/215] sched/fair: handle case of task_h_load() returning 0 Date: Mon, 20 Jul 2020 17:38:05 +0200 Message-Id: <20200720152829.823407143@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200720152820.122442056@linuxfoundation.org> References: <20200720152820.122442056@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Vincent Guittot commit 01cfcde9c26d8555f0e6e9aea9d6049f87683998 upstream. task_h_load() can return 0 in some situations like running stress-ng mmapfork, which forks thousands of threads, in a sched group on a 224 cores system. The load balance doesn't handle this correctly because env->imbalance never decreases and it will stop pulling tasks only after reaching loop_max, which can be equal to the number of running tasks of the cfs. Make sure that imbalance will be decreased by at least 1. misfit task is the other feature that doesn't handle correctly such situation although it's probably more difficult to face the problem because of the smaller number of CPUs and running tasks on heterogenous system. We can't simply ensure that task_h_load() returns at least one because it would imply to handle underflow in other places. Signed-off-by: Vincent Guittot Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Valentin Schneider Reviewed-by: Dietmar Eggemann Tested-by: Dietmar Eggemann Cc: # v4.4+ Link: https://lkml.kernel.org/r/20200710152426.16981-1-vincent.guittot@linaro.org Signed-off-by: Greg Kroah-Hartman --- kernel/sched/fair.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3824,7 +3824,11 @@ static inline void update_misfit_status( return; } - rq->misfit_task_load = task_h_load(p); + /* + * Make sure that misfit_task_load will not be null even if + * task_h_load() returns 0. + */ + rq->misfit_task_load = max_t(unsigned long, task_h_load(p), 1); } #else /* CONFIG_SMP */ @@ -7407,7 +7411,15 @@ static int detach_tasks(struct lb_env *e if (!can_migrate_task(p, env)) goto next; - load = task_h_load(p); + /* + * Depending of the number of CPUs and tasks and the + * cgroup hierarchy, task_h_load() can return a null + * value. Make sure that env->imbalance decreases + * otherwise detach_tasks() will stop only after + * detaching up to loop_max tasks. + */ + load = max_t(unsigned long, task_h_load(p), 1); + if (sched_feat(LB_MIN) && load < 16 && !env->sd->nr_balance_failed) goto next;