[PATCH v7 1/3] MTD : add the common code for GPMI-NFC controller driver

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Jun 29 08:38:03 EDT 2011


On Wed, Jun 29, 2011 at 04:24:36PM +0800, Huang Shijie wrote:
> +	dma_addr_t destination_phys = ~0;
> +
> +	if (virt_addr_valid(destination))
> +		destination_phys = dma_map_single(dev, destination,
> +						length, DMA_FROM_DEVICE);
> +
> +	if (dma_mapping_error(dev, destination_phys)) {

This is buggy.  There is no guarantee that we'll keep using ~0 as the
value for dma_mapping_error().  Please don't rely on this, but instead
code this better to avoid having to play these games.

> +static int send_page_prepare(struct gpmi_nfc_data *this,
> +			const void *source, unsigned length,
> +			void *alt_virt, dma_addr_t alt_phys, unsigned alt_size,
> +			const void **use_virt, dma_addr_t *use_phys)
> +{
> +	dma_addr_t source_phys = ~0;
> +	struct device *dev = this->dev;
> +
> +	if (virt_addr_valid(source))
> +		source_phys = dma_map_single(dev,
> +				(void *)source, length, DMA_TO_DEVICE);
> +
> +	if (dma_mapping_error(dev, source_phys)) {

Ditto.



More information about the linux-arm-kernel mailing list