Driver compiled fine with 2.6.19-gentoo-r5.With 2.6.20-gentoo-r6 and 2.6.20-gentoo-r7 I get this error:#-------------------------------------------------------------------------------# Tried to make the driver with the new kernel, but something changed#-------------------------------------------------------------------------------cd ~/sheldon/siddk/siddk_plx/drivers/linux/0206make make -C /lib/modules/2.6.20-gentoo-r6/build M=/home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206 modules make[1]: Entering directory `/usr/src/linux-2.6.20-gentoo-r6' CC [M] /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.o /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c: In function 'SIPLX_board_init': /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c:235: warning: passing argument 2 of 'request_irq' from incompatible pointer type /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c:277:75: error: macro "INIT_WORK" passed 3 arguments, but takes just 2 /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c:277: error: 'INIT_WORK' undeclared (first use in this function) /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c:277: error: (Each undeclared identifier is reported only once /home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.c:277: error: for each function it appears in.) make[2]: *** [/home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206/init.o] Error 1 make[1]: *** [_module_/home/jstile/sheldon/siddk/siddk_plx/drivers/linux/0206] Error 2 make[1]: Leaving directory `/usr/src/linux-2.6.20-gentoo-r6' make: *** [all] Error 2#-------------------------------------------------------------------------------# Offending code chunk in init.c on line 235#------------------------------------------------------------------------------- request_irq //<===Line 235. ( pdx[card_num].irq, SIPLX_isr, //<===Argument 2: Causing Error: incompatible pointer type SA_SHIRQ, kModuleName, (ulong *)(card_num + 1) )#-------------------------------------------------------------------------------# Found annotation for SIPLX_isr in driver source file isr.c#------------------------------------------------------------------------------- // void SIPLX_isr // Parameters: // int irq: // void *dev_id: // struct pt_regs *regs#-------------------------------------------------------------------------------# Description of: request_irq()# REFERENCE:http://www.linuxhq.com/kernel/v2.6/20/Documentation/pci.txt#-------------------------------------------------------------------------------request_irq() will associate an interrupt handler and device handle with an interrupt number.request_irq() also enables the interrupt.#-------------------------------------------------------------------------------# Header prototype of request_irq: /usr/src/linux/include/linux/interrupt.h:82#-------------------------------------------------------------------------------extern int request_irq( unsigned int, irq_handler_t handler, unsigned long, const char *, void * );#-------------------------------------------------------------------------------# Definition of request_irq: /usr/src/linux/kernel/irq/manage.c:438:#------------------------------------------------------------------------------- int request_irq( unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id )#-------------------------------------------------------------------------------# Definition of typedef irqreturn_t: /usr/src/linux/include/linux/interrupt.h:68#-------------------------------------------------------------------------------typedef irqreturn_t (*irq_handler_t)(int, void *);