Re: [HOWTO] accessing the DMA mapped data

From: Muli Ben-Yehuda
Date: Fri May 11 2007 - 11:43:07 EST


On Thu, May 10, 2007 at 04:47:32AM -0700, David Miller wrote:
> From: Mahesh <maheshk@xxxxxxx>
> Date: Thu, 10 May 2007 17:11:17 +0530
>
> > Hi, > You haven't given an example of where this might actually
> > happen. > > The driver is where the DMA mappings almost always
> > occur because > that is the layer that knows the bus technology and
> > therefore > the correct DMA interfaces to call. > > What kind of
> > driver do you have and what is this upper layer > doing the mappings
> > for you but not giving you a pointer to > the kernel buffer as well?
> > > Here I am dealing with a infiniband (see www.openfabrics.org)
> > network device driver. The layer above the driver is the standard
> > infiniband core interface. Now I have a situation where I need to
> > peek into the packets and do some modifications(some hacking). So I
> > just want know whether I can access the original data region using
> > the bus address generated by the dma_map_single.
>
> You can't, therefore you need to ask the Inifiniband guys to perhaps
> tweak the infiniband driver interfaces so that you can get at the
> buffer or provide some other mechanism by which you can accomplish
> what you're trying to do.

AFAICR the ipath driver had the same problem, which resulted in the
addition of ib specific DMA-API wrappers. See usage of struct
ipath_dma_mapping_ops in ipath_dma.c.

Cheers,
Muli

-
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/