Received: by 2002:ab2:b82:0:b0:1f3:401:3cfb with SMTP id 2csp613302lqh; Thu, 28 Mar 2024 10:55:59 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUS9L98t8101tZmvLRSKXy+DWFBzsYexiko+TG9q9VKZfiENeltOcCzR5tdkpXuU9ggeioBbsTfnLfC4B3MW1rKuouiWeKBkeE+Ijvq9Q== X-Google-Smtp-Source: AGHT+IEVf7EChL4mSp7MncxuzTQdH/+1kmDAzh8cUOPflweWJ+KLnXFTnvLQ65gJs0MTmOBmUsEJ X-Received: by 2002:a50:8d14:0:b0:567:9fef:f7ee with SMTP id s20-20020a508d14000000b005679feff7eemr2826131eds.16.1711648559716; Thu, 28 Mar 2024 10:55:59 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711648559; cv=pass; d=google.com; s=arc-20160816; b=gKwtUHtiAvUfJGYuP0E7X/9x/grv3q6KrRRV7rWyI7Qldi6DRklVqQLkp2yoaT/DOm /UzQxEF786d351MKyg7Dj4W83T/3rkSlRNzk4aY4r6iT72OQ3MORn3a05orxQt1CV7Ml QUQMHZw6DTJNFZaCT5BAVOGYUaxFHuAEWWicMweud0IrE3qCFEkPswHCfB57ih8K1ifN VsNaT0CMNBGiKyhwtaDr4dr+XmiLGLzdL98Fv1ZPFPwkvgEKR4TdVJWKgc2QeknSZBUM EI2D+IyojXhSkDZkmL5zICgOkVKC6of25DHbf9b3zh7CJomgID04soqB5z7iqQ2Oc2KV 5INw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:subject:cc:to:from :date:dkim-signature; bh=a07IvG0uziKMYsJ0IwD78v/BDWQ+5uTmrm44M7ka0nc=; fh=6reRgtTn589bmXs+kIizWkFZ8HmpkCtQgO4JggJ2jOY=; b=xUBH1jwOCzdWoNqkK7s0eTtujdwaBAsZCxE3mCXVqkUbQHznBGhFDgJoctCCKPAgbA FpgS0/2TsgCQ56kVfSn2S+hvVtryVAbdwHylm8PfXSy9Yo3r2jxQqzmaClFAvlMY2wMO rTAl+IAg3dA2fYqjrA4kP1KS/tIrQ5kpuHsE38MxSfnuf7p4nwB2ysT3dkUJVDlrXhHt azdbGMTydJcSHGasBsH6i+V6oLz17HJyrFnjJhmSUjA04Y4FoUxhOOKGyVAgrMxiam2k vNJn+e595R9pVL7XNE/PyOtj73tXkGRu+x6PPv/HMt1h5ooAmmWvTpx6yFkq0vs4tM9A EENw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jx1+tUAT; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-123387-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-123387-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id 27-20020a508e1b000000b0056ba0064d13si976741edw.450.2024.03.28.10.55.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 10:55:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-123387-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jx1+tUAT; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-123387-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-123387-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 723661F28D43 for ; Thu, 28 Mar 2024 17:55:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 254C1130E5A; Thu, 28 Mar 2024 17:55:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jx1+tUAT" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A6582C6B1; Thu, 28 Mar 2024 17:55:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711648552; cv=none; b=axlqJb5KrgoeugbYE8mVCh2zFqijK3ZN8IToxQBIBcyFWvPOkDm65Vm+2u3eFBmPRvbDoEFaiH5FEjaFM3Z0YXHg/cjBjNhwPZN2+ZsMBRo2o+nz5m8CiXZBd0tqyyOpv9TH5yLdN9poqjD/ZiykqCubIr25F7htuxj8CsW7HpE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711648552; c=relaxed/simple; bh=uCi1IbyXG6tACQ/Me3G6pXFaxsFaEaBpZ5A7Q7HE4rE=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition:In-Reply-To; b=r+vFetbsxOlXzTxgHQeKhRSiTluoL+i6eqWpDjOuqDKbx9IhAMiptLorVd4XHCoZVdk7pjRuhXQhefKkcXNQYYFbouudtTe8qOSnAdeGBZpRWFbKrT+Pkf9udPX/2q9vYBnZHp2sIVbF/B1iAOIzj0jYEQj/122470gwhQa80Bc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jx1+tUAT; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A5EBC433C7; Thu, 28 Mar 2024 17:55:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711648551; bh=uCi1IbyXG6tACQ/Me3G6pXFaxsFaEaBpZ5A7Q7HE4rE=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=jx1+tUATA6l2LQsQNv77ConMqeewK72ISeFBP9ORiPKozLpHPgRH5bJ0A4F+0kr5F mL77SIpkMQMgW39Mxup0ojOopzOFNbl6lwL4P2pKVjYespF2iSP/2JI5TGGNdtDf6z UALpOZhg445yl/pd7U1scbe6CMotblxsap4Gj8c02UtDZJQJhuNFYDYHG5EDbFDCiF txtGwPkYZu+Zp2cEoWcYdLYJoRhuRHVybsdhfhFVo4wzLe1LM1seyBssNzz4a4hnwf YrDTNiuo7yVmb9kGgKkUvaz1q4wE9XdYkGSXB6b5vGkNelDn9+MFZU0bxb6m+0NIjg GzNiPRoeF66YA== Date: Thu, 28 Mar 2024 12:55:49 -0500 From: Bjorn Helgaas To: Philipp Stanner Cc: Hans de Goede , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Bjorn Helgaas , Sam Ravnborg , dakr@redhat.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, stable@kernel.vger.org Subject: Re: [PATCH v4 10/10] drm/vboxvideo: fix mapping leaks Message-ID: <20240328175549.GA1574238@bhelgaas> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240301112959.21947-11-pstanner@redhat.com> On Fri, Mar 01, 2024 at 12:29:58PM +0100, Philipp Stanner wrote: > When the PCI devres API was introduced to this driver, it was wrongly > assumed that initializing the device with pcim_enable_device() instead > of pci_enable_device() will make all PCI functions managed. > > This is wrong and was caused by the quite confusing PCI devres API in > which some, but not all, functions become managed that way. > > The function pci_iomap_range() is never managed. > > Replace pci_iomap_range() with the actually managed function > pcim_iomap_range(). > > CC: # v5.10+ This is marked for stable but depends on the preceding patches in this series, which are not marked for stable. The rest of this series might be picked up automatically for stable, but I personally wouldn't suggest backporting it because it's quite a lot of change and I don't think it fits per Documentation/process/stable-kernel-rules.rst. So I think the best way to fix the vboxvideo leaks would be to fix them independently of this series, then include as a separate patch a conversion to the new pcim_iomap_range() in this series (or possibly for the next merge window to avoid merge conflicts). > Fixes: 8558de401b5f ("drm/vboxvideo: use managed pci functions") > Signed-off-by: Philipp Stanner > --- > drivers/gpu/drm/vboxvideo/vbox_main.c | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/vboxvideo/vbox_main.c b/drivers/gpu/drm/vboxvideo/vbox_main.c > index 42c2d8a99509..d4ade9325401 100644 > --- a/drivers/gpu/drm/vboxvideo/vbox_main.c > +++ b/drivers/gpu/drm/vboxvideo/vbox_main.c > @@ -42,12 +42,11 @@ static int vbox_accel_init(struct vbox_private *vbox) > /* Take a command buffer for each screen from the end of usable VRAM. */ > vbox->available_vram_size -= vbox->num_crtcs * VBVA_MIN_BUFFER_SIZE; > > - vbox->vbva_buffers = pci_iomap_range(pdev, 0, > - vbox->available_vram_size, > - vbox->num_crtcs * > - VBVA_MIN_BUFFER_SIZE); > - if (!vbox->vbva_buffers) > - return -ENOMEM; > + vbox->vbva_buffers = pcim_iomap_range( > + pdev, 0, vbox->available_vram_size, > + vbox->num_crtcs * VBVA_MIN_BUFFER_SIZE); > + if (IS_ERR(vbox->vbva_buffers)) > + return PTR_ERR(vbox->vbva_buffers); > > for (i = 0; i < vbox->num_crtcs; ++i) { > vbva_setup_buffer_context(&vbox->vbva_info[i], > @@ -116,11 +115,10 @@ int vbox_hw_init(struct vbox_private *vbox) > DRM_INFO("VRAM %08x\n", vbox->full_vram_size); > > /* Map guest-heap at end of vram */ > - vbox->guest_heap = > - pci_iomap_range(pdev, 0, GUEST_HEAP_OFFSET(vbox), > - GUEST_HEAP_SIZE); > - if (!vbox->guest_heap) > - return -ENOMEM; > + vbox->guest_heap = pcim_iomap_range(pdev, 0, > + GUEST_HEAP_OFFSET(vbox), GUEST_HEAP_SIZE); > + if (IS_ERR(vbox->guest_heap)) > + return PTR_ERR(vbox->guest_heap); > > /* Create guest-heap mem-pool use 2^4 = 16 byte chunks */ > vbox->guest_pool = devm_gen_pool_create(vbox->ddev.dev, 4, -1, > -- > 2.43.0 >