fluke_get_dma_residue() returns unsigned int with -1 as error code. This error cannot be caught. Fix this by changing the return type of the function to int and returning the error code, that was captured. Fixes: 55936779f496 ("staging: gpib: Add Fluke cda based cards GPIB driver") Signed-off-by: Everest K.C. <everestkc@xxxxxxxxxxxxxxxx> --- drivers/staging/gpib/eastwood/fluke_gpib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/gpib/eastwood/fluke_gpib.c b/drivers/staging/gpib/eastwood/fluke_gpib.c index f9f149db222d..54fdbef20d84 100644 --- a/drivers/staging/gpib/eastwood/fluke_gpib.c +++ b/drivers/staging/gpib/eastwood/fluke_gpib.c @@ -536,7 +536,7 @@ static int fluke_accel_write(gpib_board_t *board, uint8_t *buffer, size_t length return 0; } -static unsigned int fluke_get_dma_residue(struct dma_chan *chan, dma_cookie_t cookie) +static int fluke_get_dma_residue(struct dma_chan *chan, dma_cookie_t cookie) { struct dma_tx_state state; int result; @@ -544,7 +544,7 @@ static unsigned int fluke_get_dma_residue(struct dma_chan *chan, dma_cookie_t co result = dmaengine_pause(chan); if (result < 0) { pr_err("fluke_gpib: dma pause failed?\n"); - return -1; + return result; } dmaengine_tx_status(chan, cookie, &state); // hardware doesn't support resume, so dont call this -- 2.43.0