Re: [PATCH] ide: icside.c: Fix compile with CONFIG_BLK_DEV_IDEDMA_ICS=n

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello.

On 29-05-2012 14:30, Christian Dietrich wrote:

The icside driver can be configured without DMA support, but it
doesn't compile in this case, because DMA operations are referenced.

drivers/ide/icside.c:523: error: â??icside_v6_port_opsâ?? undeclared
drivers/ide/icside.c:522: error: â??icside_dma_initâ?? undeclared

Signed-off-by: Christian Dietrich<christian.dietrich@xxxxxxxxxxxxxxxxxxxxxxxxxx>
---
  drivers/ide/icside.c |    6 +++++-
  1 files changed, 5 insertions(+), 1 deletions(-)

I attach the configuration, that exposes this compilation error.

   Apparently, you forgot to do it. :-)

This patch was
*NOT* tested on real hardware. I don't if the fix really does solve the
problem, but at least it is a hint that there is a problem.

diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
index 8716066..62c59c1 100644
--- a/drivers/ide/icside.c
+++ b/drivers/ide/icside.c
@@ -271,7 +271,7 @@ static void icside_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)

  	ide_set_drivedata(drive, (void *)cycle_time);

-	printk("%s: %s selected (peak %dMB/s)\n", drive->name,
+	printk("%s: %s selected (peak %ldMB/s)\n", drive->name,

   Unrelated change, should go into its own patch.

  		ide_xfer_verbose(xfer_mode),
  		2000 / (unsigned long)ide_get_drivedata(drive));
  }
@@ -456,7 +456,9 @@ err_free:
  static const struct ide_port_info icside_v6_port_info __initdata = {
  	.init_dma		= icside_dma_off_init,
  	.port_ops		=&icside_v6_no_dma_port_ops,
+#ifdef CONFIG_BLK_DEV_IDEDMA_ICS

   You forgot to remove the useless '#define icside_v6_dma_ops NULL' above.
Also, you could set .dma_ops inside the 'if' below (and get rid of 'else' then), removing this line.

  	.dma_ops		=&icside_v6_dma_ops,
+#endif
  	.host_flags		= IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO,
  	.mwdma_mask		= ATA_MWDMA2,
  	.swdma_mask		= ATA_SWDMA2,
@@ -518,10 +520,12 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)

  	ecard_set_drvdata(ec, state);

+#ifdef CONFIG_BLK_DEV_IDEDMA_ICS
  	if (ec->dma != NO_DMA && !request_dma(ec->dma, DRV_NAME)) {
  		d.init_dma = icside_dma_init;
  		d.port_ops = &icside_v6_port_ops;
  	} else
+#endif
  		d.dma_ops = NULL;

  	ret = ide_host_register(host,&d, hws);

MBR, Sergei
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux