Messages in this thread | | | From | Ricky Beam <> | Subject | asm/smp_lock.h and modules... | Date | Fri, 2 May 1997 23:41:41 -0400 (EDT) |
| |
Being the good little kernel hacker, I'm building everything...
It all builds just fine -- now. But, anything that includes smp_lock.h will not be loadable with MODVERSIONS enabled. I have chased it back to: ../../include/asm/smp_lock.h line 71/94 byte 1793/1793 (END) (press RETURN) extern __inline__ void unlock_kernel(void) { __asm__ __volatile__(" pushfl cli decl %0 jnz 1f movb %1, " __STR(active_kernel_processor) " lock btrl $0, " __STR(kernel_flag) " 1: popfl " : /* no outputs */ : "m" (current->lock_depth), "i" (NO_PROC_ID) : "ax", "memory"); }
The __STR() appears to be preventing the versioned symbol information from being pushed in place. It looks like this after cpp: extern __inline__ void unlock_kernel(void) { __asm__ __volatile__(" pushfl cli decl %0 jnz 1f movb %1, " "active_kernel_processor" " lock btrl $0, " "kernel_flag" " 1: popfl " : : "m" (( current_set_R5f33c60c [smp_processor_id()]) ->lock_depth), "i" (0xFF ) : "ax", "memory"); }
I can usually fix most problems, but I'm gonna stay clear of the __asm__ sections. This is not absolutely critical as only a few modules will not load: [root:tty8]dominion:linux-2.1.36/fs/nfsd/[11:32pm]:depmod -a -e *** Unresolved symbols in module /lib/modules/2.1.36/fs/nfsd.o kernel_flag active_kernel_processor *** Unresolved symbols in module /lib/modules/2.1.36/net/ltpc.o ltalk_setup
[I don't have a localtalk_pc card, and I don't need nfsd. <grin> Do you really wanna see the kernel config. I'll post an integrated patch of things that need to be updated (queue_task_irq_off for one) later.]
--Ricky
| |