scripts/pahole-flags.sh change return to exit 0

Bug #2035123 reported by David Thompson
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
In Progress
Medium
Matthew Ruffell
linux-bluefield (Ubuntu)
Triaged
Undecided
Unassigned
Jammy
Fix Committed
Medium
Matthew Ruffell

Bug Description

BugLink: https://bugs.launchpad.net/bugs/2035123

[Impact]

When building the Jammy linux-bluefield kernel tree on a system without pahole installed, the following warning is emitted:

./scripts/pahole-flags.sh: line 7: return: can only `return' from a function or sourced script

scripts/pahole-flags.sh attempts to return from an if statement that is not within a function, and generates a warning.

The fix is straightforward, changing return to an exit 0.

--- a/scripts/pahole-flags.sh
+++ b/scripts/pahole-flags.sh
@@ -4,7 +4,7 @@
 extra_paholeopt=

 if ! [ -x "$(command -v ${PAHOLE})" ]; then
- return
+ exit 0
 fi

[Testcase]

Clone the linux-bluefield kernel tree and build it on a arm64 system without
pahole installed.

A test kernel is available with the fix applied in:

https://launchpad.net/~mruffell/+archive/ubuntu/sf368560-test

Both linux-bluefield and ubuntu-jammy build correctly.

[Fix]

This was fixed by Linus Torvalds in the following merge commit:

commit fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4
Merge: bfc484fe6abb 84882cf72cd7
Author: Linus Torvalds <email address hidden>
Date: Tue Nov 2 06:20:58 2021 -0700
Subject: Merge tag 'net-next-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4

Note, the original commit does not have the fix included:

commit 9741e07ece7c247dd65e1aa01e16b683f01c05a8
Author: Jiri Olsa <email address hidden>
Date: Fri Oct 29 14:57:29 2021 +0200
Subject: kbuild: Unify options for BTF generation for vmlinux and modules
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9741e07ece7c247dd65e1aa01e16b683f01c05a8

The Ubuntu kernel cherry-picked the original commit and did not pick up the
silent fix made in the merge commit. Submitting the silent fix as a SAUCE patch
with changelog describing the change.

Note: I know SAUCE patches are bad, but in this scenario, to revert the initial commit and re-apply the fixed version would require us to revert two additional dependency commits, making six patches to review, vs, a one line change in a SAUCE commit that has a real changelog entry.

[Where problems could occur]

The Ubuntu kernel is built with pahole enabled, and requires pahole to be installed as a build dependency. It is extremely unlikely that any users are disabling pahole at build time, apart from linux-bluefield engineers.

If a regression were to occur, engineers would see errors during build time about scripts/pahole-flags.sh not executing properly.

[Other info]

Linus remarked about the issue in the following lkml discussion:

https://lore.kernel<email address hidden>/
https://lore.kernel<email address hidden>/

This was silently Incorporated into the linux-stable commit:

commit 0baced0e0938f2895ceba54038eaf15ed91032e7 5.15.y
From: Jiri Olsa <email address hidden>
Date: Sun, 4 Sep 2022 15:19:00 +0200
Subject: kbuild: Unify options for BTF generation for vmlinux and modules
Link: https://github.com/gregkh/linux/commit/0baced0e0938f2895ceba54038eaf15ed91032e7

Revision history for this message
dann frazier (dannf) wrote :

It appears that Linus applied a fix for this directly in a merge commit:
  https://github.com/torvalds/linux/commits/fc02cb2b37fe2cbf1d3334b9f0f0eab9431766c4

When the change with this bug was backported to stable, the fix was squashed. But we appear to have cherry-picked the version from mainline instead of the one from stable which had the bug.

Changed in linux-bluefield (Ubuntu):
status: New → Triaged
dann frazier (dannf)
Changed in linux (Ubuntu Jammy):
status: New → Triaged
Changed in linux-bluefield (Ubuntu Jammy):
status: New → Triaged
Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:

apport-collect 2035123

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
summary: - scripts/pahole-flags.sh needs upstream fix
+ scripts/pahole-flags.sh change return to exit 0
description: updated
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
Changed in linux (Ubuntu Jammy):
status: Triaged → In Progress
Changed in linux-bluefield (Ubuntu Jammy):
status: Triaged → In Progress
Changed in linux (Ubuntu Jammy):
importance: Undecided → Medium
Changed in linux-bluefield (Ubuntu Jammy):
importance: Undecided → Medium
Changed in linux (Ubuntu Jammy):
assignee: nobody → Matthew Ruffell (mruffell)
Changed in linux-bluefield (Ubuntu Jammy):
assignee: nobody → Matthew Ruffell (mruffell)
description: updated
Revision history for this message
Matthew Ruffell (mruffell) wrote :
Changed in linux-bluefield (Ubuntu Jammy):
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.