Lines Matching refs:idaws
193 dma64_t *idaws) in page_array_idal_create_words() argument
206 idaws[i] = virt_to_dma64(page_to_virt(pa->pa_page[i])); in page_array_idal_create_words()
209 idaws[i] = dma64_add(idaws[i], pa->pa_iova[i] & ~PAGE_MASK); in page_array_idal_create_words()
512 dma64_t *idaws; in get_guest_idal() local
514 int idal_len = idaw_nr * sizeof(*idaws); in get_guest_idal()
519 idaws = kcalloc(idaw_nr, sizeof(*idaws), GFP_DMA | GFP_KERNEL); in get_guest_idal()
520 if (!idaws) in get_guest_idal()
525 ret = vfio_dma_rw(vdev, dma32_to_u32(ccw->cda), idaws, idal_len, false); in get_guest_idal()
527 kfree(idaws); in get_guest_idal()
533 idaws[0] = u64_to_dma64(dma32_to_u32(ccw->cda)); in get_guest_idal()
535 idaws[i] = dma64_add(idaws[i - 1], idaw_size); in get_guest_idal()
536 idaws[i] = dma64_and(idaws[i], idaw_mask); in get_guest_idal()
539 idaws_f1 = (dma32_t *)idaws; in get_guest_idal()
548 return idaws; in get_guest_idal()
613 dma64_t *idaws; in ccwchain_fetch_ccw() local
625 idaws = get_guest_idal(ccw, cp, idaw_nr); in ccwchain_fetch_ccw()
626 if (IS_ERR(idaws)) { in ccwchain_fetch_ccw()
627 ret = PTR_ERR(idaws); in ccwchain_fetch_ccw()
645 idaws_f1 = (dma32_t *)idaws; in ccwchain_fetch_ccw()
648 pa->pa_iova[i] = dma64_to_u64(idaws[i]); in ccwchain_fetch_ccw()
661 ccw->cda = virt_to_dma32(idaws); in ccwchain_fetch_ccw()
665 page_array_idal_create_words(pa, idaws); in ccwchain_fetch_ccw()
672 kfree(idaws); in ccwchain_fetch_ccw()