Re: [PATCH] fix missing hdlc symbols for synclink drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 6 Jun 2006 13:48:16 -0700 Randy.Dunlap wrote:

> On Tue, 06 Jun 2006 22:27:40 +0200 Krzysztof Halasa wrote:
> 
> > Paul Fulghum <[email protected]> writes:
> > 
> > > +++ b/drivers/net/wan/Makefile	2006-06-06 14:08:53.000000000 -0500
> > > @@ -9,14 +9,18 @@ cyclomx-y                       := cycx_
> > >  cyclomx-$(CONFIG_CYCLOMX_X25)	+= cycx_x25.o
> > >  cyclomx-objs			:= $(cyclomx-y)  
> > >  
> > > -hdlc-y				:= hdlc_generic.o
> > > +hdlc-$(CONFIG_HDLC)		:= hdlc_generic.o
> > >  hdlc-$(CONFIG_HDLC_RAW)		+= hdlc_raw.o
> > >  hdlc-$(CONFIG_HDLC_RAW_ETH)	+= hdlc_raw_eth.o
> > >  hdlc-$(CONFIG_HDLC_CISCO)	+= hdlc_cisco.o
> > >  hdlc-$(CONFIG_HDLC_FR)		+= hdlc_fr.o
> > >  hdlc-$(CONFIG_HDLC_PPP)		+= hdlc_ppp.o
> > >  hdlc-$(CONFIG_HDLC_X25)		+= hdlc_x25.o
> > > -hdlc-objs			:= $(hdlc-y)
> > > +ifeq ($(CONFIG_HDLC),y)
> > > +  hdlc-objs			:= $(hdlc-y)
> > > +else
> > > +  hdlc-objs			:= $(hdlc-m)
> > > +endif
> > 
> > How could that work? If CONFIG_HDLC=m and CONFIG_HDLC_*=y it would read:
> > 
> > hdlc-m := hdlc_generic.o
> > hdlc-y := hdlc_{raw,raw_eth,cisco,fr,ppp,x25}.o
> > hdlc-objs := $(hdlc-m)
> > 
> > CONFIG_HDLC is 3-state and CONFIG_HDLC_* are simple bools, everything
> > makes a single module.
> > 
> > Not sure what missing symbols do you experience (never had synclink
> > adapter) but almost certainly it's when generic HDLC is not selected
> > (or is 'm' while synclink is 'y') and it's not related to the Makefile
> > (i.e., while I don't exactly like the rest of the patch as I think
> > enabling gHDLC should enable hw drivers - like with other drivers -
> > it would probably work).
> 
> Hi,
> I think that the main problem is that SYNCLINK wants to be able
> to use some functions from hdlc_generic.c when
> CONFIG_HDLC=m.  How do you handle that?

Oh, using hdlc-y even for CONFIG_HDLC=m.  :)

OK, it's still not working.  As Dave Jones reported:

> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol alloc_hdlcdev
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol hdlc_close
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol hdlc_set_carrier
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol register_hdlc_device
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol hdlc_open
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol hdlc_ioctl
> WARNING: /lib/modules/2.6.17-rc5-mm3/kernel/drivers/char/pcmcia/synclink_cs.ko needs unknown symbol unregister_hdlc_device

with:
> CONFIG_SYNCLINK_CS=m
> CONFIG_SYNCLINK_CS_HDLC=y
> (19:02:25:root@northwood:mm3)# grep HDLC .config
> CONFIG_HDLC=m
> # CONFIG_HDLC_RAW is not set
> # CONFIG_HDLC_RAW_ETH is not set
> # CONFIG_HDLC_CISCO is not set
> # CONFIG_HDLC_FR is not set
> # CONFIG_HDLC_PPP is not set
> CONFIG_HISAX_HDLC=y
> CONFIG_SYNCLINK_CS_HDLC=y

Or enabling all SYNCLINK drivers =m with HDLC support:

WARNING: "register_hdlc_device" [drivers/char/synclinkmp.ko] undefined!
WARNING: "alloc_hdlcdev" [drivers/char/synclinkmp.ko] undefined!
WARNING: "hdlc_ioctl" [drivers/char/synclinkmp.ko] undefined!
WARNING: "hdlc_open" [drivers/char/synclinkmp.ko] undefined!
WARNING: "hdlc_close" [drivers/char/synclinkmp.ko] undefined!
WARNING: "hdlc_set_carrier" [drivers/char/synclinkmp.ko] undefined!
WARNING: "unregister_hdlc_device" [drivers/char/synclinkmp.ko] undefined!
WARNING: "register_hdlc_device" [drivers/char/synclink_gt.ko] undefined!
WARNING: "alloc_hdlcdev" [drivers/char/synclink_gt.ko] undefined!
WARNING: "hdlc_close" [drivers/char/synclink_gt.ko] undefined!
WARNING: "hdlc_open" [drivers/char/synclink_gt.ko] undefined!
WARNING: "hdlc_ioctl" [drivers/char/synclink_gt.ko] undefined!
WARNING: "hdlc_set_carrier" [drivers/char/synclink_gt.ko] undefined!
WARNING: "unregister_hdlc_device" [drivers/char/synclink_gt.ko] undefined!
WARNING: "register_hdlc_device" [drivers/char/synclink.ko] undefined!
WARNING: "alloc_hdlcdev" [drivers/char/synclink.ko] undefined!
WARNING: "hdlc_close" [drivers/char/synclink.ko] undefined!
WARNING: "hdlc_open" [drivers/char/synclink.ko] undefined!
WARNING: "hdlc_ioctl" [drivers/char/synclink.ko] undefined!
WARNING: "hdlc_set_carrier" [drivers/char/synclink.ko] undefined!
WARNING: "unregister_hdlc_device" [drivers/char/synclink.ko] undefined!
WARNING: "hdlc_close" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "hdlc_open" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "hdlc_ioctl" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "hdlc_set_carrier" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "unregister_hdlc_device" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "register_hdlc_device" [drivers/char/pcmcia/synclink_cs.ko] undefined!
WARNING: "alloc_hdlcdev" [drivers/char/pcmcia/synclink_cs.ko] undefined!

with partial .config:
# CONFIG_WAN is not set
CONFIG_HDLC=m
# CONFIG_HDLC_RAW is not set
# CONFIG_HDLC_RAW_ETH is not set
# CONFIG_HDLC_CISCO is not set
# CONFIG_HDLC_FR is not set
# CONFIG_HDLC_PPP is not set
...
CONFIG_SYNCLINK=m
CONFIG_SYNCLINK_HDLC=y
CONFIG_SYNCLINKMP=m
CONFIG_SYNCLINKMP_HDLC=y
CONFIG_SYNCLINK_GT=m
CONFIG_SYNCLINK_GT_HDLC=y
CONFIG_N_HDLC=m

so the hdlc_generic code isn't available for some reason.

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux