Dear all: Where tracing the kernel, 2.6.30, I cannot find "request_irq", which is previous devined in kernel/irq/manage.c. I see there is a new function request_threaded_irq seems to replace request_irq if I config CONFIG_GENERIC_HARDIRQS. But I see other device driver still use request_irq to register their interrupt. Would anyone tell me where the function lacated and what is the difference and why between request_irq and request_threaded_irq? Thanks in advance, miloody #ifdef CONFIG_GENERIC_HARDIRQS extern int __must_check request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long flags, const char *name, void *dev); static inline int __must_check request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev) { return request_threaded_irq(irq, handler, NULL, flags, name, dev); } extern void exit_irq_thread(void); #else extern int __must_check request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev); /* * Special function to avoid ifdeffery in kernel/irq/devres.c which * gets magically built by GENERIC_HARDIRQS=n architectures (sparc, * m68k). I really love these $@%#!* obvious Makefile references: * ../../../kernel/irq/devres.o */ static inline int __must_check request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long flags, const char *name, void *dev) { return request_irq(irq, handler, flags, name, dev); } static inline void exit_irq_thread(void) { } #endif -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ