mirror of https://github.com/openwrt/openwrt.git
realtek: take over boot command line patch into driver
Make it easier to upgrade the kernel in the future. For this remove the 320-harden-fw_init_cmdline.patch and add the logic into the startup sequence at the right place. Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> Link: https://github.com/openwrt/openwrt/pull/18853 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
parent
ec4afc4c1b
commit
897abbfc4a
|
@ -196,6 +196,14 @@ void __init prom_init(void)
|
|||
|
||||
pr_info("SoC Type: %s\n", get_system_type());
|
||||
|
||||
/*
|
||||
* fw_arg2 is be the pointer to the environment. Some devices (e.g. HP JG924A) hand
|
||||
* over other than expected kernel boot arguments. Something like 0xfffdffff looks
|
||||
* suspicous. Do extra cleanup for fw_init_cmdline() to avoid a hang during boot.
|
||||
*/
|
||||
if (fw_arg2 >= CKSEG2)
|
||||
fw_arg2 = 0;
|
||||
|
||||
fw_init_cmdline();
|
||||
|
||||
mips_cpc_probe();
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
From e813f48461b8011244b3e7dfe118cf94fd595f0d Mon Sep 17 00:00:00 2001
|
||||
From: Markus Stockhausen <markus.stockhausen@gmx.de>
|
||||
Date: Sun, 25 Aug 2024 13:09:48 -0400
|
||||
Subject: [PATCH] realtek: harden fw_init_cmdline()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some devices (e.g. HP JG924A) hand over other than expected kernel boot
|
||||
arguments. Looking at these one can see:
|
||||
|
||||
fw_init_cmdline: fw_arg0=00020000
|
||||
fw_init_cmdline: fw_arg1=00060000
|
||||
fw_init_cmdline: fw_arg2=fffdffff
|
||||
fw_init_cmdline: fw_arg3=0000416c
|
||||
|
||||
Especially fw_arg2 should be the pointer to the environment and it looks
|
||||
very suspicous. It is not aligned and the address is outside KSEG0 and
|
||||
KSEG1. Booting the device will result in a hang. Do better at verifying
|
||||
the address.
|
||||
|
||||
Signed-off-by: Bjørn Mork <bjorn@mork.no>
|
||||
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
|
||||
---
|
||||
arch/mips/fw/lib/cmdline.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/mips/fw/lib/cmdline.c
|
||||
+++ b/arch/mips/fw/lib/cmdline.c
|
||||
@@ -31,7 +31,7 @@ void __init fw_init_cmdline(void)
|
||||
}
|
||||
|
||||
/* Validate environment pointer. */
|
||||
- if (fw_arg2 < CKSEG0)
|
||||
+ if (fw_arg2 < CKSEG0 || fw_arg2 >= CKSEG2)
|
||||
_fw_envp = NULL;
|
||||
else
|
||||
_fw_envp = (int *)fw_arg2;
|
Loading…
Reference in New Issue