This one’s left me totally groping in the dark - any useful hints or ideas
will earn my everlasting gratitude!
Setup: QNX 6.1 on x86 with an el900 Ethernet adapter (*)
Configuration: An ip-ip intermediate driver is loaded, processing some
packets, passing others through without processing.
With most traffic, everything works fine.
With a specific traffic scenario, the driver causes io-net to die, even
though the driver does not process any of the packets!
gdb on io-net shows a segfault in “0xb03750da in resched() from
/x86/lib/dll/npm-tcpip.so” with NO traceback.
io-net does not crash with the driver unloaded.
By “passing packets through” I mean:
the driver’s rx_up routine does ion->tx_up() followed by
ion->tx_done() if tx_up() returned 0.
the driver’s rx_down routine does ion->tx_down()
The packets in question a fairly small tcp/ip packets. Nothing special
about them (as far as I can see…)
More information (much more!) available upon request…
(*) The problem also occurs on an RPX-Lite powerpc.