<snip> > > This patchset from last year[1] goes to great length to avoid using a driver > specific function and now you are trying to bring that back... So how was it > working before and why are things broken now? Moreover, function > rproc_elf_load_segments() deals with situations where the memory slot is bigger > than the file size[2], which is omitted here. As I mentioned in [1] the problem was and it is still there if an elf section has a size which is not a multiple of 4. And we do notice this when compiling Sound Open Firmware and loading it via rproc interface. This is a hardware limitation! And we need to address it. The limitation happens for IRAM address range of HIFI4 DSP integration with I.MX. Some call it a limitation, others call it an optimization. Either way we need to avoid crashing the kernel. We have two options: 1) Fully address it in rproc driver (like the present patch). 2) Partially address it in rproc driver (by returning an error for section with wrong sizes) and then making all linker scripts to force elf sections to be a multiple of 4. I would go for option 1) even if we go back to use our custom `load` function.