On 04/12/2016 10:01 AM, Mark Brown wrote: > On Tue, Apr 05, 2016 at 09:19:51AM +0530, Vignesh R wrote: > >> mutex_lock(&master->bus_lock_mutex); >> + if (master->dma_rx) { >> + rx_dev = master->dma_rx->device->dev; >> + ret = spi_map_buf(master, rx_dev, &msg->rx_sg, >> + msg->buf, msg->len, >> + DMA_FROM_DEVICE); >> + if (ret != 0) >> + goto err; >> + } > > This is unconditionally DMA mapping the buffer if DMA is supported. > That's going to be common but I'm not sure it'll be universal, we need > to think of something better here. I'm not immediately seeing what > though. Possibly a flag... > Ok, I will introduced a flag along the lines of cur_msg_mapped currently part of spi_message struct. This reminds me the issue of possible kmap'd buffers(falling in PKMAP_BASE - PAGE_OFFSET-1 region) that might be passed to spi_map_buf() which are not currently being handled properly. Boris attempted to fix this in generic way[1] but was rejected as it couldn't handle all type of caches. I was wondering whether you would accept a patch returning error when kmap'd buffers are passed to spi_map_buf()? Or would it still make sense to port changes from that series to handle kmap'd buffers to SPI core alone? [1]https://lkml.org/lkml/2016/3/31/462 -- Regards Vignesh -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html