On Wed, Feb 07, 2007 at 04:49:13PM +0530, endeavor john wrote: > Hello All , > We were trying to write virtual serial port driver which sends data over > ethernet. For what kind of hardware? I'm looking to do much the same thing and it would be nice to not have to duplicate work :) > Driver has a threads to recieve messages from peer(sock_recvmsg) which will > populate the ldiscs recieve buffer , so if when application calls the > drivers read method data will be available > when the driver write method is invoked sock_write is used to send packets > over ethernet > This driver is tested with normal application reading data from the a file > and sending over ethernet but when we start ppp over the device > pppd "/dev/virtualdrvrport(0) " -detach debug > ppp hangs after pinging few packets with error > *sleeping function called from invalid context at net/core/sock.c* > *in_atomic():1,irqs_diabled():0* > *__might_sleep +0x8a/0x94* > *tcp_sendmsg + 0x12/0x9d6* > ** > Does any one know what could be the reason? Do you have a pointer to your driver anywhere? Odds are you are calling the tty layer from the wrong context. thanks, greg k-h -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/