[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Unresolved symbol
Thanks for the tip.
There are few changes by kdgb patch (relating to this problem)
In kernel/ksyms.c file
EXPORT_SYMBOL(schedule);
has been changed to
EXPORT_SYMBOL(do_schedule);
In kernel/sched.c file
asmlinkage void schedule(void)
has been changed to
asmlinkage void do_schedule(void)
and
do_schedule() is called after updating "current->thread.kgdbregs" from
functions
asmlinkage void user_schedule(void)
asmlinkage void kern_do_schedule(struct pt_regs regs)
The functionality of schedule() & do_schedule() is exactly same.
Thanks for help.
Usman
--- Hilik Stein <hiliks@wanwall.com> wrote:
> do_schedule is a function from kgdb's source code. it hooks instead of the
> regular schedule() function and calls it later on.
> it could be that the kgdb patch remove schedule() from the export list to
> avoid someone to bypass their hook
> Hilik
>
> -----Original Message-----
> From: kernelnewbies-bounce@nl.linux.org
> [mailto:kernelnewbies-bounce@nl.linux.org]On Behalf Of Pichai Raghavan
> Sent: Sunday, January 06, 2002 11:16 AM
> To: kernelnewbies@nl.linux.org
> Cc: uansari@yahoo.com
> Subject: Re: Unresolved symbol
>
>
>
> Looks to me that the kernel that u have used is not exporting the schedule
> function as it does not appear in /proc/ksyms. Hence when u are trying to
> load a module insmod gives a problem.
>
> 2 alternatives to ur solution:
> (i) Recompile kernel after adding the symbol schedule in file kernel/ksyms.c
> (ii) Do not call schedule from module. What is this function do_schedule; I
> do not see this function in my source code? Can u check up with the linux
> kernel source and check if this is an equivalent function.
>
> Regards
> Raghav
>
>
>
> Usman's original mail:
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> I am compiling kernel module with a command line
>
> cc -D__KERNEL__ -DMODULE -Wall -O2 -g -I. -I/usr/src/linux/include -c -o
> file1.o file1.c
> ld -r file1.o file 2.o file3.o modbinary.o
>
> Module loads and executes fine. After applying the serial kdb patch
> (patch applied nicely) and recompiling the kernel, I was getting lot of
> unresolved symbols, which I understood was due to MODVERSION bug. I have
> over
> come the problem. However now I am getting only one unresolved symbol
>
> [root@karachi]# insmod modbinary.o
> modbinary.o: unresolved symbol schedule
>
> when I do, I get
>
> [root@karachi /root]# cat /proc/ksyms | grep schedule
> c0122900 schedule_task_R2d6c3d04
> c0122b20 flush_scheduled_tasks_R7c3242b4
> c01150f0 do_schedule_R26171012
> c0109318 kern_schedule_Rb32aaa1b
> c0115030 schedule_timeout_R17d59d01
> c0203540 tcp_tw_deschedule_Rae427462
>
> I donot see schedule() function in the list above, even though this is from
> schd.c file. What can I do to resolve this problem.
>
> Usman
>
> __________________________________________________
> Do You Yahoo!?
> Send FREE video emails in Yahoo! Mail!
> http://promo.yahoo.com/videomail/
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive: http://mail.nl.linux.org/kernelnewbies/
> IRC Channel: irc.openprojects.net / #kernelnewbies
> Web Page: http://www.kernelnewbies.org/
>
>
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive: http://mail.nl.linux.org/kernelnewbies/
> IRC Channel: irc.openprojects.net / #kernelnewbies
> Web Page: http://www.kernelnewbies.org/
>
=====
Usman S. Ansari
UNIX OS & Device Drivers
__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
IRC Channel: irc.openprojects.net / #kernelnewbies
Web Page: http://www.kernelnewbies.org/