Issue
For background, I managed to print my IDT Table with my kernel module. It will show me the irq number, Stub Address, Segment, DPL, Type, and Handler Name. But unfortunately, my handler name always return the stub of the address not the actual handlers name.
For example, for irq number 34 it will return
34 0xffffffffa6600180 10 0 Interrupt gate irq_entries_start+0x10/0x660
I believe irq number 34 is for handling nvme irq, as I look it up on proc/interrupts
. But it wont return like nvme_irq or nvme_irq_handler or something like that show me the irq_handler function. How I can show the actual handler name of the idt table using the address?
If you interested to look my github source code for checking the idt table, here is the GitHub link: GitHub Check IDT Repo.
Thank you in advance
Solution
I already found a way to print it, by using irq_to_desc()
function. It will return the irq desc and then I get the action->handler
address. Then, I call sprint_symbol on the address, which returns its handler name. Thank you all.
Answered By - Hansen Idden Answer Checked By - Willingham (WPSolving Volunteer)