ChangeSet 1.1083.2.5, 2003/08/28 11:05:43-07:00, [EMAIL PROTECTED]

[PATCH] USB: ftdi_sio - tidy up write bulk callback

On Tuesday 19 Aug 2003 21:57, Greg KH wrote:
> On Tue, Aug 19, 2003 at 05:14:28PM +0100, Ian Abbott wrote:
> > The attached patch (usb-2.4-ftdi_sio-wbcbfix.patch) reinstates
> > the port->open_count check in the ftdi_write_bulk_callback
> > function, and should be applied after my earlier patch
> > 'usb-2.4-ftdi_sio-wbcleanup.patch'.
>
> So you're just really getting rid of the "serial" pointer check,
> right? That's fine, but can you send me just one patch that does
> this instead?

The attached patch combines the changes, but apart from a tiny
reduction in code size, it doesn't achieve anything, but doesn't
seem to cause any harm either.

I'll leave it to your discretion whether or not to apply it.

As I mentioned previously, leaving the port->open_count check in (to
only schedule a soft interrupt when the port is open) seems to
prevent an oops, but I suppose it just makes the oops less likely
to happen rather than eliminate it entirely.


 drivers/usb/serial/ftdi_sio.c |   21 ++++++---------------
 1 files changed, 6 insertions(+), 15 deletions(-)


diff -Nru a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
--- a/drivers/usb/serial/ftdi_sio.c     Thu Aug 28 14:49:55 2003
+++ b/drivers/usb/serial/ftdi_sio.c     Thu Aug 28 14:49:55 2003
@@ -17,6 +17,9 @@
  * See http://ftdi-usb-sio.sourceforge.net for upto date testing info
  *     and extra documentation
  *
+ * (19/Aug/2003) Ian Abbott
+ *      Omitted some paranoid checks in write bulk callback that don't matter.
+ *
  * (05/Aug/2003) Ian Abbott
  *      Added VID/PID for ID TECH IDT1221U USB to RS-232 adapter.
  *      VID/PID provided by Steve Briggs.
@@ -1451,33 +1454,21 @@
 static void ftdi_write_bulk_callback (struct urb *urb)
 {
        struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
-       struct usb_serial *serial;
-
-       dbg("%s", __FUNCTION__);
 
        if (port_paranoia_check (port, __FUNCTION__))
                return;
        
+       dbg("%s - port %d", __FUNCTION__, port->number);
+       
        if (urb->status) {
                dbg("nonzero write bulk status received: %d", urb->status);
                return;
        }
 
-       serial = get_usb_serial (port, __FUNCTION__);
-       if (!serial) {
-               dbg("%s - bad serial pointer, exiting", __FUNCTION__);
-               return;
-       }
-
-       /* Have to check for validity of queueing up the tasks */
-       dbg("%s - port->open_count = %d", __FUNCTION__, port->open_count);
-
        if (port->open_count > 0){
                queue_task(&port->tqueue, &tq_immediate);
                mark_bh(IMMEDIATE_BH);
-       } 
-
-       return;
+       }
 } /* ftdi_write_bulk_callback */
 
 



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to