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