On 3/27/26 12:00 PM, Stanislaw Gruszka wrote: > The symbol lookup code assumes the queried address resides in either > MOD_TEXT or MOD_INIT_TEXT. This breaks for addresses in other module > memory regions (e.g. rodata or data), resulting in incorrect upper > bounds and wrong symbol size. > > Select the module memory region the address belongs to instead of > hardcoding text sections. Also initialize the lower bound to the start > of that region, as searching from address 0 is unnecessary. > > Signed-off-by: Stanislaw Gruszka <[email protected]>
Looks ok to me. Feel free to add: Reviewed-by: Petr Pavlu <[email protected]> As a side note, I wonder if manually determining symbol sizes this way is the best approach for modules, instead of simply returning the st_size of the symbol. The logic comes from the original implementation in "[PATCH] kallsyms for new modules" [1]. Unfortunately, the description doesn't explain this aspect but considering that the patch rewrote both the main and module kallsyms code, I expect it was done this way for consistency between vmlinux and modules. [1] https://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux-fullhistory.git/commit/?id=d069cf94ca296b7fb4c7e362e8f27e2c8aca70f1 -- Thanks, Petr
