On Sat, Mar 19, 2011 at 04:45:28PM +0200, ???????? ???????????????? wrote: > On Sat, Mar 19, 2011 at 12:36:56PM +0100, Harald Jenny wrote: > > This error went away but there is another one now, please see attached log. > > [...] > > CC [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.o > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:236:8: > > warning: type defaults to 'int' in declaration of 'DECLARE_MUTEX' > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:236:1: > > warning: parameter names (without types) in function declaration > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c: In function > > 'st7554_open': > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1001:8: > > error: 'open_sem' undeclared (first use in this function) > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1001:8: note: > > each undeclared identifier is reported only once for each function it > > appears in > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c: In function > > 'st7554_probe': > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1237:2: > > error: implicit declaration of function 'init_MUTEX' > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1320:8: > > error: 'open_sem' undeclared (first use in this function) > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1336:2: > > warning: passing argument 2 of 'device_create' makes pointer from integer > > without a cast > > include/linux/device.h:598:23: note: expected 'struct device *' but > > argument is of type 'int' > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1336:2: > > warning: passing argument 3 of 'device_create' makes integer from pointer > > without a cast > > include/linux/device.h:598:23: note: expected 'dev_t' but argument is of > > type 'void *' > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1336:2: > > warning: passing argument 5 of 'device_create' makes pointer from integer > > without a cast > > include/linux/device.h:598:23: note: expected 'const char *' but argument > > is of type 'int' > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c: In function > > 'st7554_disconnect': > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1367:8: > > error: 'open_sem' undeclared (first use in this function) > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c: At top level: > > /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:236:8: > > warning: 'DECLARE_MUTEX' declared 'static' but never defined > ---end quoted text--- > > Thanks for your report, please try the attached patch.
Seems like the arguments have changed, please see attached log. > > -- > ??????????? ???????????????? (Ahmed El-Mahmoudy) > Digital design engineer > GPG KeyID: 0xEDDDA1B7 > GPG Fingerprint: 8206 A196 2084 7E6D 0DF8 B176 BC19 6A94 EDDD A1B7 > Description: Fix compilation of slusb with 2.6.37 > *_MUTEX got deprecated since kernel 2.6.37 > Author: ???????? ???????????????? (Ahmed El-Mahmoudy) <aelmahmo...@sabily.org> > Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=613906 > Bug-Ubuntu: https://bugs.launchpad.net/bugs/737650 > --- a/drivers/st7554.c > +++ b/drivers/st7554.c > @@ -233,7 +233,11 @@ > static struct class *st7554_class; > #endif > > +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) > static DECLARE_MUTEX(open_sem); > +#else > +static DEFINE_SEMAPHORE(open_sem); > +#endif > > /* --------------------------------------------------------------------- */ > > @@ -1234,7 +1238,11 @@ > memset(s, 0, sizeof(*s)); > > spin_lock_init(&s->lock); > +#ifdef init_MUTEX > init_MUTEX (&s->sem); > +#else > + sema_init (&s->sem); > +#endif > init_waitqueue_head(&s->wait); > > s->name = "ST7554 USB Modem";
DKMS make.log for sl-modem-2.9.11~20100718 for kernel 2.6.37-2-686 (i686) Sat Mar 19 19:43:11 CET 2011 make: Entering directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers' doing kernel-ver:: cc -I/lib/modules/2.6.37-2-686/build/include -o kernel-ver kernel-ver.c make all KERNEL_VER=2.6.37-2-686 make[1]: Entering directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers' obj-m=slamr.o slusb.o slamr-objs=amrmo_init.o sysdep_amr.o amrlibs.o make modules -C /lib/modules/2.6.37-2-686/build SUBDIRS=/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers make[2]: Entering directory `/usr/src/linux-headers-2.6.37-2-686' CC [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/amrmo_init.o /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/amrmo_init.c:517:9: warning: initialization from incompatible pointer type /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/amrmo_init.c: In function 'amrmo_ioctl': /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/amrmo_init.c:450:17: warning: ignoring return value of 'copy_from_user', declared with attribute warn_unused_result CC [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/sysdep_amr.o CC [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.o /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c: In function 'st7554_probe': /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1244:3: error: too few arguments to function 'sema_init' include/linux/semaphore.h:32:20: note: declared here /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1344:2: warning: passing argument 2 of 'device_create' makes pointer from integer without a cast include/linux/device.h:598:23: note: expected 'struct device *' but argument is of type 'int' /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1344:2: warning: passing argument 3 of 'device_create' makes integer from pointer without a cast include/linux/device.h:598:23: note: expected 'dev_t' but argument is of type 'void *' /var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.c:1344:2: warning: passing argument 5 of 'device_create' makes pointer from integer without a cast include/linux/device.h:598:23: note: expected 'const char *' but argument is of type 'int' make[3]: *** [/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers/st7554.o] Error 1 make[2]: *** [_module_/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers] Error 2 make[2]: Leaving directory `/usr/src/linux-headers-2.6.37-2-686' make[1]: *** [all] Error 2 make[1]: Leaving directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers' make: *** [all] Error 2 make: Leaving directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/drivers' make: Entering directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem' make modules -C /lib/modules/2.6.37-2-686/build SUBDIRS=/var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem make[1]: Entering directory `/usr/src/linux-headers-2.6.37-2-686' CC [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem/ungrab-winmodem.o Building modules, stage 2. MODPOST 1 modules CC /var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem/ungrab-winmodem.mod.o LD [M] /var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem/ungrab-winmodem.ko make[1]: Leaving directory `/usr/src/linux-headers-2.6.37-2-686' make: Leaving directory `/var/lib/dkms/sl-modem/2.9.11~20100718/build/ungrab-winmodem'