From nobody Mon Jun 8 07:22:55 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 0DF6453E0B for ; Sat, 6 Jun 2026 04:06:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780718788; cv=none; b=AijgpuhVK/tk6y6LwmBHmVL02IcqqnTtlFApkqIoRYg37afZYEqfbU6yrMeFlGAHzk3ZOQRC5vDXa+MoJdDWRjVZ53UtpH2hvc2lm7f/ppyGrDdJEu6xv7PlwfMcIVRy91i1xHmDTorMggkUPWTWZVJ6/DUTYgpouzWc7H5K2CE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780718788; c=relaxed/simple; bh=t9yZ5862XOAtZsrKac2pMV3otYNElL9n44tTlvcSjBk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=CKQU+X8owW/XiLWmEnzPN92ZV3wESiFGY8WeUMSAU++zacYlboCF/q7Sk5eVxufucMeMpNK9jq5qp9hvLDkHlXzdaSJU9AKwT9OqPHg/vP59EvKkGSmxrsGKw6LSoltkq/SVHQXs1ZeM1WcmPZ4k1njToTgUxQuglTk5RX4alOU= 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=hUEcifF6; arc=none smtp.client-ip=209.85.210.171 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="hUEcifF6" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-8423efad617so1430145b3a.0 for ; Fri, 05 Jun 2026 21:06:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780718786; x=1781323586; 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=MCpOoA7ZBka25eBQE3xrOCOU1NvVrWBs06gXA1dKzzE=; b=hUEcifF6uZMR5nxCvu5TLuNHzVZQ/Zvkdy/0Xq7z4mid11yaOpwH9o+/7+gXoUUiGv mXDxLECDbLEFuwPUKc+xSB4tIys3QPdTip2TPG+5M5koah048SVfZxkOwpRuNxXs3Eub KMzDd9E+44ZgTvtEjmPrwWTiw91+lqENK1pGOkR1HmBktp8Ho4t2V0H+i/wRUkm47enV +YmLnVIFcWDbs0+82uPvObe8aKKOZjO2LTbRIAerdqcAlGivuUvtBpBvqUTJo8hdb2Sj FgH7vnzkIJ7dS4OUDzXthDPaFCFLC1OvaxB/arX0amhlHJ61nqP7EEfcgRM4gRTIltzj vo3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780718786; x=1781323586; 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=MCpOoA7ZBka25eBQE3xrOCOU1NvVrWBs06gXA1dKzzE=; b=U3h/2ej8S4hsGDuX5m1yzHJxYyx7cENDD8fvRsgUdwDeSldp5v3+iky09BwAPoTpWg Yu094CGlzeEGqtJVd/8hThnD4sj+2HKS/MoFpaF60Dnp6+YPuQtbbinaVt9+qXRh5mvu 9BB5aPFqrbQTimzKBdlzwtWtKuyprGcsaa8qXjaPneq/DKNFO6dBs+YMFUAziaBbTOzX pxKVAsmzBe5uIPCJQISyjMOb31VgvdZM25NGuvGBWs8HkHoYSH2Rw/Sg23WD/8jP0VAv sHXvBwaxycFE4hf5HX7/7PkxODwBIsiW1L9Y7bnkvElPF6kpF1CiMiPsbFl38F75SGiI sSJA== X-Forwarded-Encrypted: i=1; AFNElJ93zHGj2z2JQIXMX/9P612a9+QdDVXUWu6oK5WOGmYDGESdELs6V0umA1A/1DrncqGTHZILAtLN0Hg/Xrg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6H67RDx5gDmFKHQJj9PSvh0YXdbVmkktMzJ3b3DChcRCFb2I2 C7ySsP1P5EfVLTAZEWYoNThiy3i6uou1xBDWKFGLQJ8oQENj/IfS9eXN X-Gm-Gg: Acq92OHC7gCmTzFFuiyfSeEKn3xkvbx+3Djp19ShODxCiYd2mURns5IP3JAs7KOM2LN omJ+8ePL+I4Qq57Re7ocAYupnkuIXALV/+zRUiWI4WXCkWESeeTMcHWle9S6XZDoSJXlnm+zGhD xjTTrkuRwLGRn72Mwm3hYt8anJFML7G5udRkBylyxhhoFaICjSE7tH6W4xGitV7CDuKiqvE7v13 QZ6KwXGGkA66S2qL2hJg3qESDnaliM0tBk3ecyWEv5ft8ietGprDLfY5gC3aJU2TuVI62MRUpkF 3JZ0IlWHSpBRfQq+OdVMEZUuEX1/mCs42Aydrc06lZa/6RHrIghkEyc8cyQ2bKVR1u1AOnYd3Eo 9Tdbvwtm4DfOh8liuMSMnsu0BeedeBQ4KDXVVB4ePATI35TOgUG4r1vxkboh2tURBRF79AgSKYX mQ9GxADjMeu2NurG9syNLrSCSNDqCscD/DOuFKDcOeC8ksiK+K4FfzHQ== X-Received: by 2002:a05:6a20:12d5:b0:3a3:171f:6aff with SMTP id adf61e73a8af0-3b4cccfdeacmr8589460637.2.1780718786106; Fri, 05 Jun 2026 21:06:26 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:967f:7ce4:ec98:f08b]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df0bd337sm9412553a12.29.2026.06.05.21.06.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 21:06:25 -0700 (PDT) From: Ruoyu Wang To: Tomi Valkeinen Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH] drm/omap: check IRQ wait allocation Date: Sat, 6 Jun 2026 12:06:20 +0800 Message-ID: <20260606040620.13-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.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" omap_irq_wait_init() allocates an omap_irq_wait object and initializes its waitqueue and list node immediately. If the allocation fails, the waitqueue initialization dereferences NULL. Return NULL when the wait object cannot be allocated and make omap_irq_wait() report -ENOMEM if it is asked to wait on a missing object. No wait entry has been installed in that case, so there is nothing to remove from the wait list. Signed-off-by: Ruoyu Wang --- drivers/gpu/drm/omapdrm/omap_irq.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/o= map_irq.c index d0f895c43ee41..e0fa9617a3d30 100644 --- a/drivers/gpu/drm/omapdrm/omap_irq.c +++ b/drivers/gpu/drm/omapdrm/omap_irq.c @@ -46,6 +46,9 @@ struct omap_irq_wait * omap_irq_wait_init(struct drm_devi= ce *dev, struct omap_irq_wait *wait =3D kzalloc_obj(*wait); unsigned long flags; =20 + if (!wait) + return NULL; + init_waitqueue_head(&wait->wq); wait->irqmask =3D irqmask; wait->count =3D count; @@ -65,6 +68,9 @@ int omap_irq_wait(struct drm_device *dev, struct omap_irq= _wait *wait, unsigned long flags; int ret; =20 + if (!wait) + return -ENOMEM; + ret =3D wait_event_timeout(wait->wq, (wait->count <=3D 0), timeout); =20 spin_lock_irqsave(&priv->wait_lock, flags); --=20 2.34.1