[alsa-devel] 'unresolved symbol lock_kernel' on 2.4 kernel

Alan Horstmann gineera at aspect135.co.uk
Tue Nov 22 12:43:37 CET 2011

On Tuesday 22 November 2011 07:44, you wrote:
> At Mon, 21 Nov 2011 15:54:50 +0000, Alan Horstmann wrote:
> > As part of recent testing I attempted to build current 1.0.24 alsa-driver
> > on an older machine with 2.4.21-99 kernel .
> >
> > 'configure' and 'make' proceeded uneventfully, but 'rcalsasound start'
> > gave following error:-
> >
> > "Starting sound driver: snd-ice1712 /lib/modules/2.4.21-99-athlon/kernel/
> > sound/acore/snd.o: unresolved symbol lock_kernel
> > /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: unresolved symbol
> > unlock_kernel
> > /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod /lib/
> > modules/2.4.21-99-athlon/kernel/sound/acore/snd.o failed
> > /lib/modules/2.4.21-99-athlon/kernel/sound/acore/snd.o: insmod
> > snd-ice1712 failed"
> >
> > This does not occur on 1.0.23 (or previous builds that I have tested).
> >
> > I am aware that there was discussion about ditching 2.2/2.4 support, but
> > my understanding was that 1.0.24 should build and work, but may be the
> > last to do so - is that correct?
> Well, I don't think any developers actually tested 2.2/2.4 with the
> real machine.  We usually test the builds, but no more than that.
> So it's not unsurprising if 1.0.24 doesn't work with 2.4 kernel.
> > Is there a simple fix for this problem?
> Stick with 1.0.23 :)  There are no big changes regarding ice1712
> driver since 1.0.23.  The only change is the support of delta66e.

Well, I only showed the ice1712 failures since the others duplicated.

> Or, just adding #include <linux/smp_lock.h> in include/adriver.h
> might fix the problem.

Thanks for the pointers; I have tracked this down now.  The includes were 
removed in Nov 2010.  pcm_native.patch and info.patch add lock_kernel() etc 
back in.  Adjustments to pcm_native.patch effectively added the include, but 
info.patch is missing it.

Adding  #include <linux/smp_lock.h>  to the first hunk of acore/info.patch 
fixed the build and load of the modules fine.

I realize there is not much interest from core devels in these sort of fixes.  
But if support for older kernels is to be formally abandoned, it would be 
nice to have a branch somewhere that represents the proper end-of-the-line 
where small fixes can be added - a quiet siding with buffers etc rather than 
just the track going over a cliff edge!



More information about the Alsa-devel mailing list