Date: Wed, 20 May 2009 09:44:32 +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: r192433 - head/sys/dev/ata/chipsets Message-ID: <200905200944.n4K9iWl6026069@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Wed May 20 09:44:32 2009 New Revision: 192433 URL: http://svn.freebsd.org/changeset/base/192433 Log: Fix NULL dereference on Promise SX4 controllers, while executing commands that do not require data transfer (FLUSHCACHE). Tested by: Magnus Kling <klingfon@gmail.com> MFC after: 1 week Modified: head/sys/dev/ata/chipsets/ata-promise.c Modified: head/sys/dev/ata/chipsets/ata-promise.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-promise.c Wed May 20 08:32:25 2009 (r192432) +++ head/sys/dev/ata/chipsets/ata-promise.c Wed May 20 09:44:32 2009 (r192433) @@ -1054,7 +1054,7 @@ ata_promise_sx4_command(struct ata_reque device_t gparent = GRANDPARENT(request->dev); struct ata_pci_controller *ctlr = device_get_softc(gparent); struct ata_channel *ch = device_get_softc(request->parent); - struct ata_dma_prdentry *prd = request->dma->sg; + struct ata_dma_prdentry *prd; caddr_t window = rman_get_virtual(ctlr->r_res1); u_int32_t *wordp; int i, idx, length = 0; @@ -1098,6 +1098,7 @@ ata_promise_sx4_command(struct ata_reque case ATA_READ_DMA48: case ATA_WRITE_DMA: case ATA_WRITE_DMA48: + prd = request->dma->sg; wordp = (u_int32_t *) (window + (ch->unit * ATA_PDC_CHN_OFFSET) + ATA_PDC_HSG_OFFSET); i = idx = 0;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905200944.n4K9iWl6026069>