On Wed, 15 Jan 2025 05:35:20 -0800 Breno Leitao wrote:
- WARN_ON_ONCE(userdata_len + sysdata_len >
MAX_EXTRADATA_ENTRY_LEN * MAX_EXTRADATA_ITEMS);
- /* nt->sysdata_length will be used later to decide if the message
* needs to be fragmented.
* userdata_len cannot be used for it, once next sysdata append should
* start from the same userdata_len location, and only overwrite old
* sysdata.
*/
- nt->sysdata_length = sysdata_len;
Updating nt-> fields at runtime is something we haven't done before, right? What's the locking? We depend on target_list_lock ?
Looks like previously all the data was on the stack, now we have a mix. Maybe we can pack all the bits of state into a struct for easier passing around, but still put it on the stack?