summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Zhong <zhong@linux.vnet.ibm.com>2013-11-28 09:22:25 (GMT)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-03-07 04:50:12 (GMT)
commit10862a0c71bff5c7b88812d6a9a9c0be56bc659a (patch)
treec171ccf1dc24d11fe203ad2084e48476558580bc
parent847443774b8b4187c7abbb3ed45683249a5ab884 (diff)
downloadlinux-10862a0c71bff5c7b88812d6a9a9c0be56bc659a.tar.xz
powerpc: Revert c6102609 and replace it with the correct fix for vio dma mask setting
This patch reverts my previous "fix", and replace it with the correct fix from Russell. And as Russell pointed out -- dma_set_mask_and_coherent() (and the other dma_set_mask() functions) are really supposed to be used by drivers only. Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/kernel/vio.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 826d8bd9..904c661 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -1432,7 +1432,8 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node)
/* needed to ensure proper operation of coherent allocations
* later, in case driver doesn't set it explicitly */
- dma_coerce_mask_and_coherent(&viodev->dev, DMA_BIT_MASK(64));
+ viodev->dev.coherent_dma_mask = DMA_BIT_MASK(64);
+ viodev->dev.dma_mask = &viodev->dev.coherent_dma_mask;
}
/* register with generic device framework */