函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:kernel\dma\debug.c Create Date:2022-07-27 11:35:20
首页 Copyright©Brick

1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
void debug_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
                  int nelems, int direction)
{
    struct scatterlist *s;
    int mapped_ents = 0, i;
 
    if (unlikely(dma_debug_disabled()))
        return;
 
    for_each_sg(sg, s, nelems, i) {
 
        struct dma_debug_entry ref = {
            .type           = dma_debug_sg,
            .dev            = dev,
            .pfn        = page_to_pfn(sg_page(s)),
            .offset     = s->offset,
            .dev_addr       = sg_dma_address(s),
            .size           = sg_dma_len(s),
            .direction      = direction,
            .sg_call_ents   = nelems,
        };
        if (!i)
            mapped_ents = get_nr_mapped_entries(dev, &ref);
 
        if (i >= mapped_ents)
            break;
 
        check_sync(dev, &ref, false);
    }
}