linux 6.8 fails to boot on arm64 if any param is more than 140 chars
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Noble |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Hi,
Linux 6.8 kernel fails to boot on ARM64 when any Linux command line param is more than 140 characters.
Test Machine
=============
Rockchip RK3399 based RockPro64 with latest u-boot 2024.07-rc3 in EFI mode booting grubaa64.efi
Reproduced on
==============
Ubuntu 22.04.4 with Linux HWE Proposed 6.8
Ubuntu 24.04 with Linux 6.8
Works on
=========
Ubuntu 22.04.4 with Linux 5.15, 6.6, 6.7, 6.9
Steps to reproduce
=======
1. Install Ubuntu 24.04 which comes with Linux 6.8 by default or Ubuntu 22.04.4 install Linux HWE 6.8 from https:/
2. Edit /boot/grub/grub.cfg and add the following param to any boot entry with Linux 6.8
testparam=
3. Reboot the machine and select the boot entry in grub with the testparam as above.
4. Observe kernel never boots.
Cause
========
After bisecting the kernel, I found that the bug was introduced in Linux 6.8-rc1 ( and released in Linux 6.8 ) with commit
commit dc3f5aae06381b4
Author: Ard Biesheuvel <email address hidden>
Date: Wed Nov 29 12:16:12 2023 +0100
arm64: idreg-override: Avoid parameq() and parameqn()
This got fixed with Linux 6.9-rc1 and released in Linux 6.9 as part of rework
commit e223a449125571d
Author: Ard Biesheuvel <email address hidden>
Date: Wed Feb 14 13:28:50 2024 +0100
arm64: idreg-override: Move to early mini C runtime
That got merged to Linux 6.9-rc1 with commit
commit 6d75c6f40a03c97
Merge: fe46a7dd189e 1ef21fcd6a50
Author: Linus Torvalds <email address hidden>
Date: Thu Mar 14 15:35:42 2024 -0700
Merge tag 'arm64-upstream' of git://git.
Fix Options
=============
Option 1.
For Linux 6.8 the safest fix would be to revert
commit dc3f5aae06381b4
Author: Ard Biesheuvel <email address hidden>
Date: Wed Nov 29 12:16:12 2023 +0100
arm64: idreg-override: Avoid parameq() and parameqn()
Option 2.
Unless Ubuntu Team is interested in bringing the whole Mini C Runtime rework to Linux 6.8 with
commit 6d75c6f40a03c97
Merge: fe46a7dd189e 1ef21fcd6a50
Author: Linus Torvalds <email address hidden>
Date: Thu Mar 14 15:35:42 2024 -0700
Merge tag 'arm64-upstream' of git://git.
Please revert the change in Linux 6.8
Thanks
Related branches
- Ubuntu Kernel Repositories: Pending requested
-
Diff: 62 lines (+11/-17)1 file modifiedarch/arm64/kernel/idreg-override.c (+11/-17)
Changed in linux (Ubuntu): | |
status: | New → Fix Released |
Hi @Matthew
Thanks for fixing the bug.
Can you please let me know where can I get the fixed kernel release from?
Thanks