On Mon, 2011-01-17 at 22:59 +0000, Malcolm Priestley wrote: > Clean up legacy issues for error free build on Kernel 2.6.37. > > Today while testing on Kernel 2.6.35 latest tarball throws error with > alloc_ordered_workqueue undefined on Kernels less than 2.6.37. defined back to > create_singlethread_workqueue. > > Please test on other kernel versions. > > Tested-on 2.6.35/37 by: Malcolm Priestley <tvboxspy@xxxxxxxxx> > > > diff --git a/v4l/compat.h b/v4l/compat.h > index 9e622ce..df98698 100644 > --- a/v4l/compat.h > +++ b/v4l/compat.h > @@ -749,6 +749,8 @@ static inline void *vzalloc(unsigned long size) > > #endif > > +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37) > + > #if NEED_FLUSH_WORK_SYNC > #define flush_work_sync(dev) > #endif > @@ -760,6 +762,14 @@ static inline void *vzalloc(unsigned long size) > } > #endif > > +#define alloc_ordered_workqueue(a,b) create_singlethread_workqueue(a) That will get cx18 to compile. However, I can tell you without testing, the latest cx18 driver could badly affect system event processing performance on older kernels. This is because another change happened at the same time as the change to call alloc_ordered_workqueue(). A kernel version before that, CMWQ was added to the kernel, so there was no longer a need for the cx18_out_work workqueue. So now the cx18_out_work workqueue has been removed from the cx18 driver. In the older kernels without CMWQ and without the cx18_out_work workqueue, outgoing cx18 buffer work will get queued to the [keventd/M] kernel threads. Unrelated system work being processed by [keventd/M] threads will regularly find itself *waiting for the CX23418 hardware* to respond to firmware commands. It would be better to not allow the newest cx18 driver version to compile on older kernels. Regards, Andy -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html