Commit 7d582abf authored by Linus Torvalds's avatar Linus Torvalds

Import 2.1.133pre1

parent 09b9d40a
VERSION = 2 VERSION = 2
PATCHLEVEL = 1 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/) ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
......
...@@ -709,7 +709,7 @@ void enable_irq(unsigned int irq) ...@@ -709,7 +709,7 @@ void enable_irq(unsigned int irq)
spin_lock_irqsave(&irq_controller_lock, flags); spin_lock_irqsave(&irq_controller_lock, flags);
switch (irq_desc[irq].depth) { switch (irq_desc[irq].depth) {
case 1: case 1:
irq_desc[irq].status &= ~IRQ_DISABLED; irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
irq_desc[irq].handler->enable(irq); irq_desc[irq].handler->enable(irq);
/* fall throught */ /* fall throught */
default: default:
......
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
* May 17, 1998 K. Baranowski Fixed SNAP encapsulation in wan_encapsulate * May 17, 1998 K. Baranowski Fixed SNAP encapsulation in wan_encapsulate
* Dec 15, 1998 Arnaldo Melo support for firmwares of up to 128000 bytes * Dec 15, 1998 Arnaldo Melo support for firmwares of up to 128000 bytes
* check wandev->setup return value * 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. */ #include <linux/stddef.h> /* offsetof(), etc. */
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> /* support for loadable modules */ #include <linux/module.h> /* support for loadable modules */
#include <linux/malloc.h> /* kmalloc(), kfree() */ #include <linux/malloc.h> /* kmalloc(), kfree() */
#include <linux/vmalloc.h> /* vmalloc(), vfree() */
#include <linux/mm.h> /* verify_area(), etc. */ #include <linux/mm.h> /* verify_area(), etc. */
#include <linux/string.h> /* inline mem*, str* functions */ #include <linux/string.h> /* inline mem*, str* functions */
#include <asm/segment.h> /* kernel <-> user copy */ #include <asm/segment.h> /* kernel <-> user copy */
...@@ -464,7 +468,7 @@ static int device_setup (wan_device_t* wandev, wandev_conf_t* u_conf) ...@@ -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){ if(conf->data_size > 128000 || conf->data_size < 0){
goto bail; goto bail;
} }
data = kmalloc(conf->data_size, GFP_KERNEL); data = vmalloc(conf->data_size);
if (data) if (data)
{ {
if(!copy_from_user(data, conf->data, conf->data_size)) 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) ...@@ -474,9 +478,8 @@ static int device_setup (wan_device_t* wandev, wandev_conf_t* u_conf)
} }
else else
err = -ENOBUFS; err = -ENOBUFS;
vfree(data);
} }
if (data)
kfree(data);
} }
bail: bail:
kfree(conf); kfree(conf);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment