From nobody Tue Apr 7 12:20:08 2026 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DBC833D333D for ; Wed, 25 Feb 2026 14:52:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772031136; cv=none; b=U95wATeFOLBhZ/e0hyOECtONbZAt4mahUrL45mr5O0kBgnyBxVOowNTFfCjjNMvXfOGIpgn0R8lnClxJlIQ2XxBvt3PpOHdxnVuJHgYXsdVEeuOrunwg3VbpMXE0Ksk2pLewfPM5JHjB4fuKUtJj0WbFwJDZSCSnjChzRZJtUGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772031136; c=relaxed/simple; bh=OxkQylN1Q4+4YfmLlrovuAbVnDyrJsNv+9cNqTlK4qI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=uWAiPDk1AZL4nVALQhPQ1G1PoN8fJThY6gyLNYKBl6GdhoctzUyPJxCzczYYN8ba0dGmx8eQvI6xkO5dfCRgaFMOYnoFNWe1gTH7w2kSCkIESbMz6z7DYI0T4Q+hyaSGTbr34diQ74wf8aFzx6zAr5RihIqQ67qYt2zKIlehgYM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nLrdM/By; arc=none smtp.client-ip=209.85.128.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nLrdM/By" Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-7986c7b8076so5821327b3.2 for ; Wed, 25 Feb 2026 06:52:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772031134; x=1772635934; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=x2TBYz73kHEnIkCuW8JdOuhSWd80jhSztg/rGzlnY3s=; b=nLrdM/ByUkHYuzDWKHEbLLfGPbvG/B9prrufqm26/X1wtLL0S3eqr+VBFmr6QKj+hP 8TBbg06DYBDBSbA/GPDqLttW/P+vFQoCXBAXNyRWVL8zxHQtXAd3U+Ed9FnWksBRlKME O8NkeUO3mBPeyQvNaaou8aTyXh1iQ4tBV2azTR/m2BMoIZyHg8t13flJMZ3RKX8E6kY5 SITxbNlry3HMHLbmrWo9WCFKxmQEv3dqq77+spn/QiJGeLp315v+0+uujsXzK3NXfH2q 0iSdaVTPSmQF+v4/3d9+J806QCpY/a4T55ocKP9K7ymRhrGPh7FJ5omSCF0pc7q1un1a sGeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772031134; x=1772635934; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=x2TBYz73kHEnIkCuW8JdOuhSWd80jhSztg/rGzlnY3s=; b=hTisQIbbc9IyjG6PhoKPCtanE1/1yKZuiSjsBpROE3XvyyAv1ID6KC1imu5d+LIapw qvZzLpBkodE4ph22LpzHNuYboacNFZ0tFbzVb0tNDDfm1qfDX8dhs+lQW6bh0/Rr66Wz BKKzmlgEkdji8rwpogxyZEShoTzHf3DObuLkF03mGY76FueNd1ggiy3P3vC6TDFGvrf+ onNnvnqlTLRuKJDJekGFvu6V7+X66MV2LJ6jhNhHyJGQvztAl04WUY956OZhUoSwKqaf nLduSS189zoB+d+tyebJYQWBU31Emei6KmMd/O7gguqo/oz0mtFPBRVUzLn9/eG0U//n is5Q== X-Forwarded-Encrypted: i=1; AJvYcCUi7VhtD/XVUwXTeELE59ZSOTGyyyAB4i1cT8r3D6Zw+XTxVgwQY0QusPNUDJnj2u335zH5hSXyqHhyOYI=@vger.kernel.org X-Gm-Message-State: AOJu0YxYMjPefrS7KxvOc/mTwRVJh5Uemlt5RmetcC32u8/3YXS7f/tQ 1cNN5luti4lYmgB0UJohonsSQOk6heWYt0dcqk6jykPQQ8cJ1vN4ah4zjuKDilen9vw= X-Gm-Gg: ATEYQzyMQAKtxiL+grD6yoUNPLpDYpqw3gL/Kug2tgBnqocPkXRqnNKKzx0dFvv4eYc MYtIKlkB6SfvVjfMV56Uih5pfC8vIf7j4pR9KLPqDWLksyq54lAd1LowVKBr6kcEfeHFSIJ9DOf PjuSjk2JlY0vwshkTZMHHbIWO0xSqeEds+ouWVhkiDG3d8wHfHuOPHqGuIdS4eaL1DLp8VC6DWe IJM9mU/zQnQyC8Ovsqi5tq4B9msQ6yMvRYmqqm06wLrsAMQLXlSgfQmqPkPB+yWMf3H0SsNcf0J tCBtgSIM3re0iO4ZUzENnT8kj5j7Lfpptf6u9x2JpCH9CjyPDsKjPbOxpjZiJ8dI6ST8zkh+PpK FkOZEzuU/Mp219ohR1pVAg5DGGzoQEM112FPEmoxCy2fjI5i1gIYv8p2c3oNDYlv14Ul3e0oU94 5eK0JyOwG4AFsrCjDq83TkovvA/1p8yOLBqWQ8wgo29bh0m8o0yHug/B0FMe6RY5Ia8Z4trTWVE GfXW4GJYOnxbT6CcEm4jUky X-Received: by 2002:a05:690c:101:b0:797:db54:b876 with SMTP id 00721157ae682-7982902d571mr150381117b3.43.1772031133627; Wed, 25 Feb 2026 06:52:13 -0800 (PST) Received: from tux ([2601:7c0:c37c:4c00::5c0b]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7982dd81e22sm57803827b3.33.2026.02.25.06.52.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Feb 2026 06:52:13 -0800 (PST) From: Ethan Tidmore To: alexander.deucher@amd.com, christian.koenig@amd.com Cc: airlied@gmail.com, simona@ffwll.ch, lijo.lazar@amd.com, superm1@kernel.org, mario.limonciello@amd.com, cesun102@amd.com, Leo.Lin@amd.com, Jammy.Zhou@amd.com, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ethan Tidmore Subject: [PATCH v2] drm/amdgpu: Fix resource leaks Date: Wed, 25 Feb 2026 08:51:54 -0600 Message-ID: <20260225145154.14168-1-ethantidmore06@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There are multiple resource leaks due to ioremap() being used and iounmap never being called in multiple possible error paths. Change ioremap() to devm_ioremap() to fix all resource leaks at once. Detected by Smatch: drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4834 amdgpu_device_init() warn: 'adev->rmmio' from ioremap() not released on lines: 4539,4549,4563,4574,4592,4834. Fixes: d38ceaf99ed01 ("drm/amdgpu: add core driver (v4)") Signed-off-by: Ethan Tidmore --- v2: - Removed unused variable idx. drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index 0acddcb04730..3bc685162974 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -4520,7 +4520,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, for (i =3D 0; i < AMD_IP_BLOCK_TYPE_NUM; i++) atomic_set(&adev->pm.pwr_state[i], POWER_STATE_UNKNOWN); =20 - adev->rmmio =3D ioremap(adev->rmmio_base, adev->rmmio_size); + adev->rmmio =3D devm_ioremap(adev->dev, adev->rmmio_base, adev->rmmio_siz= e); if (!adev->rmmio) return -ENOMEM; =20 @@ -4843,8 +4843,6 @@ static void amdgpu_device_unmap_mmio(struct amdgpu_de= vice *adev) /* Unmap all mapped bars - Doorbell, registers and VRAM */ amdgpu_doorbell_fini(adev); =20 - iounmap(adev->rmmio); - adev->rmmio =3D NULL; if (adev->mman.aper_base_kaddr) iounmap(adev->mman.aper_base_kaddr); adev->mman.aper_base_kaddr =3D NULL; @@ -4927,7 +4925,7 @@ void amdgpu_device_fini_hw(struct amdgpu_device *adev) =20 void amdgpu_device_fini_sw(struct amdgpu_device *adev) { - int i, idx; + int i; bool px; =20 amdgpu_device_ip_fini(adev); @@ -4970,13 +4968,6 @@ void amdgpu_device_fini_sw(struct amdgpu_device *ade= v) if ((adev->pdev->class >> 8) =3D=3D PCI_CLASS_DISPLAY_VGA) vga_client_unregister(adev->pdev); =20 - if (drm_dev_enter(adev_to_drm(adev), &idx)) { - - iounmap(adev->rmmio); - adev->rmmio =3D NULL; - drm_dev_exit(idx); - } - if (IS_ENABLED(CONFIG_PERF_EVENTS)) amdgpu_pmu_fini(adev); if (adev->discovery.bin) --=20 2.53.0