Naming and placement:
This is about dma-buf based I/O. So I'd expect it to be named dma-buf-io and no io-dmabuf, and live in drivers/dma-buf and not the unrelated lib/. But I'd like to hear from the dma-buf maintainers about that.
Config option: as this unconditionally when DMA_SHARED_BUFFER is enabled, why does it need a separate config option?
Interface: io_dmabuf_token_create / ->create_dmabuf_token filling in a structure allocated by the caller feels odd. My gut feeling would be to move most of io_dmabuf_token_create into a helper called by ->create_dmabuf_token so that the token is allocated in the driver data structure and returned from create_dmabuf_token.