]> git.neil.brown.name Git - history.git/commitdiff
Import 2.1.133pre1 2.1.133pre1
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:17:41 +0000 (15:17 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:17:41 +0000 (15:17 -0500)
Makefile
arch/i386/kernel/irq.c
net/wanrouter/wanmain.c

index 39eda5fa88b799b20fdfb82d363cfc415a5d6ebe..b244ba9e0ea7eb8d4af0055e4fe1bc08375242d3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 2
 PATCHLEVEL = 1
-SUBLEVEL = 132
+SUBLEVEL = 133
 
 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
 
index b1fbe0ebae2da1f25d61b3eba2af3355f4cbe0c5..3844fa00c4a1d51773a8bcdb6d505d3209c33de9 100644 (file)
@@ -709,7 +709,7 @@ void enable_irq(unsigned int irq)
        spin_lock_irqsave(&irq_controller_lock, flags);
        switch (irq_desc[irq].depth) {
        case 1:
-               irq_desc[irq].status &= ~IRQ_DISABLED;
+               irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
                irq_desc[irq].handler->enable(irq);
                /* fall throught */
        default:
index cce9df8c9cf5ccfeb6c71fae139eefae8de4e1c0..5be5c62efb36884d7a8fa26137d6b80c71f34a37 100644 (file)
@@ -27,6 +27,9 @@
 * May 17, 1998  K. Baranowski  Fixed SNAP encapsulation in wan_encapsulate
 * Dec 15, 1998  Arnaldo Melo    support for firmwares of up to 128000 bytes
 *                               check wandev->setup return value
+* Dec 22, 1998  Arnaldo Melo    vmalloc/vfree used in device_setup to allocate
+*                               kernel memory and copy configuration data to
+*                               kernel space (for big firmwares)
 *****************************************************************************/
 
 #include <linux/stddef.h>      /* offsetof(), etc. */
@@ -34,6 +37,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>      /* support for loadable modules */
 #include <linux/malloc.h>      /* kmalloc(), kfree() */
+#include <linux/vmalloc.h>      /* vmalloc(), vfree() */
 #include <linux/mm.h>          /* verify_area(), etc. */
 #include <linux/string.h>      /* inline mem*, str* functions */
 #include <asm/segment.h>       /* kernel <-> user copy */
@@ -464,7 +468,7 @@ static int device_setup (wan_device_t* wandev, wandev_conf_t* u_conf)
                if(conf->data_size > 128000 || conf->data_size < 0){
                        goto bail;
                }
-               data = kmalloc(conf->data_size, GFP_KERNEL);
+               data = vmalloc(conf->data_size);
                if (data)
                {
                        if(!copy_from_user(data, conf->data, conf->data_size))
@@ -474,9 +478,8 @@ static int device_setup (wan_device_t* wandev, wandev_conf_t* u_conf)
                        }
                        else 
                                err = -ENOBUFS;
+                       vfree(data);
                }
-               if (data)
-                       kfree(data);
        }
 bail:
        kfree(conf);