#15016: KDL (network related) when booting on a Hades Canyon NUC8.
----------------------------------------+----------------------------
Reporter: bga | Owner: nobody
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Drivers/Network/ipro1000 | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
----------------------------------------+----------------------------
Comment (by bga):
I switched back to a single card just because it goes further (and also, a
crash tends to be easier to track than a hang.
I added some debug and confirmed that the problem is simply that the data
the code is trying to access is either not initialized or has been deleted
under the hood. Basically the process seems to be something like this:
1 - Device is setup and added to gDevices. At this point, everything that
is needed is there.
2 - compat_open() is called for the device in question (by iterating
through gDevices and obtaining the device that was setup above).
3 - At this point, the required data is not there anymore. For one thing,
the spinlock it tries to acquire in iflib_if_init() has trash (confirmed
by trying to print the spinlock name and getting a segment violation).
My current theory is that at some point between 1 and 2, data is being
deleted/overwritten for some reason. The data in question must be
gDevices[n]->if_softc, which is supposed to be the driver state. Any
insights?
--
Ticket URL: <https://dev.haiku-os.org/ticket/15016#comment:37>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.