Messages in this thread Patch in this message | | | Date | Thu, 30 Apr 1998 16:45:49 +0900 (KST) | From | Byeong-ryeol Kim <> | Subject | patch to remove 'unresolved symbols' of 2.1.99pre3 |
| |
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
| |