From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) (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 3CEAA36E560 for ; Wed, 19 Nov 2025 17:32:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763573573; cv=none; b=qCL2Ye5PUD8HR271LRjrc+/AcdXSrOudXBLao6pfj90CPn1WlfZ0OmPXpE8SgPXnp8sfJqAWQ680fZ3HdPWoeRtpHf0PfRJ6Vw+hCJnwbgXSotXqRcVTpwJmsuOF6HjAbxKMhyEaA/MzdjXQdmu1PTaV70dVhNT8spcsVS0N32M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763573573; c=relaxed/simple; bh=gHO9qawtMQaKpRmpwTJ9G5lYHPxBImZJSanDb0ezA7A=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=dWf+T41ljIy8cVIQwvdIliWl/btJfndfRffh7pikhpI5nOZ/Nka+zd5KmvvG8R+/6FOdHSi87lYfOfo7hYJqQGnAZFzbYJ+zkFqeaVvoN9tHfNsBH2+/V5TMxNfbzbLvu/IGeo+SOC/u7TO00if6b/Zewa2PpiMZia/gmob/rh8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--xur.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jepAU/+2; arc=none smtp.client-ip=209.85.215.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--xur.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jepAU/+2" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-b99dc8f439bso16426136a12.2 for ; Wed, 19 Nov 2025 09:32:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763573567; x=1764178367; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=6vVdvWms0hI8nqk2oQbDARPhxDaef1TXQVFiDaqimr0=; b=jepAU/+2enDk+Bx5Yo+JwTJuPYxBZYKS9KTEiqKvECc+0AAAQr1Gb6ByJ0UH3gesSN 6Ch0lM8KpQFMOukVAzwTSophv929gG5KDwPWr3wQ1cFfPLx0O5HSfFW5drvyFCWdp86X 99Okc4kZc3JFdM5TTmgSSgC8qnD6QIVUo4kk4CR2w+Q9RqWYc2RV7FLTT3MiOnEu5MmQ u0b6iBUTtdH0isTVbpJTS4SC07gYAIQDHQN8iKdxqJN+R6shxu0EarKQu076+rd7J8aI sCeLEqJQZCVQLsLGLhKBkQxwWlbQFyLKmMpjEQWg41y7oSdMjy/e0GV8Z2/Sohrob9vR Xxxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763573567; x=1764178367; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=6vVdvWms0hI8nqk2oQbDARPhxDaef1TXQVFiDaqimr0=; b=PJ47qMtJE/lxzQw+iqzKNicdXyLiXO61S97gYRruUAfwDIrY4PGjhHLyQ+NOLzIBNK dehK6NZPG8ULJIw7TuX4X8skcoyjrFHcgAeh82IYx1r+LPBua7bwyRnUyQ5Saby5sQAE 7Cw1moxqf/+ohVdhkuBn2RmHsgy6mEqoCN+Ur/UIZytm399pSEjbB9y5nDVx0ID+iKVY EtBOVj7dJ76ujc3XFPSSzMTJ2ofkvpsmfFbs0ZecSOx46TOrzHXF0Rk5GXJ2Y/PnavV5 jrHIE2T14KZDhhbzKeMWTW1W0C1FWDg/QvOQptAIrh9UqjUfyAv4L+N4aDI+V9L+OZZw J/gQ== X-Gm-Message-State: AOJu0YxxihiHDnQYwDuotb+uzjQNeHf7L1XjD4L5Hcj/5yxURCAULukn VE+TWd4Hsl8zJdl48yLRDjFtjL4v+ctpZkfr9+t/tvZY25vi/HEkAEBpMRj7lEORp5973Q== X-Google-Smtp-Source: AGHT+IHIleVFJlyQwT/agwlflwpdsbExZLFORzgkHiSCLC8el5/UZ+tHweXWlXGojwpkIzJkqcILMnY= X-Received: from dlbqs1.prod.google.com ([2002:a05:7023:d01:b0:11b:806e:9c8d]) (user=xur job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:129b:b0:2a4:4bb4:4712 with SMTP id 5a478bee46e88-2a6d9b74e6fmr1658586eec.39.1763573566972; Wed, 19 Nov 2025 09:32:46 -0800 (PST) Date: Wed, 19 Nov 2025 17:32:43 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-Mailer: git-send-email 2.52.0.rc1.455.g30608eb744-goog Message-ID: <20251119173243.1625930-1-xur@google.com> Subject: [PATCH v3 1/2] objtool: Fix the check for dead_end function with multiple sibling calls From: xur@google.com To: Josh Poimboeuf , Peter Zijlstra , Rong Xu Cc: linux-kernel@vger.kernel.org, Sriraman Tallam , Han Shen , Krzysztof Pszeniczny Content-Type: text/plain; charset="UTF-8" From: Rong Xu If a function has multiple sibling calls, the dead_end check should only return true if all sibling call targets are also dead_end functions. Signed-off-by: Rong Xu Reviewed-by: Sriraman Tallam Reviewed-by: Han Shen Reviewed-by: Krzysztof Pszeniczny Acked-by: Josh Poimboeuf ChangedLog: v3: Fix the typos in the commit message. (From Josh Poimboeuf). Drop the other patch (split funciton) as Josh has a better fix. Add Acked-by from Josh. --- tools/objtool/check.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 9004fbc067693..c2ee3c3a84a62 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -314,7 +314,13 @@ static bool __dead_end_function(struct objtool_file *file, struct symbol *func, return false; } - return __dead_end_function(file, insn_func(dest), recursion+1); + /* + * A function can have multiple sibling calls. All of + * them need to be dead ends for the function to be a + * dead end too. + */ + if (!__dead_end_function(file, insn_func(dest), recursion+1)) + return false; } } base-commit: 8b690556d8fe074b4f9835075050fba3fb180e93 -- 2.52.0.rc1.455.g30608eb744-goog