Re: Question: how to map SCSI data DMA address to virtual address?

From: Christoph Hellwig
Date: Thu Mar 02 2006 - 12:07:07 EST


On Thu, Mar 02, 2006 at 09:53:06AM -0700, Ju, Seokmann wrote:
> Hi,
>
> In the 'scsi_cmnd' structure, there are two entries holding address
> information for data to be transferred. One is 'request_buffer' and the
> other one is 'buffer'.
> In case of 'use_sg' is non-zero, those entries indicates the address of
> the scatter-gather table.
>
> Is there way to get virtual address (so that the data could be accessed
> by the driver) of the actual data in the case of 'use_sg' is non-zero?

For each sg list entry do something like:

buffer = kmap_atomic(sg->page, KM_USER0) + sg->offset;
<access buffer>
kunmap_atomic(buffer - sg->offset, KM_USER0);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/