aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2007-07-16 16:17:25 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-19 20:46:05 -0400
commit0d46c0079a8eeed25105fa374f79862842ee80c1 (patch)
tree755e983112d21c9784f64a9ea48217af3f2d48b0 /drivers/usb
parent167a675a8caa249f8bc9053c02d711545d1f7662 (diff)
USB: Remove pointless conditional in drivers/usb/serial/io_ti.c::edge_shutdown()
Coverity scan found (CID: 1708) this in drivers/usb/serial/io_ti.c::edge_shutdown() : ... 2797 for (i=0; i < serial->num_ports; ++i) { 2798 edge_port = usb_get_serial_port_data(serial->port[i]); 2799 edge_remove_sysfs_attrs(edge_port->port); 2800 if (edge_port) { 2801 edge_buf_free(edge_port->ep_out_buf); 2802 kfree(edge_port); 2803 } 2804 usb_set_serial_port_data(serial->port[i], NULL); 2805 } ... It's complaining that we dereference 'edge_port' in line 2799 which makes the test of that pointer against NULL in 2800 pointless, since if edge_port was actually NULL we'd have crashed already before reaching line 2800. Reading the edge_open() function it seems to me that the pointer returned by usb_get_serial_port_data(serial->port[i]) and stored in 'edge_port' can never actually be NULL here, so the test is entirely superfluous (even if it could be NULL it would be pointless here, ignoring the then possible crash in that case, since both edge_buf_free() and kfree() can handle being passed NULL pointers. This patch removes the pointless conditional (and also makes a few tiny style corrections now that I was in the area anyway). Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/io_ti.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index 0d3903691e8c..b8670905bc3a 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -2794,16 +2794,14 @@ static void edge_shutdown (struct usb_serial *serial)
2794 2794
2795 dbg ("%s", __FUNCTION__); 2795 dbg ("%s", __FUNCTION__);
2796 2796
2797 for (i=0; i < serial->num_ports; ++i) { 2797 for (i = 0; i < serial->num_ports; ++i) {
2798 edge_port = usb_get_serial_port_data(serial->port[i]); 2798 edge_port = usb_get_serial_port_data(serial->port[i]);
2799 edge_remove_sysfs_attrs(edge_port->port); 2799 edge_remove_sysfs_attrs(edge_port->port);
2800 if (edge_port) { 2800 edge_buf_free(edge_port->ep_out_buf);
2801 edge_buf_free(edge_port->ep_out_buf); 2801 kfree(edge_port);
2802 kfree(edge_port);
2803 }
2804 usb_set_serial_port_data(serial->port[i], NULL); 2802 usb_set_serial_port_data(serial->port[i], NULL);
2805 } 2803 }
2806 kfree (usb_get_serial_data(serial)); 2804 kfree(usb_get_serial_data(serial));
2807 usb_set_serial_data(serial, NULL); 2805 usb_set_serial_data(serial, NULL);
2808} 2806}
2809 2807