Date: Wed, 8 Jul 2009 06:00:21 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r195439 - head/sys/dev/ata/chipsets Message-ID: <200907080600.n6860L9D040261@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907080600.n6860L9D040261>