From: Fenghua Yu <[fenghua.yu@intel.com]> Date: Tue, 11 Aug 2009 21:52:10 +0000 (-0700) Subject: Bug Fix arch/ia64/kernel/pci-dma.c: fix recursive dma_supported() call in iommu_dma_s... X-Git-Tag: v2.6.30.6~26 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=cd20a4e8b2a7f2d10ef23978ccd8c85eff3ac3a2;p=karo-tx-linux.git Bug Fix arch/ia64/kernel/pci-dma.c: fix recursive dma_supported() call in iommu_dma_supported() commit 51b89f7a6615eca184aa0b85db5781d931e9c8d1 upstream. In commit 160c1d8e40866edfeae7d68816b7005d70acf391, dma_ops->dma_supported = iommu_dma_supported; This dma_ops->dma_supported is first called in platform_dma_init() during kernel boot. Then dma_ops->dma_supported will be called recursively in iommu_dma_supported. Kernel can not boot because kernel can not get out of iommu_dma_supported until it runs out of stack memory. Signed-off-by: Fenghua Yu Signed-off-by: Greg Kroah-Hartman --- diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c index eb987386f691..391f637c7505 100644 --- a/arch/ia64/kernel/pci-dma.c +++ b/arch/ia64/kernel/pci-dma.c @@ -67,11 +67,6 @@ iommu_dma_init(void) int iommu_dma_supported(struct device *dev, u64 mask) { - struct dma_map_ops *ops = platform_dma_get_ops(dev); - - if (ops->dma_supported) - return ops->dma_supported(dev, mask); - /* Copied from i386. Doesn't make much sense, because it will only work for pci_alloc_coherent. The caller just has to use GFP_DMA in this case. */