Re: [PATCH rdma-next] RDMA: Explicitly pass in the dma_device to ib_register_device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> +static void setup_dma_device(struct ib_device *device,
> +			     struct device *dma_device)
>  {
> +	if (!dma_device) {
>  		/*
> +		 * If the caller does not provide a DMA capable device then the
> +		 * IB device will be used. In this case the caller should fully
> +		 * setup the ibdev for DMA. This usually means using
> +		 * dma_virt_ops.
>  		 */
> +#ifdef CONFIG_DMA_OPS
> +		if (WARN_ON(!device->dev.dma_ops))
> +			return;
> +#endif

dma ops are entirely optiona and NULL for the most common case
(direct mapping without an IOMMU).

> +		if (WARN_ON(!device->dev.dma_parms))
> +			return;
> +
> +		dma_device = &device->dev;
> +	} else {
> +		device->dev.dma_parms = dma_device->dma_parms;
>  		/*
> +		 * Auto setup the segment size if a DMA device was passed in.
> +		 * The PCI core sets the maximum segment size to 64 KB. Increase
> +		 * this parameter to 2 GB.
>  		 */
> +		dma_set_max_seg_size(dma_device, SZ_2G);

You can't just inherity DMA properties like this this.  Please
fix all code that looks at the seg size to look at the DMA device.

Btw, where does the magic 2G come from?



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux