Mercurial > illumos > illumos-gate
changeset 11630:716218a57237
6763817 ddi_dma_addr_bind_handle() failed with status DDI_DMA_NOMAPPING
author | andrew.rutz@sun.com |
---|---|
date | Fri, 05 Feb 2010 18:09:46 -0500 |
parents | b9938be70bc0 |
children | 4ab78f416756 |
files | usr/src/uts/sun4v/io/px/px_lib4v.c |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/sun4v/io/px/px_lib4v.c Fri Feb 05 15:01:43 2010 -0800 +++ b/usr/src/uts/sun4v/io/px/px_lib4v.c Fri Feb 05 18:09:46 2010 -0500 @@ -571,6 +571,13 @@ DBG(DBG_LIB_DMA, dip, "px_lib_iommu_getbypass: dip 0x%p ra 0x%llx " "attr 0x%llx\n", dip, ra, attr); + /* + * If HV VPCI version is 1.1 and higher, pass BDF, phantom function, + * and relaxed ordering attributes. Otherwise, pass only read or write + * attribute. + */ + if (px_vpci_min_ver == PX_HSVC_MINOR_VER_0) + attr &= PCI_MAP_ATTR_READ | PCI_MAP_ATTR_WRITE; if ((ret = hvio_iommu_getbypass(DIP_TO_HANDLE(dip), ra, attr, io_addr_p)) != H_EOK) {