Print this page
5255 uts shouldn't open-code ISP2

*** 999,1009 **** /* * The cache attributes are mutually exclusive. Any combination of * the attributes leads to a failure. */ uint_t cache_attr = IOMEM_CACHE_ATTR(flags); ! if ((cache_attr != 0) && ((cache_attr & (cache_attr - 1)) != 0)) return (B_FALSE); /* * On the sparc architecture, only IOMEM_DATA_CACHED is meaningful, * but others lead to a failure. --- 999,1009 ---- /* * The cache attributes are mutually exclusive. Any combination of * the attributes leads to a failure. */ uint_t cache_attr = IOMEM_CACHE_ATTR(flags); ! if ((cache_attr != 0) && !ISP2(cache_attr)) return (B_FALSE); /* * On the sparc architecture, only IOMEM_DATA_CACHED is meaningful, * but others lead to a failure.
*** 1141,1158 **** int r; /* * Make sure that the initial value is sane */ ! if (i & (i - 1)) return (0); if (i == 0) i = (stream) ? 4 : 1; r = ddi_ctlops(a, a, DDI_CTLOPS_IOMIN, (void *)(uintptr_t)stream, (void *)&i); ! if (r != DDI_SUCCESS || (i & (i - 1))) return (0); return (i); } int --- 1141,1158 ---- int r; /* * Make sure that the initial value is sane */ ! if (!ISP2(i)) return (0); if (i == 0) i = (stream) ? 4 : 1; r = ddi_ctlops(a, a, DDI_CTLOPS_IOMIN, (void *)(uintptr_t)stream, (void *)&i); ! if (r != DDI_SUCCESS || !ISP2(i)) return (0); return (i); } int
*** 1175,1186 **** if (length == 0 || kaddrp == NULL || attr == NULL) { return (DDI_FAILURE); } if (attr->dma_attr_minxfer == 0 || attr->dma_attr_align == 0 || ! (attr->dma_attr_align & (attr->dma_attr_align - 1)) || ! (attr->dma_attr_minxfer & (attr->dma_attr_minxfer - 1))) { return (DDI_FAILURE); } /* * check if a streaming sequential xfer is requested. --- 1175,1185 ---- if (length == 0 || kaddrp == NULL || attr == NULL) { return (DDI_FAILURE); } if (attr->dma_attr_minxfer == 0 || attr->dma_attr_align == 0 || ! !ISP2(attr->dma_attr_align) || !ISP2(attr->dma_attr_minxfer)) { return (DDI_FAILURE); } /* * check if a streaming sequential xfer is requested.