Re: Can't disable IDE DMA on 2.6.0-test9 (patch)
From: Bartlomiej Zolnierkiewicz <hidden>
Date: 2003-12-08 02:58:53
Also in:
lkml
On Monday 08 of December 2003 03:34, Peter Chubb wrote:
quoted
quoted
quoted
quoted
quoted
"Bartlomiej" == Bartlomiej Zolnierkiewicz [off-list ref] writes:Bartlomiej> On Friday 21 of November 2003 00:05, Peter Chubb wrote:quoted
quoted
Hi Folks,Bartlomiej> Hi,quoted
quoted
If you try to disable IDE DMA from Kconfig, you'll end up with an undefined symbol, ide_hwif_setup_dma(). The attached rather ugly patch fixes the problem by defining a dummy function.Bartlomiej> Not exactly. Disable IDE DMA and enable support for every Bartlomiej> PCI chipset. Now try to compile... welcome to compile Bartlomiej> time hell :-). If you disable IDE_DMA, then the other chipset drivers cannot be enabled --- the config system won't let you. With IDE_DMA disabled and all chipsets disabled, I see:
They cannot be enabled because they don't compile (see below).
drivers/built-in.o(.text+0x9f8bc): In function `ide_hwif_setup_dma': : undefined reference to `ide_setup_dma' And *that's* what my patch was supposed to fix.
Indeed it fixes it perfectly. However this problem (undefined reference to `ide_setup_dma') was created by your previous patch allowing selection of PCI chipsets if IDE DMA is not set ;-). I can't apply these patches because they create more problems that they fix. Here is compile time hell I was talking about (result of both your patches applied, IDE DMA disabled and all PCI chipset drivers enabled): drivers/ide/pci/aec62xx.c: In function `init_dma_aec62xx': drivers/ide/pci/aec62xx.c:490: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/alim15x3.c: In function `ali15x3_dma_write': drivers/ide/pci/alim15x3.c:565: warning: implicit declaration of function `__ide_dma_write' drivers/ide/pci/alim15x3.c: In function `init_dma_ali15x3': drivers/ide/pci/alim15x3.c:846: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/cmd64x.c: In function `cmd64x_ide_dma_end': drivers/ide/pci/cmd64x.c:535: warning: implicit declaration of function `ide_destroy_dmatable' drivers/ide/pci/cs5520.c: In function `cs5520_init_setup_dma': drivers/ide/pci/cs5520.c:214: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/sc1200.c: In function `sc1200_ide_dma_end': drivers/ide/pci/sc1200.c:333: warning: implicit declaration of function `ide_destroy_dmatable' drivers/ide/pci/cy82c693.c: In function `cy82c693_ide_dma_on': drivers/ide/pci/cy82c693.c:213: warning: implicit declaration of function `__ide_dma_on' drivers/ide/pci/hpt366.c: In function `hpt366_ide_dma_lostirq': drivers/ide/pci/hpt366.c:577: warning: implicit declaration of function `__ide_dma_lostirq' drivers/ide/pci/hpt366.c: In function `hpt370_ide_dma_begin': drivers/ide/pci/hpt366.c:592: warning: implicit declaration of function `__ide_dma_begin' drivers/ide/pci/hpt366.c: In function `hpt370_ide_dma_end': drivers/ide/pci/hpt366.c:609: warning: implicit declaration of function `__ide_dma_end' drivers/ide/pci/hpt366.c: In function `hpt370_ide_dma_timeout': drivers/ide/pci/hpt366.c:634: warning: implicit declaration of function `__ide_dma_timeout' drivers/ide/pci/hpt366.c: In function `init_dma_hpt366': drivers/ide/pci/hpt366.c:1124: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/ns87415.c: In function `ns87415_ide_dma_end': drivers/ide/pci/ns87415.c:101: warning: implicit declaration of function `ide_destroy_dmatable' drivers/ide/pci/ns87415.c: In function `ns87415_ide_dma_read': drivers/ide/pci/ns87415.c:110: warning: implicit declaration of function `__ide_dma_read' drivers/ide/pci/ns87415.c: In function `ns87415_ide_dma_write': drivers/ide/pci/ns87415.c:121: warning: implicit declaration of function `__ide_dma_write' drivers/ide/pci/ns87415.c: In function `ns87415_ide_dma_check': drivers/ide/pci/ns87415.c:132: warning: implicit declaration of function `__ide_dma_check' drivers/ide/pci/pdc202xx_old.c: In function `pdc202xx_old_ide_dma_begin': drivers/ide/pci/pdc202xx_old.c:556: warning: implicit declaration of function `__ide_dma_begin' drivers/ide/pci/pdc202xx_old.c: In function `pdc202xx_old_ide_dma_end': drivers/ide/pci/pdc202xx_old.c:572: warning: implicit declaration of function `__ide_dma_end' drivers/ide/pci/pdc202xx_old.c: In function `pdc202xx_ide_dma_lostirq': drivers/ide/pci/pdc202xx_old.c:603: warning: implicit declaration of function `__ide_dma_lostirq' drivers/ide/pci/pdc202xx_old.c: In function `pdc202xx_ide_dma_timeout': drivers/ide/pci/pdc202xx_old.c:610: warning: implicit declaration of function `__ide_dma_timeout' drivers/ide/pci/pdc202xx_old.c: In function `init_dma_pdc202xx': drivers/ide/pci/pdc202xx_old.c:795: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/pdc202xx_new.c: In function `pdcnew_ide_dma_lostirq': drivers/ide/pci/pdc202xx_new.c:437: warning: implicit declaration of function `__ide_dma_lostirq' drivers/ide/pci/pdc202xx_new.c: In function `pdcnew_ide_dma_timeout': drivers/ide/pci/pdc202xx_new.c:444: warning: implicit declaration of function `__ide_dma_timeout' drivers/ide/pci/serverworks.c: In function `svwks_ide_dma_end': drivers/ide/pci/serverworks.c:508: warning: implicit declaration of function `__ide_dma_end' drivers/ide/pci/serverworks.c: In function `init_dma_svwks': drivers/ide/pci/serverworks.c:754: warning: implicit declaration of function `ide_setup_dma' drivers/ide/pci/siimage.c: In function `siimage_mmio_ide_dma_count': drivers/ide/pci/siimage.c:573: warning: implicit declaration of function `__ide_dma_count' drivers/ide/pci/siimage.c: In function `siimage_mmio_ide_dma_verbose': drivers/ide/pci/siimage.c:626: warning: implicit declaration of function `__ide_dma_verbose' drivers/ide/pci/slc90e66.c: In function `init_hwif_slc90e66': drivers/ide/pci/slc90e66.c:331: warning: unused variable `mask' drivers/ide/pci/trm290.c: In function `init_hwif_trm290': drivers/ide/pci/trm290.c:345: warning: implicit declaration of function `ide_setup_dma' drivers/ide/setup-pci.c:176: warning: `ide_get_or_set_dma_base' defined but not used drivers/built-in.o(.text+0x54e92): In function `ali15x3_dma_write': : undefined reference to `__ide_dma_write' drivers/built-in.o(.text+0x572ef): In function `cmd64x_ide_dma_end': : undefined reference to `ide_destroy_dmatable' drivers/built-in.o(.text+0x573e9): In function `cmd646_1_ide_dma_end': : undefined reference to `ide_destroy_dmatable' drivers/built-in.o(.text+0x5833f): In function `sc1200_ide_dma_end': : undefined reference to `ide_destroy_dmatable' drivers/built-in.o(.text+0x589f5): In function `cy82c693_ide_dma_on': : undefined reference to `__ide_dma_on' drivers/built-in.o(.text+0x59d55): In function `hpt366_ide_dma_lostirq': : undefined reference to `__ide_dma_lostirq' drivers/built-in.o(.text+0x59dbf): In function `hpt370_ide_dma_begin': : undefined reference to `__ide_dma_begin' drivers/built-in.o(.text+0x59e25): In function `hpt370_ide_dma_end': : undefined reference to `__ide_dma_end' drivers/built-in.o(.text+0x59f05): In function `hpt370_ide_dma_timeout': : undefined reference to `__ide_dma_timeout' drivers/built-in.o(.text+0x59f25): In function `hpt370_ide_dma_lostirq': : undefined reference to `__ide_dma_lostirq' drivers/built-in.o(.text+0x59fc5): In function `hpt374_ide_dma_end': : undefined reference to `__ide_dma_end' drivers/built-in.o(.text+0x5a458): In function `ns87415_ide_dma_end': : undefined reference to `ide_destroy_dmatable' drivers/built-in.o(.text+0x5a491): In function `ns87415_ide_dma_read': : undefined reference to `__ide_dma_read' drivers/built-in.o(.text+0x5a4d1): In function `ns87415_ide_dma_write': : undefined reference to `__ide_dma_write' drivers/built-in.o(.text+0x5a511): In function `ns87415_ide_dma_check': : undefined reference to `__ide_dma_check' drivers/built-in.o(.text+0x5b9ff): In function `pdc202xx_old_ide_dma_begin': : undefined reference to `__ide_dma_begin' drivers/built-in.o(.text+0x5ba79): In function `pdc202xx_old_ide_dma_end': : undefined reference to `__ide_dma_end' drivers/built-in.o(.text+0x5bb11): In function `pdc202xx_ide_dma_lostirq': : undefined reference to `__ide_dma_lostirq' drivers/built-in.o(.text+0x5bb41): In function `pdc202xx_ide_dma_timeout': : undefined reference to `__ide_dma_timeout' drivers/built-in.o(.text+0x5cc01): In function `pdcnew_ide_dma_lostirq': : undefined reference to `__ide_dma_lostirq' drivers/built-in.o(.text+0x5cc31): In function `pdcnew_ide_dma_timeout': : undefined reference to `__ide_dma_timeout' drivers/built-in.o(.text+0x5eb88): In function `svwks_ide_dma_end': : undefined reference to `__ide_dma_end' drivers/built-in.o(.text+0x5f7b8): In function `siimage_mmio_ide_dma_count': : undefined reference to `__ide_dma_count' drivers/built-in.o(.text+0x5f8d8): In function `siimage_mmio_ide_dma_verbose': : undefined reference to `__ide_dma_verbose' drivers/built-in.o(.init.text+0x6c27): In function `init_dma_aec62xx': : undefined reference to `ide_setup_dma' drivers/built-in.o(.init.text+0x7201): In function `init_dma_ali15x3': : undefined reference to `ide_setup_dma' drivers/built-in.o(.init.text+0x7b69): In function `cs5520_init_setup_dma': : undefined reference to `ide_setup_dma' drivers/built-in.o(.init.text+0x8fee): In function `init_dma_hpt366': : undefined reference to `ide_setup_dma' drivers/built-in.o(.init.text+0x963d): In function `init_dma_pdc202xx': : undefined reference to `ide_setup_dma' drivers/built-in.o(.init.text+0x9731): more undefined references to `ide_setup_dma' follow make: *** [.tmp_vmlinux1] Error 1 Please correct all chipset drivers and then I will apply all patches happily. thanks, --bart