> - for (i = 0; i < (len / bsize_elem); i++, buffer += bsize_elem) {
> - struct page *page = sg_page(&scatterlist[i]);
> + for (i = 0; i < (len / bsize_elem); i++, sg = sg_next(sg), buffer +=
> bsize_elem) {Please split the overly long line. > + struct page *page = sg_page(sg); > > kaddr = kmap(page); > memcpy(kaddr, buffer, bsize_elem); > kunmap(page); Not new in this patch, but this is buggy as scatterlists could have offsets. This should probably use the scatterlist.c copy helper eventually.

