Messages in this thread | | | Date | Mon, 21 Mar 2011 17:40:32 +0000 | From | Jack Stone <> | Subject | Re: 'scheduling while atomic' during ppp connection on 2.6.37.1 and 2.6.38 |
| |
On 21/03/2011 11:27, Alan Cox wrote: > It's quite likely that was as broken before your change as after. The > locking in the code makes no sense so I flagged it up. The > nozomi ntty_write also has lots of oddness in it that really needs > sorting out. > > I suspect that the chunk > > if (!dc || !port) > return -ENODEV; > > mutex_lock(&port->tty_sem); > > if (unlikely(!port->port.count)) { > DBG1(" "); > goto exit; > } > > and > > /* notify card */ > if (unlikely(dc == NULL)) { > DBG1("No device context?"); > goto exit; > } > > and the mutex unlock are actually not doing anything > > On the write_room case I think that as the code already uses tty_port > helpers it needs to simply just return the correct value and not do all > the other checks. chars_in_buffer() likewise > > So in fact I don't think at this point the tty_sem needs replacing with > anything, but the various bogus port.count checks want ripping out. > >
Thank you very much for the explanation. I will do my best to respin the patch with appropriate changes.
Jack
| |