Lines Matching refs:ref
311 struct dma_debug_entry *ref, in __hash_bucket_find() argument
318 if (!match(ref, entry)) in __hash_bucket_find()
333 entry->size == ref->size ? ++match_lvl : 0; in __hash_bucket_find()
334 entry->type == ref->type ? ++match_lvl : 0; in __hash_bucket_find()
335 entry->direction == ref->direction ? ++match_lvl : 0; in __hash_bucket_find()
336 entry->sg_call_ents == ref->sg_call_ents ? ++match_lvl : 0; in __hash_bucket_find()
361 struct dma_debug_entry *ref) in bucket_find_exact() argument
363 return __hash_bucket_find(bucket, ref, exact_match); in bucket_find_exact()
367 struct dma_debug_entry *ref, in bucket_find_contain() argument
371 unsigned int max_range = dma_get_max_seg_size(ref->dev); in bucket_find_contain()
372 struct dma_debug_entry *entry, index = *ref; in bucket_find_contain()
376 entry = __hash_bucket_find(*bucket, ref, containing_match); in bucket_find_contain()
1073 static void check_unmap(struct dma_debug_entry *ref) in check_unmap() argument
1079 bucket = get_hash_bucket(ref, &flags); in check_unmap()
1080 entry = bucket_find_exact(bucket, ref); in check_unmap()
1086 if (dma_mapping_error(ref->dev, ref->dev_addr)) { in check_unmap()
1087 err_printk(ref->dev, NULL, in check_unmap()
1091 err_printk(ref->dev, NULL, in check_unmap()
1095 ref->dev_addr, ref->size); in check_unmap()
1100 if (ref->size != entry->size) { in check_unmap()
1101 err_printk(ref->dev, entry, "DMA-API: device driver frees " in check_unmap()
1105 ref->dev_addr, entry->size, ref->size); in check_unmap()
1108 if (ref->type != entry->type) { in check_unmap()
1109 err_printk(ref->dev, entry, "DMA-API: device driver frees " in check_unmap()
1113 ref->dev_addr, ref->size, in check_unmap()
1114 type2name[entry->type], type2name[ref->type]); in check_unmap()
1116 (phys_addr(ref) != phys_addr(entry))) { in check_unmap()
1117 err_printk(ref->dev, entry, "DMA-API: device driver frees " in check_unmap()
1122 ref->dev_addr, ref->size, in check_unmap()
1124 phys_addr(ref)); in check_unmap()
1127 if (ref->sg_call_ents && ref->type == dma_debug_sg && in check_unmap()
1128 ref->sg_call_ents != entry->sg_call_ents) { in check_unmap()
1129 err_printk(ref->dev, entry, "DMA-API: device driver frees " in check_unmap()
1132 entry->sg_call_ents, ref->sg_call_ents); in check_unmap()
1139 if (ref->direction != entry->direction) { in check_unmap()
1140 err_printk(ref->dev, entry, "DMA-API: device driver frees " in check_unmap()
1144 ref->dev_addr, ref->size, in check_unmap()
1146 dir2name[ref->direction]); in check_unmap()
1155 err_printk(ref->dev, entry, in check_unmap()
1159 ref->dev_addr, ref->size, in check_unmap()
1215 struct dma_debug_entry *ref, in check_sync() argument
1222 bucket = get_hash_bucket(ref, &flags); in check_sync()
1224 entry = bucket_find_contain(&bucket, ref, &flags); in check_sync()
1230 (unsigned long long)ref->dev_addr, ref->size); in check_sync()
1234 if (ref->size > entry->size) { in check_sync()
1241 ref->size); in check_sync()
1247 if (ref->direction != entry->direction) { in check_sync()
1252 (unsigned long long)ref->dev_addr, entry->size, in check_sync()
1254 dir2name[ref->direction]); in check_sync()
1258 !(ref->direction == DMA_TO_DEVICE)) in check_sync()
1263 (unsigned long long)ref->dev_addr, entry->size, in check_sync()
1265 dir2name[ref->direction]); in check_sync()
1268 !(ref->direction == DMA_FROM_DEVICE)) in check_sync()
1273 (unsigned long long)ref->dev_addr, entry->size, in check_sync()
1275 dir2name[ref->direction]); in check_sync()
1277 if (ref->sg_call_ents && ref->type == dma_debug_sg && in check_sync()
1278 ref->sg_call_ents != entry->sg_call_ents) { in check_sync()
1279 err_printk(ref->dev, entry, "DMA-API: device driver syncs " in check_sync()
1282 entry->sg_call_ents, ref->sg_call_ents); in check_sync()
1357 struct dma_debug_entry ref; in debug_dma_mapping_error() local
1365 ref.dev = dev; in debug_dma_mapping_error()
1366 ref.dev_addr = dma_addr; in debug_dma_mapping_error()
1367 bucket = get_hash_bucket(&ref, &flags); in debug_dma_mapping_error()
1370 if (!exact_match(&ref, entry)) in debug_dma_mapping_error()
1396 struct dma_debug_entry ref = { in debug_dma_unmap_page() local
1408 ref.type = dma_debug_single; in debug_dma_unmap_page()
1410 check_unmap(&ref); in debug_dma_unmap_page()
1453 struct dma_debug_entry *ref) in get_nr_mapped_entries() argument
1460 bucket = get_hash_bucket(ref, &flags); in get_nr_mapped_entries()
1461 entry = bucket_find_exact(bucket, ref); in get_nr_mapped_entries()
1482 struct dma_debug_entry ref = { in debug_dma_unmap_sg() local
1497 mapped_ents = get_nr_mapped_entries(dev, &ref); in debug_dma_unmap_sg()
1499 check_unmap(&ref); in debug_dma_unmap_sg()
1542 struct dma_debug_entry ref = { in debug_dma_free_coherent() local
1556 ref.pfn = vmalloc_to_pfn(virt); in debug_dma_free_coherent()
1558 ref.pfn = page_to_pfn(virt_to_page(virt)); in debug_dma_free_coherent()
1563 check_unmap(&ref); in debug_dma_free_coherent()
1595 struct dma_debug_entry ref = { in debug_dma_unmap_resource() local
1606 check_unmap(&ref); in debug_dma_unmap_resource()
1613 struct dma_debug_entry ref; in debug_dma_sync_single_for_cpu() local
1618 ref.type = dma_debug_single; in debug_dma_sync_single_for_cpu()
1619 ref.dev = dev; in debug_dma_sync_single_for_cpu()
1620 ref.dev_addr = dma_handle; in debug_dma_sync_single_for_cpu()
1621 ref.size = size; in debug_dma_sync_single_for_cpu()
1622 ref.direction = direction; in debug_dma_sync_single_for_cpu()
1623 ref.sg_call_ents = 0; in debug_dma_sync_single_for_cpu()
1625 check_sync(dev, &ref, true); in debug_dma_sync_single_for_cpu()
1633 struct dma_debug_entry ref; in debug_dma_sync_single_for_device() local
1638 ref.type = dma_debug_single; in debug_dma_sync_single_for_device()
1639 ref.dev = dev; in debug_dma_sync_single_for_device()
1640 ref.dev_addr = dma_handle; in debug_dma_sync_single_for_device()
1641 ref.size = size; in debug_dma_sync_single_for_device()
1642 ref.direction = direction; in debug_dma_sync_single_for_device()
1643 ref.sg_call_ents = 0; in debug_dma_sync_single_for_device()
1645 check_sync(dev, &ref, false); in debug_dma_sync_single_for_device()
1654 struct dma_debug_entry ref; in debug_dma_sync_single_range_for_cpu() local
1659 ref.type = dma_debug_single; in debug_dma_sync_single_range_for_cpu()
1660 ref.dev = dev; in debug_dma_sync_single_range_for_cpu()
1661 ref.dev_addr = dma_handle; in debug_dma_sync_single_range_for_cpu()
1662 ref.size = offset + size; in debug_dma_sync_single_range_for_cpu()
1663 ref.direction = direction; in debug_dma_sync_single_range_for_cpu()
1664 ref.sg_call_ents = 0; in debug_dma_sync_single_range_for_cpu()
1666 check_sync(dev, &ref, true); in debug_dma_sync_single_range_for_cpu()
1675 struct dma_debug_entry ref; in debug_dma_sync_single_range_for_device() local
1680 ref.type = dma_debug_single; in debug_dma_sync_single_range_for_device()
1681 ref.dev = dev; in debug_dma_sync_single_range_for_device()
1682 ref.dev_addr = dma_handle; in debug_dma_sync_single_range_for_device()
1683 ref.size = offset + size; in debug_dma_sync_single_range_for_device()
1684 ref.direction = direction; in debug_dma_sync_single_range_for_device()
1685 ref.sg_call_ents = 0; in debug_dma_sync_single_range_for_device()
1687 check_sync(dev, &ref, false); in debug_dma_sync_single_range_for_device()
1702 struct dma_debug_entry ref = { in debug_dma_sync_sg_for_cpu() local
1714 mapped_ents = get_nr_mapped_entries(dev, &ref); in debug_dma_sync_sg_for_cpu()
1719 check_sync(dev, &ref, true); in debug_dma_sync_sg_for_cpu()
1735 struct dma_debug_entry ref = { in debug_dma_sync_sg_for_device() local
1746 mapped_ents = get_nr_mapped_entries(dev, &ref); in debug_dma_sync_sg_for_device()
1751 check_sync(dev, &ref, false); in debug_dma_sync_sg_for_device()