Hi, Christoph, I have changed dma_get_cache_alignment's return value, and I don't know whether those drivers want to return ARCH_DMA_MINALIGN unconditionally. So I pass a NULL for those drivers, in order to keep their old behavior. Huacai ------------------ Original ------------------ From: "Christoph Hellwig"<h...@lst.de>; Date: Tue, Sep 19, 2017 11:02 PM To: "Huacai Chen"<che...@lemote.com>; Cc: "Christoph Hellwig"<h...@lst.de>; "Marek Szyprowski"<m.szyprow...@samsung.com>; "Robin Murphy"<robin.mur...@arm.com>; "Andrew Morton"<a...@linux-foundation.org>; "Fuxin Zhang"<zhan...@lemote.com>; "linux-kernel"<linux-ker...@vger.kernel.org>; "James E . J . Bottomley"<j...@linux.vnet.ibm.com>; "Martin K . Petersen"<martin.peter...@oracle.com>; "linux-scsi"<linux-scsi@vger.kernel.org>; "stable"<sta...@vger.kernel.org>; Subject: Re: [PATCH V6 2/3] dma-mapping: Rework dma_get_cache_alignment()function
> mdev->limits.reserved_mtts = ALIGN(mdev->limits.reserved_mtts * > mdev->limits.mtt_seg_size, > - dma_get_cache_alignment()) / > mdev->limits.mtt_seg_size; > + dma_get_cache_alignment(NULL)) / > mdev->limits.mtt_seg_size; > > mdev->mr_table.mtt_table = mthca_alloc_icm_table(mdev, > init_hca->mtt_base, Please pass the actually relevant struct device for each call.