Hi. Attached you find a patch which rectifies this and enabled 0.80 to build against newest kernels. At least the igorplugusb driver works fine against 2.6.22 (both Debian and homebrew 2.6.22.6) kernels. I have no means to test the others right now.
Still, and update to 0.82 would be nice. Regards, Sven
Index: debian/patches/15_no_SLAB_ATOMIC.dpatch =================================================================== --- debian/patches/15_no_SLAB_ATOMIC.dpatch (revision 0) +++ debian/patches/15_no_SLAB_ATOMIC.dpatch (revision 0) @@ -0,0 +1,149 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 15_no_SLAB_ATOMIC.dpatch by <[EMAIL PROTECTED]> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: 2.6.22 doesn't defined SLAB_ATOMIC anymore. Replace it with +## DP: what previous kernels defined it to be (at least since 2.6.18) + [EMAIL PROTECTED]@ +diff -urNad trunk~/drivers/lirc_atiusb/lirc_atiusb.c trunk/drivers/lirc_atiusb/lirc_atiusb.c +--- trunk~/drivers/lirc_atiusb/lirc_atiusb.c 2007-09-14 14:19:33.206292741 +0200 ++++ trunk/drivers/lirc_atiusb/lirc_atiusb.c 2007-09-14 14:20:20.354048335 +0200 +@@ -249,7 +249,7 @@ + add_wait_queue(&oep->wait, &wait); + + #ifdef KERNEL_2_5 +- if (usb_submit_urb(oep->urb, SLAB_ATOMIC)) { ++ if (usb_submit_urb(oep->urb, GFP_ATOMIC)) { + #else + if (usb_submit_urb(oep->urb)) { + #endif +@@ -321,7 +321,7 @@ + iep->urb->dev = ir->usbdev; + dprintk(DRIVER_NAME "[%d]: linking iep 0x%02x (%p)\n", ir->devnum, iep->ep->bEndpointAddress, iep); + #ifdef KERNEL_2_5 +- if ((rtn = usb_submit_urb(iep->urb, SLAB_ATOMIC)) < 0) { ++ if ((rtn = usb_submit_urb(iep->urb, GFP_ATOMIC)) < 0) { + #else + if ((rtn = usb_submit_urb(iep->urb)) < 0) { + #endif +@@ -657,7 +657,7 @@ + + /* resubmit urb */ + #ifdef KERNEL_2_5 +- usb_submit_urb(urb, SLAB_ATOMIC); ++ usb_submit_urb(urb, GFP_ATOMIC); + #endif + } + +@@ -773,7 +773,7 @@ + iep->len = len; + + #ifdef KERNEL_2_5 +- if ( !(iep->buf = usb_buffer_alloc(dev, len, SLAB_ATOMIC, &iep->dma)) ) { ++ if ( !(iep->buf = usb_buffer_alloc(dev, len, GFP_ATOMIC, &iep->dma)) ) { + mem_failure = 2; + } else if ( !(iep->urb = usb_alloc_urb(0, GFP_KERNEL)) ) { + mem_failure = 3; +@@ -854,7 +854,7 @@ + init_waitqueue_head(&oep->wait); + + #ifdef KERNEL_2_5 +- if ( !(oep->buf = usb_buffer_alloc(dev, USB_OUTLEN, SLAB_ATOMIC, &oep->dma)) ) { ++ if ( !(oep->buf = usb_buffer_alloc(dev, USB_OUTLEN, GFP_ATOMIC, &oep->dma)) ) { + mem_failure = 2; + } else if ( !(oep->urb = usb_alloc_urb(0, GFP_KERNEL)) ) { + mem_failure = 3; +diff -urNad trunk~/drivers/lirc_igorplugusb/lirc_igorplugusb.c trunk/drivers/lirc_igorplugusb/lirc_igorplugusb.c +--- trunk~/drivers/lirc_igorplugusb/lirc_igorplugusb.c 2007-09-14 14:19:33.207292566 +0200 ++++ trunk/drivers/lirc_igorplugusb/lirc_igorplugusb.c 2007-09-14 14:20:20.354048335 +0200 +@@ -483,7 +483,7 @@ + #if defined(KERNEL_2_5) + } else if (!(ir->buf_in = usb_buffer_alloc(dev, + DEVICE_BUFLEN+DEVICE_HEADERLEN, +- SLAB_ATOMIC, &ir->dma_in))) { ++ GFP_ATOMIC, &ir->dma_in))) { + mem_failure = 5; + #else + } else if (!(ir->buf_in = kmalloc( +diff -urNad trunk~/drivers/lirc_mceusb/lirc_mceusb.c trunk/drivers/lirc_mceusb/lirc_mceusb.c +--- trunk~/drivers/lirc_mceusb/lirc_mceusb.c 2007-09-14 14:19:33.208292391 +0200 ++++ trunk/drivers/lirc_mceusb/lirc_mceusb.c 2007-09-14 14:20:20.356047986 +0200 +@@ -767,7 +767,7 @@ + dev->bulk_in_endpointAddr = endpoint->bEndpointAddress; + #ifdef KERNEL_2_5 + dev->bulk_in_buffer = usb_buffer_alloc +- (udev, buffer_size, SLAB_ATOMIC, &dev->dma_in); ++ (udev, buffer_size, GFP_ATOMIC, &dev->dma_in); + #else + dev->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL); + #endif +@@ -794,7 +794,7 @@ + dev->bulk_out_size = buffer_size; + dev->bulk_out_endpointAddr = endpoint->bEndpointAddress; + #ifdef KERNEL_2_5 +- dev->bulk_out_buffer = usb_buffer_alloc(udev, buffer_size, SLAB_ATOMIC, &dev->dma_out); ++ dev->bulk_out_buffer = usb_buffer_alloc(udev, buffer_size, GFP_ATOMIC, &dev->dma_out); + #else + dev->bulk_out_buffer = kmalloc (buffer_size, GFP_KERNEL); + #endif +diff -urNad trunk~/drivers/lirc_mceusb2/lirc_mceusb2.c trunk/drivers/lirc_mceusb2/lirc_mceusb2.c +--- trunk~/drivers/lirc_mceusb2/lirc_mceusb2.c 2007-09-14 14:19:33.208292391 +0200 ++++ trunk/drivers/lirc_mceusb2/lirc_mceusb2.c 2007-09-14 14:20:20.356047986 +0200 +@@ -221,7 +221,7 @@ + async_urb->transfer_buffer_length = size; + async_urb->dev = ir->usbdev; + +- if ((res=usb_submit_urb(async_urb, SLAB_ATOMIC))) { ++ if ((res=usb_submit_urb(async_urb, GFP_ATOMIC))) { + dprintk(DRIVER_NAME "[%d]: receive request FAILED! (res=%d)\n", ir->devnum, res); + return; + } +@@ -405,7 +405,7 @@ + } + + /* resubmit urb */ +- usb_submit_urb(urb, SLAB_ATOMIC); ++ usb_submit_urb(urb, GFP_ATOMIC); + } + + static int usb_remote_probe(struct usb_interface *intf, +@@ -480,7 +480,7 @@ + mem_failure = 3; + } else if (lirc_buffer_init(rbuf, sizeof(lirc_t), LIRCBUF_SIZE)) { + mem_failure = 4; +- } else if (!(ir->buf_in = usb_buffer_alloc(dev, maxp, SLAB_ATOMIC, &ir->dma_in))) { ++ } else if (!(ir->buf_in = usb_buffer_alloc(dev, maxp, GFP_ATOMIC, &ir->dma_in))) { + mem_failure = 5; + } else if (!(ir->urb_in = usb_alloc_urb(0, GFP_KERNEL))) { + mem_failure = 7; +diff -urNad trunk~/drivers/lirc_streamzap/lirc_streamzap.c trunk/drivers/lirc_streamzap/lirc_streamzap.c +--- trunk~/drivers/lirc_streamzap/lirc_streamzap.c 2007-09-14 14:19:33.209292217 +0200 ++++ trunk/drivers/lirc_streamzap/lirc_streamzap.c 2007-09-14 14:20:20.357047811 +0200 +@@ -448,7 +448,7 @@ + + #ifdef KERNEL_2_5 + /* resubmit only for 2.6 */ +- usb_submit_urb( urb, SLAB_ATOMIC ); ++ usb_submit_urb( urb, GFP_ATOMIC ); + #endif + + return; +@@ -546,7 +546,7 @@ + sz->buf_in_len = sz->endpoint->wMaxPacketSize; + #ifdef KERNEL_2_5 + if((sz->buf_in = usb_buffer_alloc(sz->udev, sz->buf_in_len, +- SLAB_ATOMIC, &sz->dma_in)) == NULL ) ++ GFP_ATOMIC, &sz->dma_in)) == NULL ) + { + goto error; + } +@@ -705,7 +705,7 @@ + + sz->urb_in->dev = sz->udev; + #ifdef KERNEL_2_5 +- if (usb_submit_urb(sz->urb_in, SLAB_ATOMIC)) ++ if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) + #else + if (usb_submit_urb(sz->urb_in)) + #endif Index: debian/patches/00list =================================================================== --- debian/patches/00list (revision 219) +++ debian/patches/00list (working copy) @@ -12,3 +12,4 @@ 12_enodev_on_read.dpatch 13_hurd_define_iotbase_u32.dpatch 14_no_linux_config_h.dpatch +15_no_SLAB_ATOMIC.dpatch