Please don't spread scatterlists further. They are a bad data structure that mix input data (page, offset, len) and output data (phys_addr, dma_offset, dma_len), and do in a horrible way for iommmu mappings that can coalesce. Jason and coworkers have been looking into the long overdue API to better support batch mapping of better data structures, and this is a prime example of new code that should be using.