From patchwork Wed Sep 4 17:54:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 172950 Delivered-To: patch@linaro.org Received: by 2002:ac9:5c4b:0:0:0:0:0 with SMTP id r11csp1046848ocp; Wed, 4 Sep 2019 11:09:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqwem2Fc21x9knrbtuIYUUz0kGA4m4wddDj91A+cF2ds6lm0dF0X1nHYwffi4Y6FAW4p6xvb X-Received: by 2002:a62:37c5:: with SMTP id e188mr48891222pfa.207.1567620478213; Wed, 04 Sep 2019 11:07:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567620478; cv=none; d=google.com; s=arc-20160816; b=Mg1Tha8bNrdEv2gxQaOAYvD36MrCU4K6kGTkZ9LaPywGqJKbS8cI4AnrUAF1wAAaSk mwlcmna5nnXbi5j5hxMAAy1XIFQHaJSpk3SWRE2bmLuJajeNa9fQzT6rqGUxFD+aSEmW VLb1h9nJ5caB2HgX61j5rHNPDeiHFrZPnSwbrxkLsB2qsZCew1BS4aj0PUnnaiH2WeYh hBdojzHKNfqCiiTaU1dVQoiEuHgWbJUvFjUKY3DY2Lsygpo+7A1shZtwklM3D9mHgtND ziEDGlAWRKA7/+lvUP/3OiHDTWkFlqinFBxcwcveM94aEM8PUVge3ctsBrDHB1Cc643e 35aw== 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=s5hrPziqRfZjLWZJOvxvO5X66NcgwH29zvM09VrJcTs=; b=Mrl9Z3YWGN9E6BMSYvPwbcaVkjeTTTJkFF3dmGZH3H2esNRUbBcszNjLvTMlrfWrQe TZMAeXwxel4WAGzAq4n+vzY9rpQyWeYIsDSu93/pZCdAm1LA2xf0K7jTgHFtHf58KuXI VuzPBSm9CAoFu3mdXbSAfckWerwnu3r6xEAU1atqPM1SfiAuCluTHzYPUoD7vfTD/EyN ASfOAKEDMH0eOA4RWG3vzFyenN/w0CcL7WKlw9H1GvLoecJEaMKBiwgVsr8A/Odp5Da8 joaapRhp12J+Exuc3B2n5ckMMqmsGDKweHs8Af876CKHdpYWQLPL9FY//hTCEbLjDdzw VOvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=stARnLWN; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v186si16946265pgd.358.2019.09.04.11.07.57; Wed, 04 Sep 2019 11:07:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=stARnLWN; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389119AbfIDSH5 (ORCPT + 14 others); Wed, 4 Sep 2019 14:07:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:50554 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389302AbfIDSH4 (ORCPT ); Wed, 4 Sep 2019 14:07:56 -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 D8BA520870; Wed, 4 Sep 2019 18:07:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567620475; bh=UbwxphCkJgqkkmqkEGI327ZtsTfNouQD7+qWRvtcpI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=stARnLWN+RtRq81hHYa2OulY7q8ZKiMxoo3ABQxJRfDDRAdTgFduGi5WKCs4D0yY0 wBdiW/2W7hTfpofjgBFhmZbensHnq+aGr7q+iws+c5ByfNiaK5WeIf4ebfTlMLHbi+ ftnEcKLDIAZ9vw+LpycL16+7cciiPGrzalWOtC0o= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, John Garry , Wei Xu Subject: [PATCH 4.19 71/93] lib: logic_pio: Avoid possible overlap for unregistering regions Date: Wed, 4 Sep 2019 19:54:13 +0200 Message-Id: <20190904175309.207549490@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190904175302.845828956@linuxfoundation.org> References: <20190904175302.845828956@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: John Garry commit 0a27142bd1ee259e24a0be2b0133e5ca5df8da91 upstream. The code was originally written to not support unregistering logical PIO regions. To accommodate supporting unregistering logical PIO regions, subtly modify LOGIC_PIO_CPU_MMIO region registration code, such that the "end" of the registered regions is the "end" of the last region, and not the sum of the sizes of all the registered regions. Cc: stable@vger.kernel.org Signed-off-by: John Garry Signed-off-by: Wei Xu Signed-off-by: Greg Kroah-Hartman --- lib/logic_pio.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) --- a/lib/logic_pio.c +++ b/lib/logic_pio.c @@ -35,7 +35,7 @@ int logic_pio_register_range(struct logi struct logic_pio_hwaddr *range; resource_size_t start; resource_size_t end; - resource_size_t mmio_sz = 0; + resource_size_t mmio_end = 0; resource_size_t iio_sz = MMIO_UPPER_LIMIT; int ret = 0; @@ -56,7 +56,7 @@ int logic_pio_register_range(struct logi /* for MMIO ranges we need to check for overlap */ if (start >= range->hw_start + range->size || end < range->hw_start) { - mmio_sz += range->size; + mmio_end = range->io_start + range->size; } else { ret = -EFAULT; goto end_register; @@ -69,16 +69,16 @@ int logic_pio_register_range(struct logi /* range not registered yet, check for available space */ if (new_range->flags == LOGIC_PIO_CPU_MMIO) { - if (mmio_sz + new_range->size - 1 > MMIO_UPPER_LIMIT) { + if (mmio_end + new_range->size - 1 > MMIO_UPPER_LIMIT) { /* if it's too big check if 64K space can be reserved */ - if (mmio_sz + SZ_64K - 1 > MMIO_UPPER_LIMIT) { + if (mmio_end + SZ_64K - 1 > MMIO_UPPER_LIMIT) { ret = -E2BIG; goto end_register; } new_range->size = SZ_64K; pr_warn("Requested IO range too big, new size set to 64K\n"); } - new_range->io_start = mmio_sz; + new_range->io_start = mmio_end; } else if (new_range->flags == LOGIC_PIO_INDIRECT) { if (iio_sz + new_range->size - 1 > IO_SPACE_LIMIT) { ret = -E2BIG;