From: Andrew Morton free_dma() isn't implemented on ARM unless HAS_DMA is set. Cc: Russell King Signed-off-by: Andrew Morton --- drivers/parport/parport_pc.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN drivers/parport/parport_pc.c~parport_pc-arm-build-fix drivers/parport/parport_pc.c --- 25-arm/drivers/parport/parport_pc.c~parport_pc-arm-build-fix 2006-01-05 04:36:42.000000000 -0800 +++ 25-arm-akpm/drivers/parport/parport_pc.c 2006-01-05 04:36:42.000000000 -0800 @@ -2380,8 +2380,10 @@ void parport_pc_unregister_port (struct spin_lock(&ports_lock); list_del_init(&priv->list); spin_unlock(&ports_lock); +#if defined(CONFIG_PARPORT_PC_FIFO) && defined(HAS_DMA) if (p->dma != PARPORT_DMA_NONE) free_dma(p->dma); +#endif if (p->irq != PARPORT_IRQ_NONE) free_irq(p->irq, p); release_region(p->base, 3); @@ -2389,14 +2391,12 @@ void parport_pc_unregister_port (struct release_region(p->base + 3, p->size - 3); if (p->modes & PARPORT_MODE_ECP) release_region(p->base_hi, 3); -#ifdef CONFIG_PARPORT_PC_FIFO -#ifdef HAS_DMA +#if defined(CONFIG_PARPORT_PC_FIFO) && defined(HAS_DMA) if (priv->dma_buf) pci_free_consistent(priv->dev, PAGE_SIZE, priv->dma_buf, priv->dma_handle); #endif -#endif kfree (p->private_data); parport_put_port(p); kfree (ops); /* hope no-one cached it */ _