Message ID | 1385630545.2439.11.camel@ThinkPad-T5421 (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | 10862a0c71bff5c7b88812d6a9a9c0be56bc659a |
Delegated to: | Benjamin Herrenschmidt |
Headers | show |
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c index 76a6482..d771778 100644 --- a/arch/powerpc/kernel/vio.c +++ b/arch/powerpc/kernel/vio.c @@ -1419,7 +1419,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 */
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> --- arch/powerpc/kernel/vio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)