Besides kmalloc() is more efficient, are there some potential problems that I should be aware of if I allocate the memory which doesn't have any relation to peripheral hardwares(i.e. DMA,PCI,serial port and etc) by vmalloc() instead of kmalloc() to avoid the page allocation failure?