Instead of hard-coding GFP_KERNEL: > + buf = kmalloc(sizeof *send_buf + buf_size, GFP_KERNEL); would it make sense to put a gfp_mask into the API and avoid some of the heartburn about interrupt context that we've had lately? - R.