I am registering my probe to skx_register_mci symbol. Output of this symbol from /proc/kallsyms :
ffffffffc1696a90 t skx_register_mci [skx_edac]
So, this function seems to be local text (code). However, this function is implemented as a non-static function:
int skx_register_mci(struct skx_imc *imc, struct pci_dev *pdev,
const char *ctl_name, const char *mod_str,
get_dimm_config_f get_dimm_config,
struct res_config *cfg)
I can succesfully register my probe to this symbol. However, when this symbol is called, my probe is not triggered. When I attach my probe to other symbols with T (global text symbol), my probe to those are triggered.
I already checked whether this function was inlined or not by disassembling the driver, it is not inlined. So, why is my probe not triggered even though I am succesfully registering my probe to this function? And why a function defined like this is local text (code) --> t instead of global text (code) --> T