[lkml]   [2009]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRE: PROBLEM: kernel oops with g_serial USB gadget on 2.6.30

    On Tuesday, June 23, 2009 9:23 AM, David Brownell wrote:

    > > > Like, oh, changing a spinlock to a mutex.   You might change the
    > > > low_latency setting and review how that's now supposed to behave.
    > >
    > > In in gs_open() function in drivers/usb/gadget/u_serial.c, after the
    > > line 780 I've added:
    > >
    > > tty->low_latency = 1;
    > That's already how it's set. Try instead *REMOVING* the line
    > which sets that flag.

    My fault. I didn't notice that a few lines lower the low_latency flag is
    alredy set and I thought I should set it. After removing that, g_serial
    started working. :) Thanks a lot.

    I noticed that there is also a comment:
    /* low_latency means ldiscs work in tasklet context, without
    * needing a workqueue schedule ... easier to keep up.

    So in low latency mode calls are made from a tasklet. This is not true in
    my case, as the S3C OTG UDC driver does all its job in interrupts. This
    way also a (usb) packet_done callback is done from an interrupt. I expect
    that g_serial driver interacts with tty layer in that packet_done callback,
    so this is the source of the problems. I noticed that some other UDC
    drivers also does all its job from an interrupt, so they also might be
    affected. How this bug should be properly resolved?

    Best regards
    Marek Szyprowski
    Samsung Poland R&D Center

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2009-06-23 10:41    [W:0.021 / U:2.444 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site