Am Donnerstag 19 Juli 2007 schrieb [EMAIL PROTECTED]:
> OOps ;-)
>
> 2 missing characters...
>
> Now it compile without warning or error
>
+ /* shutdown our urbs */
+ dbg("%s - shutting down urbs", __FUNCTION__);
+ result = usb_unlink_urb(port->write_urb);
+ if (result)
+ dbg("%s - usb_unlink_urb (write_urb)"
+ " failed with reason: %d", __FUNCTION__, result);
+
+ result = usb_unlink_urb(port->read_urb);
+ if (result)
+ dbg("%s - usb_unlink_urb (read_urb) "
+ "failed with reason: %d", __FUNCTION__, result);
+
+ result = usb_unlink_urb(port->interrupt_in_urb);
+ if (result)
+ dbg("%s - usb_unlink_urb (voiderrupt_in_urb)"
+ " failed with reason: %d", __FUNCTION__, result);
You must use usb_kill_urb() here.
+ serial = port->serial;
+ if (!serial)
+ return;
+ iuu_led(port, 0, 0, 0xF000, 0xFF);
+ dbg("%s - port %d", __FUNCTION__, port->number);
+
+ iuu_uart_off(port);
+ if (serial->dev) {
If serial->dev can be NULL, you must not use iuu_led unconditionally.
+static int iuu_uart_on(struct usb_serial_port *port)
+{
+ int status;
+ u8 *buf;
+
+ buf = kmalloc(sizeof(u8) * 4, GFP_KERNEL);
A simple 4 will do.
+ tmp = kmalloc(sizeof(struct iuu_buffers), GFP_KERNEL);
+ if (!tmp)
+ return -ENOMEM;
+
+ /* u_int8_t datain[256]; */
+
+ if (iuu_led(port, 0xF000, 0, 0, 0xFF) < 0) {
+ kfree(tmp);
+ return -EIO;
+ }
+
+ for (i = 0; i < 2; i++) {
+ status = bulk_immediate(port, &rxcmd, 1);
+ if (status != IUU_OPERATION_OK) {
+ dbg("%s - uart_flush_write error", __FUNCTION__);
+ return status;
+ }
Memory leak in error case
+ if (tmp->len > 0) {
+ /* test buffer overflow */
+ if (curpos + tmp->len > 256) {
+ kfree(tmp);
+ return -1;
What is -1 supposed to mean?
+ if (priv->write_busy)
+ return -1;
+
+ tmp = kmalloc(sizeof(struct iuu_buffers), GFP_KERNEL);
+ if (!tmp)
+ return -EIO;
+
+ priv->write_busy = 1;
This is a race condition. More than one task can succeed the test and proceed.
Regards
Oliver
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel