patch to remove 'unresolved symbols' of 2.1.99pre3

Byeong-ryeol Kim (jinbo21@soback.kornet.nm.kr)
Thu, 30 Apr 1998 16:45:49 +0900 (KST)


I usually compile kernel drivers as modules as much as
possible, and I have been or am seeing annoying 'unresolved
symbols' warnings about wanpipe, cls_*, sch_* as follows:

/lib/modules/2.1.99/misc/cls_u32.o: unresolved symbol(s)
tcf_police_dump
tcf_police
tcf_police_destroy
tcf_police_locate
/lib/modules/2.1.99/misc/cls_rsvp6.o: unresolved symbol(s)
tcf_police_dump
tcf_police
tcf_police_destroy
tcf_police_locate
/lib/modules/2.1.99/misc/cls_rsvp.o: unresolved symbol(s)
tcf_police_dump
tcf_police
tcf_police_destroy
tcf_police_locate
/lib/modules/2.1.99/misc/sch_prio.o: unresolved symbol(s)
pfifo_qdisc_ops
/lib/modules/2.1.99/misc/sch_cbq.o: unresolved symbol(s)
pfifo_qdisc_ops
/lib/modules/2.1.99/net/wanpipe.o: unresolved symbol(s)
register_wandev
wan_encapsulate
wan_type_trans
unregister_wandev

Summary:

1. Symbol names about *wan* was changed in 2.1.99pre3, but relevant
codes in sdla*.c was not changed and those were not registered into
net/netsyms.c file.

2. There is a typo in net/netsyms.c in 2.1.99pre3, CONFIG_NET_POLICE
should be changed to CONFIG_NET_CLS_POLICE.

3. 'pfifo_qdisc_ops' is new symbol appeared in 2.1.99pre3, but
this was not registered into net/netsyms.c

Result of Patch:

I do not see 'unresolved symbols' warnigns any more when booting
and perfoming 'depmod -a -d -e', but I'm not convinced of the accuracy
of this patch.

Patch:

--- v2.1.99pre3/linux/drivers/net/sdla_fr.c Thu Apr 9 12:12:52 1998
+++ linux/drivers/net/sdla_fr.c Thu Apr 30 15:03:37 1998
@@ -831,7 +831,7 @@
{
int hdr_len = 0;
skb->protocol = type;
- hdr_len = wan_encapsulate(skb, dev);
+ hdr_len = wanrouter_encapsulate(skb, dev);
if (hdr_len < 0)
{
hdr_len = 0;
@@ -1486,7 +1486,7 @@
/* Decapsulate packet and pass it up the protocol stack */
skb->dev = dev;
buf = skb_pull(skb, 1); /* remove hardware header */
- if (!wan_type_trans(skb, dev))
+ if (!wanrouter_type_trans(skb, dev))
{
/* can't decapsulate packet */
dev_kfree_skb(skb);
@@ -1601,7 +1601,7 @@
skb->dev = dev;
/* remove hardware header */
buf = skb_pull(skb, 1);
- if (!wan_type_trans(skb, dev))
+ if (!wanrouter_type_trans(skb, dev))
{
/* can't decapsulate packet */
dev_kfree_skb(skb);
@@ -2746,7 +2746,7 @@
stack */
new_skb->dev = dev;
buf = skb_pull(new_skb, 1); /* remove hardware header */
- if (!wan_type_trans(new_skb, dev))
+ if (!wanrouter_type_trans(new_skb, dev))
{
++chan->UDP_FPIPE_mgmt_not_passed_to_stack;
/* can't decapsulate packet */
@@ -2944,7 +2944,7 @@
new_skb->dev = dev;
/* remove hardware header */
buf = skb_pull(new_skb, 1);
- if (!wan_type_trans(new_skb, dev))
+ if (!wanrouter_type_trans(new_skb, dev))
{
/* can't decapsulate packet */
++chan->UDP_DRVSTATS_mgmt_not_passed_to_stack;
--- v2.1.99pre3/linux/drivers/net/sdla_x25.c Thu Apr 9 12:12:52 1998
+++ linux/drivers/net/sdla_x25.c Thu Apr 30 15:04:08 1998
@@ -649,7 +649,7 @@
skb->protocol = type;
if (!chan->protocol)
{
- hdr_len = wan_encapsulate(skb, dev);
+ hdr_len = wanrouter_encapsulate(skb, dev);
if (hdr_len < 0)
{
hdr_len = 0;
@@ -999,7 +999,7 @@
chan->rx_skb = NULL; /* dequeue packet */

/* Decapsulate packet, if necessary */
- if (!skb->protocol && !wan_type_trans(skb, dev))
+ if (!skb->protocol && !wanrouter_type_trans(skb, dev))
{
/* can't decapsulate packet */
dev_kfree_skb(skb);
--- v2.1.99pre3/linux/drivers/net/sdlamain.c Wed Feb 11 05:56:45 1998
+++ linux/drivers/net/sdlamain.c Thu Apr 30 14:58:26 1998
@@ -152,7 +152,7 @@
wandev->setup = &setup;
wandev->shutdown = &shutdown;
wandev->ioctl = &ioctl;
- err = register_wandev(wandev);
+ err = register_wan_device(wandev);
if (err)
{
printk(KERN_ERR
@@ -179,7 +179,7 @@
for (i = 0; i < ncards; ++i)
{
sdla_t* card = &card_array[i];
- unregister_wandev(card->devname);
+ unregister_wan_device(card->devname);
}
kfree(card_array);
}
--- v2.1.99pre3/linux/net/netsyms.c Thu Apr 30 15:59:48 1998
+++ linux/net/netsyms.c Thu Apr 30 15:45:25 1998
@@ -453,11 +453,24 @@
EXPORT_SYMBOL(unregister_qdisc);
EXPORT_SYMBOL(qdisc_get_rtab);
EXPORT_SYMBOL(qdisc_put_rtab);
+EXPORT_SYMBOL(pfifo_qdisc_ops);
+#endif
#ifdef CONFIG_NET_ESTIMATOR
EXPORT_SYMBOL(qdisc_new_estimator);
EXPORT_SYMBOL(qdisc_kill_estimator);
#endif
-#ifdef CONFIG_NET_POLICE
+
+#ifdef CONFIG_WAN_ROUTER
+EXPORT_SYMBOL(register_wan_device);
+EXPORT_SYMBOL(unregister_wan_device);
+EXPORT_SYMBOL(wanrouter_encapsulate);
+EXPORT_SYMBOL(wanrouter_type_trans);
+#endif
+
+#ifdef CONFIG_NET_CLS
+EXPORT_SYMBOL(register_tcf_proto_ops);
+EXPORT_SYMBOL(unregister_tcf_proto_ops);
+#ifdef CONFIG_NET_CLS_POLICE
EXPORT_SYMBOL(tcf_police);
EXPORT_SYMBOL(tcf_police_locate);
EXPORT_SYMBOL(tcf_police_destroy);
@@ -465,10 +478,6 @@
EXPORT_SYMBOL(tcf_police_dump);
#endif
#endif
-#endif
-#ifdef CONFIG_NET_CLS
-EXPORT_SYMBOL(register_tcf_proto_ops);
-EXPORT_SYMBOL(unregister_tcf_proto_ops);
#endif

EXPORT_SYMBOL(register_gifconf);

"Where there is a will, there is a way." jinbo21@soback.kornet.nm.kr
kbeyl@kids.kotel.co.kr
For the future of you and me! hitel: jinbo21

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu