Skip to content

Commit 4cd072f

Browse files
bullhhszy
andauthored
replace bootargs ro to rw (#293)
* replace bootargs ro to rw --------- Co-authored-by: szy <[email protected]>
1 parent 7c95187 commit 4cd072f

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

kernel/src/vmm/fdt/create.rs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,24 +289,41 @@ pub fn update_fdt(fdt_src: NonNull<u8>, dtb_size: usize, vm: VMRef) {
289289

290290
previous_node_level = node.level;
291291

292-
for prop in node.propertys() {
293-
if prop.name.starts_with("linux,initrd-") {
294-
if node.name() == "chosen" {
292+
if node.name() == "chosen" {
293+
for prop in node.propertys() {
294+
if prop.name.starts_with("linux,initrd-") {
295295
info!(
296296
"Skipping property: {}, belonging to node: {}",
297297
prop.name,
298298
node.name()
299299
);
300-
continue;
300+
} else if prop.name == "bootargs" {
301+
let bootargs_str = prop.str();
302+
let modified_bootargs = bootargs_str.replace(" ro ", " rw ");
303+
304+
if modified_bootargs != bootargs_str {
305+
info!(
306+
"Modifying bootargs: {} -> {}",
307+
bootargs_str, modified_bootargs
308+
);
309+
}
310+
311+
new_fdt
312+
.property_string(prop.name, &modified_bootargs)
313+
.unwrap();
301314
} else {
302-
warn!(
315+
debug!(
303316
"Find property: {}, belonging to node: {}",
304317
prop.name,
305318
node.name()
306319
);
320+
new_fdt.property(prop.name, prop.raw_value()).unwrap();
307321
}
308322
}
309-
new_fdt.property(prop.name, prop.raw_value()).unwrap();
323+
} else {
324+
for prop in node.propertys() {
325+
new_fdt.property(prop.name, prop.raw_value()).unwrap();
326+
}
310327
}
311328
}
312329

0 commit comments

Comments
 (0)