LCOV - code coverage report
Current view: top level - drivers/scsi - scsi_lib_dma.c (source / functions) Hit Total Coverage
Test: Real Lines: 0 11 0.0 %
Date: 2020-10-17 15:46:43 Functions: 0 2 0.0 %
Legend: Neither, QEMU, Real, Both Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // SPDX-License-Identifier: GPL-2.0
       2                 :            : /*
       3                 :            :  * SCSI library functions depending on DMA
       4                 :            :  */
       5                 :            : 
       6                 :            : #include <linux/blkdev.h>
       7                 :            : #include <linux/device.h>
       8                 :            : #include <linux/export.h>
       9                 :            : #include <linux/kernel.h>
      10                 :            : 
      11                 :            : #include <scsi/scsi.h>
      12                 :            : #include <scsi/scsi_cmnd.h>
      13                 :            : #include <scsi/scsi_device.h>
      14                 :            : #include <scsi/scsi_host.h>
      15                 :            : 
      16                 :            : /**
      17                 :            :  * scsi_dma_map - perform DMA mapping against command's sg lists
      18                 :            :  * @cmd:        scsi command
      19                 :            :  *
      20                 :            :  * Returns the number of sg lists actually used, zero if the sg lists
      21                 :            :  * is NULL, or -ENOMEM if the mapping failed.
      22                 :            :  */
      23                 :          0 : int scsi_dma_map(struct scsi_cmnd *cmd)
      24                 :            : {
      25                 :            :         int nseg = 0;
      26                 :            : 
      27                 :          0 :         if (scsi_sg_count(cmd)) {
      28                 :          0 :                 struct device *dev = cmd->device->host->dma_dev;
      29                 :            : 
      30                 :          0 :                 nseg = dma_map_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd),
      31                 :            :                                   cmd->sc_data_direction);
      32                 :          0 :                 if (unlikely(!nseg))
      33                 :            :                         return -ENOMEM;
      34                 :            :         }
      35                 :          0 :         return nseg;
      36                 :            : }
      37                 :            : EXPORT_SYMBOL(scsi_dma_map);
      38                 :            : 
      39                 :            : /**
      40                 :            :  * scsi_dma_unmap - unmap command's sg lists mapped by scsi_dma_map
      41                 :            :  * @cmd:        scsi command
      42                 :            :  */
      43                 :          0 : void scsi_dma_unmap(struct scsi_cmnd *cmd)
      44                 :            : {
      45                 :          0 :         if (scsi_sg_count(cmd)) {
      46                 :          0 :                 struct device *dev = cmd->device->host->dma_dev;
      47                 :            : 
      48                 :          0 :                 dma_unmap_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd),
      49                 :            :                              cmd->sc_data_direction);
      50                 :            :         }
      51                 :          0 : }
      52                 :            : EXPORT_SYMBOL(scsi_dma_unmap);
    

Generated by: LCOV version 1.14