From nobody Thu Mar 19 05:27:58 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 2DFF4348469 for ; Thu, 19 Feb 2026 16:27:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771518466; cv=none; b=pKW1Q1IYsDnlD7aDf47DFwwrItASk4paOhtBqh3UUEUYtPD6BQcOLmUZ60goKo+fAxUW9nrjtVRm5cpWtVtf3BUnp0764cIizoaNgrzSKHb79K18m2e9K7QGEyo1ORF/SgdeBlv7LYrqR+o2OMgEfydzhfcsdpKSMr3Vqm4NvC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771518466; c=relaxed/simple; bh=qGEgzEowAKOYqoLetjY4uyHAcod3FdEe26Azz1HZSBE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CZiZnTA1L45kUftRVLbaFS4rnVUIDV0HiAURqA/IxW+ncyWpi8w8ZElDi+lDW7oivlcLOeHqfXMceL/Rjrbh3z6sasZlQgzaRS899z287mpM1u8Ocr5JI/cms1/2FrL9jXPdrw0ZcG8NAb+k7gJYcKW0svHQ3qnvgCK0oubk7w8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=ZxQ2VCEz; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="ZxQ2VCEz" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4834826e5a0so12414765e9.2 for ; Thu, 19 Feb 2026 08:27:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1771518463; x=1772123263; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AFctbIz6tiPHsqiezPeCZfcnyQYkHL5Q+XsVl6eb4Bs=; b=ZxQ2VCEzPl+eIbryTLnHFQq6GocvmnTLQFcPF4jCHzW0T7USx6z7fVuPiftsUId1y7 sLf8KpVfJMUIFIY37TlJD+sfZ3mPfpBDRwAuBayc6JEEJ3Mz8hW1sLFXjfQRonLBUTwm /fOzf36UdUWBTrb9G7Cg4Y0q0qul5Rr8/ELjt800Rwz7EgPSVp/RV60MWqb7x08sr2Xo 0R87vWYTkBvi1hr/diWtgztpwKznMnRw5oP7bNQk9AoYQeWuNwFkgNGTaeJYGOhUNbiQ aq3aA0nfD2kWr9S6NBpbJyjzViSas7w5vb0JeNgHv3aLDNpbNPWxFUt+ZiFKeY7Xrluh R4nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771518463; x=1772123263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AFctbIz6tiPHsqiezPeCZfcnyQYkHL5Q+XsVl6eb4Bs=; b=AAKwjUnJ3LVleqi/vNrB8Pd62dZGOpU6kBnR3DdMemWgSHlLwKWdmoA0ZMW+Qrakow CFsmF8gn1UwJ9E8AhX6YfpKXYU7t3s/YVS2WjLm9bgz8cdTEsC4pJq061Y1NtRtwJItH huWN+lzZx5PKymzsRnpjnxyDgXOiSDNUGfsVx43iGR0aO0SVIT8tMIl78XKWcovUxZd8 Szw/CB1hrCYnQ66k7v7MUel2rFH3N6yjZA4nXFg8ouDOi7ektNT3oo0l1iNxQSlr0wzO Z55X+GYW1masu9m3odarCpRa/NeRUTy+NkQ7I8hYKr+ajC05DFnyuaeChHGrzDoyWPeW T9+A== X-Forwarded-Encrypted: i=1; AJvYcCWyXwwZlH4t3oxkaepT/xXzsMblXRksW6lpK/I0GnNbblg7adKgvfnSIP2g202YGy3KNNJrzE57JP6J5Ww=@vger.kernel.org X-Gm-Message-State: AOJu0YwcJN9E9+vuQ5zonDDPdMpbrZL9KFcCxn6D3r2io3IdVOywIO8k Tny1HxwJghH4Kf45lWpGym48Tek0rrjl/ZOw6wMelZYWDIR4qfjytrrd7VpmfoBrwoI= X-Gm-Gg: AZuq6aIBIOHsuJy/W5GGXJKyfZ/E8/3C0VQSRHElNEdy4tmhE5pwOOhRCASehv3bMqT oPBh71bzVykxgAg5YzP6gbRhrw5xQadUDWgKEWKLWNK/G5BYUTA2FW7j37S9a0CyKkbmXzmeamP TglWYKb3yx3z0iKLE8vEHZ7LnatnzIySmKlYoSK8t8ZeWFliQYj8+QI7vWw3FUnYGa55BSR9fqW nq6ptD+vVsFWlO9+YayOqd91XpIJbgNarQJapirQhrQB2qIUygOq3eaDYrs68/LAkznDyXehDov y16W78lMzNDUxGMmAjxNerSO+NgTIEVYp+W7CyaqCfQ3/yEKmqlO7vighxLhExFvbd9vtk/aENt cu1xn9NeJKLI0/lEjL8reTV65aHXnzysXcspH/y6/n94d1EmWmly53f4A4bqH8qBaAYEh2YHPkT cff/mmTI7+2gqN+aKaofBtE6uXUo9+35AVv7cbNWwQ X-Received: by 2002:a05:600c:4f92:b0:482:eec4:76d with SMTP id 5b1f17b1804b1-48398b5e0d0mr103863385e9.17.1771518463404; Thu, 19 Feb 2026 08:27:43 -0800 (PST) Received: from zovi.suse.cz (nat2.prg.suse.com. [195.250.132.146]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8075sm47324631f8f.29.2026.02.19.08.27.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 08:27:43 -0800 (PST) From: Petr Pavlu To: Steven Rostedt , Masami Hiramatsu Cc: Mathieu Desnoyers , Tom Zanussi , linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Petr Pavlu Subject: [PATCH v3 1/5] tracing: Fix checking of freed trace_event_file for hist files Date: Thu, 19 Feb 2026 17:27:01 +0100 Message-ID: <20260219162737.314231-2-petr.pavlu@suse.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260219162737.314231-1-petr.pavlu@suse.com> References: <20260219162737.314231-1-petr.pavlu@suse.com> 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" The event_hist_open() and event_hist_poll() functions currently retrieve a trace_event_file pointer from a file struct by invoking event_file_data(), which simply returns file->f_inode->i_private. The functions then check if the pointer is NULL to determine whether the event is still valid. This approach is flawed because i_private is assigned when an eventfs inode is allocated and remains set throughout its lifetime. Instead, the code should call event_file_file(), which checks for EVENT_FILE_FL_FREED. Using the incorrect access function may result in the code potentially opening a hist file for an event that is being removed or becoming stuck while polling on this file. Correct the access method to event_file_file() in both functions. Fixes: 1bd13edbbed6 ("tracing/hist: Add poll(POLLIN) support on hist file") Signed-off-by: Petr Pavlu Acked-by: Masami Hiramatsu (Google) --- kernel/trace/trace_events_hist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_h= ist.c index e6f449f53afc..768df987419e 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -5784,7 +5784,7 @@ static __poll_t event_hist_poll(struct file *file, st= ruct poll_table_struct *wai =20 guard(mutex)(&event_mutex); =20 - event_file =3D event_file_data(file); + event_file =3D event_file_file(file); if (!event_file) return EPOLLERR; =20 @@ -5822,7 +5822,7 @@ static int event_hist_open(struct inode *inode, struc= t file *file) =20 guard(mutex)(&event_mutex); =20 - event_file =3D event_file_data(file); + event_file =3D event_file_file(file); if (!event_file) { ret =3D -ENODEV; goto err; --=20 2.53.0