On Tue, 2011-12-20 at 10:24 +0100, Monica Puig-Pey wrote: > Hi there, > > As I told in previous posts in this list I'm developing drivers for the > > linux-rt kernel version in Ubuntu 10.04, based on 2.6.31 with rt_preempt > patch. > > Currently I'm studying how to use priority lists (linux/plist.h) in a > module. I read some pages from the Linux Kernel Development book to > learn how linked list work in the kernel. > > I made and easy example, shown below, trying to put three elements, with > their priorities, in a plist_head. > > Then, I had two problems: > > * First error: > > An error is produced when using the MACROs: > - PLIST_HEAD_INIT(head, _lock) > - PLIST_NODE_INIT(node, __prio) Right, the macros are for static declarations. Either global variables or a variable marked as static: struct plist_head myhead = PLIST_HEAD_INIT(myhead, mylock); or int foo() { static struct plist_head bar = PLIST_HEAD_INIT(bar, mylock); [...] } or struct foo bar = { .zoop = PLIST_HEAD_INIT(bar.zoop, mylock), }; > > it says : > > > /home/monica/Escritorio/plists/priolist.c: In function 'init_module': > /home/monica/Escritorio/plists/priolist.c:67: error: expected expression > before '.' token > > > --> To solve this I used the functions: > > > - static inline void plist_head_init(struct plist_head *head, struct > spinlock *lock) > > - static inline void plist_node_init(struct plist_node *node, int prio) Right, for runtime code you must use these. > > But I still have the problem with the MACRO > > > > > * Second error, problem using plist_add: > > It says: > > > “WARNING: "plist_add" [/home/monica/Escritorio/plists/priolist.ko] > undefined! ” Simple, plist_add() isn't exported to modules. Hmm, none of the plist functions are. I guess it wouldn't hurt to make them EXPORT_SYMBOL_GPL() Maybe we'll do that. Is this just for learning or are you planing on adding a real GPL module to Linux that uses plists. For learning, it may not be worth adding these symbols, but if you have a legit reason for modules to use plists, than I don't see any harm in exporting them. -- Steve > > I made the module GPL, I don't know what am I doing wrong. > > Does anybody have an idea what is happening? > > Thanks in advance for any help, > > Cheers, > -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html