drivers/usb/serial/io_edgeport.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
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@vger.kernel.org
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
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
On Thu, Oct 31, 2024 at 09:59:10AM +0300, Dan Carpenter wrote: > The dev_dbg() call dereferences "urb" but it was already freed on the > previous line. Move the debug output earlier in the function. Thanks for catching this, but please use a temporary variable for the struct device pointer instead of changing the flow. Also make sure to include the driver name in the patch summary prefix (i.e. "USB: serial: io_edgeport: ..."): > Fixes: 984f68683298 ("USB: serial: io_edgeport.c: remove dbg() usage") > Cc: stable@vger.kernel.org > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Johan
On Thu, Oct 31, 2024 at 10:07:42AM +0100, Johan Hovold wrote: > On Thu, Oct 31, 2024 at 09:59:10AM +0300, Dan Carpenter wrote: > > The dev_dbg() call dereferences "urb" but it was already freed on the > > previous line. Move the debug output earlier in the function. > > Thanks for catching this, but please use a temporary variable for the > struct device pointer instead of changing the flow. > Why? The output is the same either way and this way is cleaner code. > Also make sure to include the driver name in the patch summary prefix > (i.e. "USB: serial: io_edgeport: ..."): Sure. regards, dan carpenter
On Thu, Oct 31, 2024 at 12:35:31PM +0300, Dan Carpenter wrote: > On Thu, Oct 31, 2024 at 10:07:42AM +0100, Johan Hovold wrote: > > On Thu, Oct 31, 2024 at 09:59:10AM +0300, Dan Carpenter wrote: > > > The dev_dbg() call dereferences "urb" but it was already freed on the > > > previous line. Move the debug output earlier in the function. > > > > Thanks for catching this, but please use a temporary variable for the > > struct device pointer instead of changing the flow. > > > > Why? The output is the same either way and this way is cleaner code. > Nah, you're right. A temporary variable is nicer. It avoids having two if statements. regards, dan carpenter
On Thu, Oct 31, 2024 at 12:39:10PM +0300, Dan Carpenter wrote: > On Thu, Oct 31, 2024 at 12:35:31PM +0300, Dan Carpenter wrote: > > On Thu, Oct 31, 2024 at 10:07:42AM +0100, Johan Hovold wrote: > > > On Thu, Oct 31, 2024 at 09:59:10AM +0300, Dan Carpenter wrote: > > > > The dev_dbg() call dereferences "urb" but it was already freed on the > > > > previous line. Move the debug output earlier in the function. > > > > > > Thanks for catching this, but please use a temporary variable for the > > > struct device pointer instead of changing the flow. > > > > Why? The output is the same either way and this way is cleaner code. > > Nah, you're right. A temporary variable is nicer. It avoids having two if > statements. Yeah, and the debug printk belongs with the return. v2 now applied, thanks. Johan
© 2016 - 2024 Red Hat, Inc.