It uses vmalloc only when __GFP_VMALLOC flag is given - and so it isexpected to not use __GFP_VMALLOC flag in IRQ.

NOTE: no allocations in IRQ are safe. Not only high-order ones. Allocation in IRQ may fail any time and you must recover without lost offunctionality (network can lose packets any time, if you are doing somegeneral device driver, you must preallocate all buffers in processcontext).