RE: Unresolved symbol

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

 



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/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux