add_changeset_property(9)
π add_changeset_property(9) β the Kernel API Manual, bestie edition π
okay so real talk, this is a page from the Kernel API Manual and it's called add_changeset_property(9). it's giving "tiny function, big responsibilities" energy and honestly? we're obsessed. let's get into it π¦
β¨ NAME β¨
add_changeset_property β the girl whose whole job is to add @overlay_prop to an overlay changeset π«Ά
πΈ SYNOPSIS πΈ
int add_changeset_property (struct overlay_changeset *ovcs , struct
target *target , const struct property *overlay_prop , bool
is_symbols_prop );
like, look at that signature. four whole arguments. she's that girl π
π ARGUMENTS π
ovcsβ the overlay changeset. the main character, the container, the whole vibe πtargetβ literally whereoverlay_propwill be placed. the destination. the location. iykyk πoverlay_propβ the property we're adding or updating, straight out of the overlay tree. she came from the overlay tree and she's ready for her moment β¨is_symbols_propβ1ifoverlay_propis from the node"/__symbols__". just a little bool flag doing bool flag things π
π₯ DESCRIPTION π₯
so here's the tea, bestie. if overlay_prop does not already exist in the live devicetree, we add a changeset entry that adds overlay_prop into target. but if it does already exist? then we add a changeset entry that updates the value of overlay_prop instead. either way, she's getting in. no cap π
now, target is flexible like that β it may be either in the live devicetree or in a new subtree that's contained in the changeset. both are valid. we love options π¦
some special properties are straight-up not added or updated, and β plot twist β no error is returned when that happens:
"name""phandle""linux,phandle"
like they just don't get an invite to the party and nobody makes a scene π
as for properties "#address-cells" and "#size-cells"? they are not updated if they're already in the live tree. but!! if they're present in the live tree, the values in the overlay must match the values in the live tree. no mismatching allowed, periodt π
and one more thing: update of property in symbols node is not allowed. that's it. that's the rule. don't try it π«
β RETURN β
0on success β slay, we ate π-ENOMEMif memory allocation failure β the malloc said no π-EINVALif invalid overlay β the overlay was giving invalid vibes, red flag π©
π¦ SEE ALSO π¦
Kernel file ./drivers/of/overlay.c, plus the whole friend group:
struct target(9)struct fragment(9)struct overlay_changeset(9)of_overlay_notifier_register(9)of_overlay_notifier_unregister(9)add_changeset_node(9)build_changeset_next_level(9)changeset_dup_entry_check(9)build_changeset(9)init_overlay_changeset(9)of_overlay_fdt_apply(9)of_overlay_remove(9)of_overlay_remove_all(9)
that's the squad. go read them too, bestie, they're all icons in their own right π
β¨ and that's a wrap β¨ this page lives in ./drivers/of and it's dated October 2026 β don't forget to stan the kernel docs, fr fr ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms