IPX fixes for 2.2.2pre/2.2.1-ac

Andrzej Krzysztofowicz (ankry@green.mif.pg.gda.pl)
Mon, 22 Feb 1999 19:43:20 +0100 (CET)


Hi,
I enclose some patches against 2.2.2pre5 (or 2.2.1-ac6 as well) for
non-TCP/IP network configuration:

1. Fixed Oopses caused by non-initialized network device queues
(kernel hangs during "ifconfig ... up" or "rmmod eth0").
2. Fixed "unresolved symbols" for ipx, af_spx, af_packet when CONFIG_INET=n
3. Fixed compilation of af_spx as module when CONFIG_IPX=y (CONFIG_SPX=m)

First two patches doesn't change anything when CONFIG_INET=y.

Andrzej

***************** PATCH 1 *******************************************
--- linux/drivers/block/genhd.c.old Sat Feb 20 21:07:21 1999
+++ linux/drivers/block/genhd.c Sat Feb 20 21:08:35 1999
@@ -1333,7 +1333,7 @@
#ifdef CONFIG_SCSI
scsi_dev_init();
#endif
-#ifdef CONFIG_INET
+#if defined(CONFIG_INET) || defined(CONFIG_IPX) || defined(CONFIG_IPX_MODULE)
net_dev_init();
#endif
#ifdef CONFIG_VT
***************** PATCH 2 *******************************************
--- linux/net/netsyms.c.old Fri Feb 19 23:14:17 1999
+++ linux/net/netsyms.c Sun Feb 21 22:05:53 1999
@@ -216,12 +216,21 @@
EXPORT_SYMBOL(br_ioctl);
#endif

+#ifdef CONFIG_NET
+EXPORT_SYMBOL(init_etherdev); /* used by ipx */
+EXPORT_SYMBOL(__release_sock); /* used by af_spx */
+EXPORT_SYMBOL(dev_set_allmulti); /* used by af_packet */
+EXPORT_SYMBOL(dev_set_promiscuity); /* used by af_packet */
+EXPORT_SYMBOL(sklist_remove_socket); /* used by af_packet */
+EXPORT_SYMBOL(rtnl_wait); /* used by af_packet */
+EXPORT_SYMBOL(rtnl_rlockct); /* used by af_packet */
+#endif
+
#ifdef CONFIG_INET
/* Internet layer registration */
EXPORT_SYMBOL(inet_add_protocol);
EXPORT_SYMBOL(inet_del_protocol);
EXPORT_SYMBOL(rarp_ioctl_hook);
-EXPORT_SYMBOL(init_etherdev);
EXPORT_SYMBOL(ip_route_output);
EXPORT_SYMBOL(icmp_send);
EXPORT_SYMBOL(ip_options_compile);
@@ -237,7 +246,6 @@
EXPORT_SYMBOL(__ip_finish_output);
EXPORT_SYMBOL(inet_dgram_ops);
EXPORT_SYMBOL(ip_cmsg_recv);
-EXPORT_SYMBOL(__release_sock);

/* needed for ip_gre -cw */
EXPORT_SYMBOL(ip_statistics);
@@ -369,11 +377,6 @@
EXPORT_SYMBOL(neigh_dump_info);
#endif

-EXPORT_SYMBOL(dev_set_allmulti);
-EXPORT_SYMBOL(dev_set_promiscuity);
-EXPORT_SYMBOL(sklist_remove_socket);
-EXPORT_SYMBOL(rtnl_wait);
-EXPORT_SYMBOL(rtnl_rlockct);
EXPORT_SYMBOL(rtnl_lock);
EXPORT_SYMBOL(rtnl_unlock);

***************** PATCH 3 *******************************************
--- linux/net/Makefile.old Sat Feb 20 22:06:10 1999
+++ linux/net/Makefile Sat Feb 20 22:07:20 1999
@@ -63,6 +63,8 @@

ifeq ($(CONFIG_IPX),y)
SUB_DIRS += ipx
+# SPX can be still a module
+MOD_SUB_DIRS += ipx
else
ifeq ($(CONFIG_IPX),m)
MOD_SUB_DIRS += ipx
--- linux/net/ipx/Makefile.old Sat Feb 20 22:21:49 1999
+++ linux/net/ipx/Makefile Sun Feb 21 16:38:06 1999
@@ -10,8 +10,12 @@
# We only get in/to here if CONFIG_IPX = 'y' or 'm'

O_TARGET := ipx.o
-M_OBJS := $(O_TARGET)
-OX_OBJS += af_ipx.o
+M_OBJS :=
+OX_OBJS := af_ipx.o
+
+ifeq ($(CONFIG_IPX),m)
+ M_OBJS += $(O_TARGET)
+endif

ifeq ($(CONFIG_SYSCTL),y)
O_OBJS += sysctl_net_ipx.o
******************************************************************************

# insmod af_spx
/lib/modules/2.2.1-ac6/misc/af_spx.o: unresolved symbol __release_sock
# insmod af_packet
/lib/modules/2.2.1-ac6/misc/af_packet.o: unresolved symbol rtnl_wait
/lib/modules/2.2.1-ac6/misc/af_packet.o: unresolved symbol dev_set_allmulti
/lib/modules/2.2.1-ac6/misc/af_packet.o: unresolved symbol dev_set_promiscuity
/lib/modules/2.2.1-ac6/misc/af_packet.o: unresolved symbol sklist_remove_socket
/lib/modules/2.2.1-ac6/misc/af_packet.o: unresolved symbol rtnl_rlockct

Meaningful parts of .config:

CONFIG_EXPERIMENTAL=y
[...]
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y
[...]
CONFIG_NET=y
[...]
CONFIG_PACKET=m
# CONFIG_NETLINK is not set
# CONFIG_FIREWALL is not set
# CONFIG_NET_ALIAS is not set
# CONFIG_FILTER is not set
CONFIG_UNIX=m
# CONFIG_INET is not set
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_SPX=m
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
# CONFIG_LLC is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
# CONFIG_CPU_IS_SLOW is not set
[...]
CONFIG_NETDEVICES=y
[...]
CONFIG_NET_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
[...]
CONFIG_EL3=m
[...]
CONFIG_PROC_FS=y
[...]
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_MOUNT_SUBDIR=y

-- 
=======================================================================
  Andrzej M. Krzysztofowicz               ankry@mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Technical University of Gdansk

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/