@ -266,6 +266,12 @@ static void mtip_async_complete(struct mtip_port *port,
" Command tag %d failed due to TFE \n " , tag ) ;
}
/* Unmap the DMA scatter list entries */
dma_unmap_sg ( & dd - > pdev - > dev ,
command - > sg ,
command - > scatter_ents ,
command - > direction ) ;
/* Upper layer callback */
if ( likely ( command - > async_callback ) )
command - > async_callback ( command - > async_data , cb_status ) ;
@ -273,12 +279,6 @@ static void mtip_async_complete(struct mtip_port *port,
command - > async_callback = NULL ;
command - > comp_func = NULL ;
/* Unmap the DMA scatter list entries */
dma_unmap_sg ( & dd - > pdev - > dev ,
command - > sg ,
command - > scatter_ents ,
command - > direction ) ;
/* Clear the allocated and active bits for the command */
atomic_set ( & port - > commands [ tag ] . active , 0 ) ;
release_slot ( port , tag ) ;
@ -709,6 +709,12 @@ static void mtip_timeout_function(unsigned long int data)
*/
writel ( 1 < < bit , port - > completed [ group ] ) ;
/* Unmap the DMA scatter list entries */
dma_unmap_sg ( & port - > dd - > pdev - > dev ,
command - > sg ,
command - > scatter_ents ,
command - > direction ) ;
/* Call the async completion callback. */
if ( likely ( command - > async_callback ) )
command - > async_callback ( command - > async_data ,
@ -716,12 +722,6 @@ static void mtip_timeout_function(unsigned long int data)
command - > async_callback = NULL ;
command - > comp_func = NULL ;
/* Unmap the DMA scatter list entries */
dma_unmap_sg ( & port - > dd - > pdev - > dev ,
command - > sg ,
command - > scatter_ents ,
command - > direction ) ;
/*
* Clear the allocated bit and active tag for the
* command .