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

Reply via email to