diff options
author | kan <kan@FreeBSD.org> | 2014-09-27 16:50:24 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2014-09-27 16:50:24 +0000 |
commit | 93ddb8841e84364fce75b50c13797d9cb580736b (patch) | |
tree | 7ac0c1315402f4781f2cc36827b575b4470d85a0 /sys/dev/firewire | |
parent | acfad8859d99e436df147d4a7b3da9013e513d9b (diff) | |
download | FreeBSD-src-93ddb8841e84364fce75b50c13797d9cb580736b.zip FreeBSD-src-93ddb8841e84364fce75b50c13797d9cb580736b.tar.gz |
Do not pass whole descriptor block size as align to fwdma_malloc_multiseg
Do not pass wrong alignment value to fwdma_malloc_multiseg and ultimately
to contigalloc. In addition to being wrong, this causes insta-panic in
certain cases due to safety assertion - the alignment is required to be
the power of two and the value we calculate here seldom is.
MFC after: 1 month
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r-- | sys/dev/firewire/fwohci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/firewire/fwohci.c b/sys/dev/firewire/fwohci.c index e0d638d..00a54e2 100644 --- a/sys/dev/firewire/fwohci.c +++ b/sys/dev/firewire/fwohci.c @@ -1253,7 +1253,7 @@ fwohci_db_init(struct fwohci_softc *sc, struct fwohci_dbch *dbch) } #define DB_SIZE(x) (sizeof(struct fwohcidb) * (x)->ndesc) - dbch->am = fwdma_malloc_multiseg(&sc->fc, DB_SIZE(dbch), + dbch->am = fwdma_malloc_multiseg(&sc->fc, sizeof(struct fwohcidb), DB_SIZE(dbch), dbch->ndb, BUS_DMA_WAITOK); if (dbch->am == NULL) { printf("fwohci_db_init: fwdma_malloc_multiseg failed\n"); |