svn commit: r195439 - head/sys/dev/ata/chipsets

Alexander Motin mav at FreeBSD.org
Wed Jul 8 06:00:21 UTC 2009


Author: mav
Date: Wed Jul  8 06:00:21 2009
New Revision: 195439
URL: http://svn.freebsd.org/changeset/base/195439

Log:
  Fix kernel panic, when ataahci driver is used on system with increased
  MAXPHYS. Current ataahci driver memory allocation scheme includes only
  64 items in DMA S/G table, and so not guarantied to support transactions
  with more then 252K data.
  
  Approved by:    re (kensmith)
  MFC after:      2 weeks

Modified:
  head/sys/dev/ata/chipsets/ata-ahci.c

Modified: head/sys/dev/ata/chipsets/ata-ahci.c
==============================================================================
--- head/sys/dev/ata/chipsets/ata-ahci.c	Wed Jul  8 06:00:18 2009	(r195438)
+++ head/sys/dev/ata/chipsets/ata-ahci.c	Wed Jul  8 06:00:21 2009	(r195439)
@@ -914,7 +914,7 @@ ata_ahci_dmainit(device_t dev)
     ata_dmainit(dev);
     /* note start and stop are not used here */
     ch->dma.setprd = ata_ahci_dmasetprd;
-    ch->dma.max_iosize = 8192 * DEV_BSIZE;
+    ch->dma.max_iosize = (ATA_AHCI_DMA_ENTRIES - 1) * PAGE_SIZE;
     if (ATA_INL(ctlr->r_res2, ATA_AHCI_CAP) & ATA_AHCI_CAP_64BIT)
 	ch->dma.max_address = BUS_SPACE_MAXADDR;
 }


More information about the svn-src-head mailing list