Hello all,
Without getting into a ton of details we are using a Digi Neo on a Suse 10 SP1 box.
The driver builds and installs fine. With an application running and using the serial port everything moves along smoothly for a while (8+hours).
Eventually the application finds itself in an infinite loop. GDB reveals this to be a loop of attempted ::write 's to the digi fd. The return from the write is less-than 0.
By adding debug to the driver I’ve tracked the problem down to the following section:
In dgnc_tty.c, around line 2500, dgnc_tty_write(),
There is a if-check for if (!un || un->magic != DGNC_UNIT_MAGIC). This is failing and further investigation shows that un->magic is not = to DGNC_UNIT_MAGIC.
When this breaks the values are (hex):
un->magic: 730103
DGNC_UNIT_MAGIC:7C6DF104
Looking through the driver I see only 2 places where un->magic gets set, and it appears to get set to DGNC_UNIT_MAGIC in both places. Am I missing something or am I going to have to run qemu on the box and valgrind the driver to find out where this un->magic is getting changed.
Any help would be GREATLY appreciated.
Thanks all!