diff --git a/data/system/boot/Netscript b/data/system/boot/Netscript index 8d708d6a62..044aadc9ec 100644 --- a/data/system/boot/Netscript +++ b/data/system/boot/Netscript @@ -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. diff --git a/headers/private/net/net_stack_driver.h b/headers/private/net/net_stack_driver.h index 694da2be23..c585280dd7 100644 --- a/headers/private/net/net_stack_driver.h +++ b/headers/private/net/net_stack_driver.h @@ -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 { diff --git a/makehdimage b/makehdimage index 7c7a33c500..1c63bbfd40 100755 --- a/makehdimage +++ b/makehdimage @@ -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 diff --git a/src/add-ons/kernel/drivers/network/stack/net_stack_driver.c b/src/add-ons/kernel/drivers/network/stack/net_stack_driver.c index b194973446..cede9f5f9d 100644 --- a/src/add-ons/kernel/drivers/network/stack/net_stack_driver.c +++ b/src/add-ons/kernel/drivers/network/stack/net_stack_driver.c @@ -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; }; }