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://launchpad.net/~canonical-kernel-team/+archive/ubuntu/proposed?field.series_filter=jammy
2. Edit /boot/grub/grub.cfg and add the following param to any boot entry with Linux 6.8
testparam=f081c381e7b54edcba27e5f790d47911a4cc3e726d8d256878d3df9175c020e0f081c381e7b54edcba27e5f790d47911a4cc3e726d8d256878d3df9175c020e0f081c381e7b5
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 dc3f5aae06381b43bc9d0d416bd15ee1682940e9 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 e223a449125571daa62debd8249fa4fc2da0a961 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 6d75c6f40a03c97e1ecd683ae54e249abb9d922b 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.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Fix Options =============
Option 1. For Linux 6.8 the safest fix would be to revert
Option 2. Unless Ubuntu Team is interested in bringing the whole Mini C Runtime rework to Linux 6.8 with
Please revert the change in Linux 6.8
Thanks
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:/ /launchpad. net/~canonical- kernel- team/+archive/ ubuntu/ proposed? field.series_ filter= jammy
2. Edit /boot/grub/grub.cfg and add the following param to any boot entry with Linux 6.8
testparam= f081c381e7b54ed cba27e5f790d479 11a4cc3e726d8d2 56878d3df9175c0 20e0f081c381e7b 54edcba27e5f790 d47911a4cc3e726 d8d256878d3df91 75c020e0f081c38 1e7b5
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 3bc9d0d416bd15e e1682940e9
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 aa62debd8249fa4 fc2da0a961
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 e1ecd683ae54e24 9abb9d922b
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. kernel. org/pub/ scm/linux/ kernel/ git/arm64/ linux
Fix Options
=============
Option 1.
For Linux 6.8 the safest fix would be to revert
commit dc3f5aae06381b4 3bc9d0d416bd15e e1682940e9
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 e1ecd683ae54e24 9abb9d922b
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. kernel. org/pub/ scm/linux/ kernel/ git/arm64/ linux
Please revert the change in Linux 6.8
Thanks