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"<hch@xxxxxx>; Date: Tue, Sep 19, 2017 11:02 PM To: "Huacai Chen"<chenhc@xxxxxxxxxx>; Cc: "Christoph Hellwig"<hch@xxxxxx>; "Marek Szyprowski"<m.szyprowski@xxxxxxxxxxx>; "Robin Murphy"<robin.murphy@xxxxxxx>; "Andrew Morton"<akpm@xxxxxxxxxxxxxxxxxxxx>; "Fuxin Zhang"<zhangfx@xxxxxxxxxx>; "linux-kernel"<linux-kernel@xxxxxxxxxxxxxxx>; "James E . J . Bottomley"<jejb@xxxxxxxxxxxxxxxxxx>; "Martin K . Petersen"<martin.petersen@xxxxxxxxxx>; "linux-scsi"<linux-scsi@xxxxxxxxxxxxxxx>; "stable"<stable@xxxxxxxxxxxxxxx>; 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.