irq_to_hwirq() API should have a return type of u64
irq_to_hwirq() API should have a return type of u64 as the hwirq type is defined as an 'unsigned long' in the Linux kernel code base.
FWIW, there is an issue even with the Linux kernel's hwirq calculation code for which I sent a patch ( https://patchwork.kernel.org/project/linux-pci/patch/20240105134339.3091497-1-vidyas@nvidia.com/ ) to fix and it is under review now.