The dev_dbg() call dereferences "urb" but it was already freed on the previous line. Move the debug output earlier in the function. Fixes: 984f68683298 ("USB: serial: io_edgeport.c: remove dbg() usage") Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- drivers/usb/serial/io_edgeport.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c index c7d6b5e3f898..b8f1bd41fb24 100644 --- a/drivers/usb/serial/io_edgeport.c +++ b/drivers/usb/serial/io_edgeport.c @@ -775,7 +775,10 @@ static void edge_bulk_out_cmd_callback(struct urb *urb) atomic_dec(&CmdUrbs); dev_dbg(&urb->dev->dev, "%s - FREE URB %p (outstanding %d)\n", __func__, urb, atomic_read(&CmdUrbs)); - + if (status) + dev_dbg(&urb->dev->dev, + "%s - nonzero write bulk status received: %d\n", + __func__, status); /* clean up the transfer buffer */ kfree(urb->transfer_buffer); @@ -783,12 +786,8 @@ static void edge_bulk_out_cmd_callback(struct urb *urb) /* Free the command urb */ usb_free_urb(urb); - if (status) { - dev_dbg(&urb->dev->dev, - "%s - nonzero write bulk status received: %d\n", - __func__, status); + if (status) return; - } /* tell the tty driver that something has changed */ if (edge_port->open) -- 2.45.2