Partial MODVERSIONS?
Jeff Gold
hostap
Sun Aug 24 09:42:39 PDT 2003
I'm attempting to get hostap-0.0.4 working with RedHat 9 using the
2.4.20-20.9 kernel (which at the moment is the latest offered through
up2date). This was working with 2.4.20-19.9 and hostap-0.0.3, but when
I upgraded the kernel I had trouble compiling. I immediatedly grabbed
the latest hostap release to avoid struggling with old bugs. And indeed
the changelog says:
* fixed number of compilation issues (RH9 kernel, *.mod files to local
directory, 2.4.x compilation with CONFIG_MODVERSIONS, external
pcmcia-cs)
Unfortunately while the hostap driver builds and installs with no
trouble, modprobe reports unresolved symbols when attempting to load it.
As far as I can tell the problem is that only some kernel symbols used
by the hostap driver are converted according to the modversions system.
For example, from "nm /lib/modules/2.4.20-20.9/net/hostap.o":
U add_timer_Ra19eacf8
U add_wait_queue
The first routine shows up in /proc/ksyms, but the second doesn't. Or
rather it does, but as add_wait_queue_R53621d0f. Somehow add_timer was
correctly adapted for CONFIG_MODVERSIONS=y, but add_wait_queue wasn't.
All of the symbols modprobe claims are missing lack modversions tags in
hostap.o, while those unresolved in nm output but not modprobe have
them. This seems quite strange to me. I checked the output of "make
-n" but each gcc line has -DMODVERSIONS and the associated -include
option to pull in the modversions.h file. I've not yet discovered any
pattern that would make sense of this. What could be going wrong?
The following symbols don't have modversions tags and are listed as
unresolved by modprobe (the __this_module symbol is listed as unresolved
in hostap.o but doesn't trouble modprobe):
add_wait_queue
alloc_skb
create_proc_entry
dev_queue_xmit
ether_setup
eth_type_trans
irq_stat
__kfree_skb
__netdev_watchdog_up
netif_rx
proc_mkdir
proc_net
pskb_expand_head
___pskb_trim
register_netdev
register_netdevice
remove_proc_entry
remove_wait_queue
request_module
skb_clone
skb_over_panic
skb_under_panic
softnet_data
unregister_netdev
unregister_netdevice
__wake_up
wireless_send_event
The following appear as unresolved in the hostap.o file, but with
appropriate modversions tags (these are not reported as unresolved by
modprobe):
add_timer
del_timer
dev_get
do_softirq
flush_scheduled_tasks
__const_udelay
cpu_raise_softirq
__generic_copy_from_user
__generic_copy_to_user
get_random_bytes
jiffies
kfree
kmalloc
__out_of_line_bug
printk
schedule_task
schedule_timeout
sprintf
Does this make sense to anyone? What might I be doing wrong here? Or
is this a bug caused by the interation of hostap and the latest RedHat
kernel source?
Jeff
More information about the Hostap
mailing list