x86, 32-bit: Fix swiotlb boot crash
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tue, 10 Nov 2009 12:35:17 +0000 (21:35 +0900)
committerIngo Molnar <mingo@elte.hu>
Tue, 10 Nov 2009 13:11:32 +0000 (14:11 +0100)
Ingo Molnar reported this boot crash:

[    8.655620] pata_amd 0000:00:06.0: version 0.4.1
[    8.660286] BUG: unable to handle kernel NULL pointer dereference at 00000034
[    8.663572] IP: [<c100617b>] dma_supported+0x3b/0xa4
[    8.663572] *pde = 00000000

Initialize dma_ops properly in the 32-bit case.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/pci-dma.c

index a234e63c26565709dde5f9cb3e79ac5e9bca77b4..63eebee80e754e7383319b8dc4a3d9ec37ec5e80 100644 (file)
@@ -129,6 +129,8 @@ void __init pci_iommu_alloc(void)
 #ifdef CONFIG_X86_64
        /* free the range so iommu could get some range less than 4G */
        dma32_free_bootmem();
+#else
+       dma_ops = &nommu_dma_ops;
 #endif
        pci_swiotlb_init();
        if (use_swiotlb)