From nobody Fri Apr 17 00:23:19 2026 Received: from mail-yw1-f181.google.com (mail-yw1-f181.google.com [209.85.128.181]) (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 6CE04299950 for ; Wed, 25 Feb 2026 01:44:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771983889; cv=none; b=E6Iy2z0vrKEybg4iZrNDChoXxlDZur4npz9MKFT4ZyRquEWEyBlkkql8gHlTPlwboqPsTBL0PGrT75UXgNKI8I9+CASPPgg3A0vqrkkZZPirqTthh7FfvyJEb6iGSM+bBnjI8wPOe2HttfYzhZm0B5cXA+Fys71gsR8WwtkMImY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771983889; c=relaxed/simple; bh=tbonsVRIg0aQd/DxYUELOox1sPGZYjW16vqQEY6YaL4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=EHeTDj2lRam3F1v9S6bve311dPDu4iz6z5L0y27mLzM2+FDn047mBCXNwaKA4GlGV79ptwSkAzhFAx8BUChjxmkduisjoCp1SGodCHG9LQY519UJ7UWsjHjVN8GtKwjakG1xaGGP3V+KCTZ4R/2zADfuGQGOQFSjF28Ta6cEbfE= 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=S4qCM6Hi; arc=none smtp.client-ip=209.85.128.181 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="S4qCM6Hi" Received: by mail-yw1-f181.google.com with SMTP id 00721157ae682-7984d31b895so25184357b3.1 for ; Tue, 24 Feb 2026 17:44:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771983887; x=1772588687; 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=6Zk4C6UtJMJyPH9EQHsgjkzqaQp6RJoNMe6g8WK2O3A=; b=S4qCM6HiFFNVmehyWGpegpubP9IWHY6pdA5hS3NgEmkoW3yqiz+elLAkyhAaF4/7Wj 2NS7WK4AdO6RxdK2YW6F8hmuzuC0x2NdyhcivDqE+5HwmdrIL9pmpSH98DZfuCzKQym9 yDm/D5LqdB8LgSD7AwANULQheZAA2eWamcXnOeaStNG/dkYv5+3XcZJUvZAyJwTp3P2r zSjN7LpYQ7R0nur/0yJ/JnCvfliUDz5EkX3c5jwe24cfpl3NnfslGNTN6oaO80JynE5L MwFXFBpodi3otCIz6WB5ypq+/BIVlhAek6CyPLstI39ltNCCIJ50cD8sBCKkRH74twDJ f2Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771983887; x=1772588687; 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=6Zk4C6UtJMJyPH9EQHsgjkzqaQp6RJoNMe6g8WK2O3A=; b=qPksDL9SKkfnueoxppaJXbXtIZuipCSu61CB/3oXBRfKdladOxQA5i7jCP9XZkRGTL Sj0rXRdhkuF69amyXvqhSMxVv1nmyeOKSa0FPntLdSwB9EuiO3j3ApqH0Wwj0m/diwaG 7xm3BjT7UJQa79318AXy4f/YHqJBuPLgESyslAtmnQs43uRt1UCWNlJqj0eO8avVF8SF C5u4nDN1rZ9WHybuuQmH7IbIbN2sCWdjySvmBNE8eWculyxR64JlkvCJTxJasrLVrzYU jS2ei25yg/lbtSr0GWTZ7MvJqVB8a/1r6Le8Y6i59MWVorRSgYNeiEis5xTBnOeyZJPC Iyhw== X-Forwarded-Encrypted: i=1; AJvYcCWa2GGvJK/tmxlc+4/YRiiHIZXmi8eABOrtGQYWUpYcYP8bDFYF4znACoEzQ/5zNoIzOHn1PuH4A26dzOI=@vger.kernel.org X-Gm-Message-State: AOJu0YyQoSIe4sinr7k5faPn6v+ixeNx8+s5wDpuQtnoaermZUJQDNIP IbcKHvsfhAdtVzfZyitqHCeSLQffUIwaW7tD5NGNJDaBLl067tkp95Z/ X-Gm-Gg: ATEYQzyRfMh7VHbMzN5sMgFg+VMXrQU20Kn6pG5EReKd+vxI3k4+YI2o4xY/CqK2a/M YCuDOhjqWrXMDTlP/o5xiAJvxvbLjUR9vUesw94AFNkd8TfLWiqFKal037cQ3JeYp+SAKPYejIf ZkXifR8oCzBTgBicSxqTEJQ9Keje0ryrlxiMdq3JY90NCdBT7fzJEE6xK5Dfy9OULYVoBvAJ+q4 bmMJiYEM9dqQYHKQkkFMYHoGh+i0GDdp4O8l+iCW3W6mSIyty9fuiJxE5jBgRsaIgL3k1E/jgwy 5brTm0Rs2SMCtV4oVpyPiWDron7RLZYBrRAE3uSNT/nVXXiPFWEVNs/73qxDz2h/jUn/dfl6HN4 Pit1WfAtquA6ulB1MSe3+LKeJp6Av+Wee/2DxOK07DViR7Z7AO5enAxlChFwOAvsGtWx0VTPiki BuaVUpHKgU10F9CbDUz/VS6cPHXsMdZDgqVQxKRYCdnknLOJnSbQ2wSufEOAgkzVrvAyXSe7/H1 EhRBwQQ2hqhxC24IdvrinilV88WYe3QoWE= X-Received: by 2002:a81:b80c:0:b0:795:294c:fd31 with SMTP id 00721157ae682-798681c628emr4982557b3.38.1771983887323; Tue, 24 Feb 2026 17:44:47 -0800 (PST) Received: from tux ([2601:7c0:c37c:4c00::5c0b]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7985937e56dsm16231057b3.38.2026.02.24.17.44.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Feb 2026 17:44:47 -0800 (PST) From: Ethan Tidmore To: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , amd-gfx@lists.freedesktop.org Cc: David Airlie , Simona Vetter , Lijo Lazar , Mario Limonciello , Mario Limonciello , Ce Sun , Yo-Jung Leo Lin , Jammy Zhou , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ethan Tidmore Subject: [PATCH] drm/amdgpu: Fix resource leaks Date: Tue, 24 Feb 2026 19:44:25 -0600 Message-ID: <20260225014425.2474802-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 --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/a= md/amdgpu/amdgpu_device.c index 0acddcb04730..5cb58bed64ec 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; @@ -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