This should now actually fix the recursive lookup of the net_stack_driver. We must only load the networking core once.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12363 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2005-04-13 14:19:20 +00:00
parent 718b5114e0
commit 4ce3301a57
4 changed files with 16 additions and 20 deletions

View File

@ -1,5 +1,5 @@
# This loads the net_stack_driver that loads and provides the interface to the networking core.
#ls /dev/net_stack
#ls /dev/net
# That is a static version of the network interface setup.
# You have to edit it to match your driver/ip/subnet.

View File

@ -11,12 +11,7 @@
// Forward declaration
struct sockaddr;
#ifndef __HAIKU__
#define NET_STACK_DRIVER_DEV "net/stack"
#else
#define NET_STACK_DRIVER_DEV "net_stack/stack"
#endif
#define NET_STACK_DRIVER_PATH "/dev/" ## NET_STACK_DRIVER_DEV
enum {

View File

@ -215,7 +215,6 @@ $mkdir -p beos/system/add-ons/kernel/drivers/dev/disk/scsi
$mkdir -p beos/system/add-ons/kernel/drivers/dev/graphics
$mkdir -p beos/system/add-ons/kernel/drivers/dev/input
$mkdir -p beos/system/add-ons/kernel/drivers/dev/misc
$mkdir -p beos/system/add-ons/kernel/drivers/dev/net_stack
$mkdir -p beos/system/add-ons/kernel/drivers/dev/net
$mkdir -p beos/system/add-ons/kernel/file_systems
$mkdir -p beos/system/add-ons/kernel/console
@ -389,7 +388,7 @@ for f in drivers/dev/dprintf drivers/dev/keyboard drivers/dev/null \
drivers/dev/net/bcm570x drivers/dev/net/ipro1000 \
drivers/dev/net/rtl8139 drivers/dev/net/rtl8169 \
drivers/dev/net/sis900 drivers/dev/net/via-rhine \
drivers/dev/net/wb840 drivers/dev/net_stack/net_stack_driver; do
drivers/dev/net/wb840 drivers/dev/net/net_stack_driver; do
relName=$(echo $f | sed -e s@drivers/dev/@@)
linkName=bin/$(basename $f)
while [ $relName != . ]; do

View File

@ -188,25 +188,26 @@ _EXPORT status_t init_hardware(void)
}
/* init_driver()
* called every time we're loaded.
*/
_EXPORT status_t init_driver(void)
{
int rv = 0;
rv = get_module(NET_CORE_MODULE_NAME, (module_info **) &core);
if (rv < 0) {
TRACE((LOGID ERR "init_driver: Argh, can't load " NET_CORE_MODULE_NAME " module: %d\n", rv));
return rv;
// only get the core module if we don't have it loaded already
if (!core) {
int rv = 0;
rv = get_module(NET_CORE_MODULE_NAME, (module_info **) &core);
if (rv < 0) {
TRACE((LOGID ERR "init_driver: Argh, can't load " NET_CORE_MODULE_NAME " module: %d\n", rv));
return rv;
}
TRACE((LOGID "init_driver: built %s %s, core = %p\n", __DATE__, __TIME__, core));
// start the network stack!
core->start();
}
TRACE((LOGID "init_driver: built %s %s, core = %p\n", __DATE__, __TIME__, core));
// start the network stack!
core->start();
return B_OK;
}
@ -225,6 +226,7 @@ _EXPORT void uninit_driver(void)
core->stop();
#endif
put_module(NET_CORE_MODULE_NAME);
core = NULL;
};
}