I have a driver which will dma_alloc a CMA region and return the address to my user space program, the program then will mmap /dev/mem according to the address offset. I was trying to vmsplice and splice it into my socket buffer, but the vmsplice always return "bad address". Anybody knows why? I attach my user space code for your perusal.