Commit f2e62992 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

[PATCH] uml: IRQ handler tidying

Tidying the irq code -
	make a variable static
	activate_fd can call kmalloc directly since it's now kernel code
	added a no-locking comment
	fixed a style violation
Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f688144b
...@@ -79,7 +79,7 @@ int show_interrupts(struct seq_file *p, void *v) ...@@ -79,7 +79,7 @@ int show_interrupts(struct seq_file *p, void *v)
return 0; return 0;
} }
struct irq_fd *active_fds = NULL; static struct irq_fd *active_fds = NULL;
static struct irq_fd **last_irq_ptr = &active_fds; static struct irq_fd **last_irq_ptr = &active_fds;
extern void free_irqs(void); extern void free_irqs(void);
...@@ -124,8 +124,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id) ...@@ -124,8 +124,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
if (err < 0) if (err < 0)
goto out; goto out;
new_fd = um_kmalloc(sizeof(*new_fd));
err = -ENOMEM; err = -ENOMEM;
new_fd = kmalloc(sizeof(struct irq_fd), GFP_KERNEL);
if (new_fd == NULL) if (new_fd == NULL)
goto out; goto out;
...@@ -176,9 +176,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id) ...@@ -176,9 +176,8 @@ int activate_fd(int irq, int fd, int type, void *dev_id)
*/ */
spin_unlock_irqrestore(&irq_lock, flags); spin_unlock_irqrestore(&irq_lock, flags);
kfree(tmp_pfd); kfree(tmp_pfd);
tmp_pfd = NULL;
tmp_pfd = um_kmalloc(n); tmp_pfd = kmalloc(n, GFP_KERNEL);
if (tmp_pfd == NULL) if (tmp_pfd == NULL)
goto out_kfree; goto out_kfree;
......
...@@ -20,6 +20,10 @@ ...@@ -20,6 +20,10 @@
#include "os.h" #include "os.h"
#include "um_malloc.h" #include "um_malloc.h"
/*
* Locked by irq_lock in arch/um/kernel/irq.c. Changed by os_create_pollfd
* and os_free_irq_by_cb, which are called under irq_lock.
*/
static struct pollfd *pollfds = NULL; static struct pollfd *pollfds = NULL;
static int pollfds_num = 0; static int pollfds_num = 0;
static int pollfds_size = 0; static int pollfds_size = 0;
...@@ -58,7 +62,7 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds) ...@@ -58,7 +62,7 @@ int os_create_pollfd(int fd, int events, void *tmp_pfd, int size_tmpfds)
if (pollfds_num == pollfds_size) { if (pollfds_num == pollfds_size) {
if (size_tmpfds <= pollfds_size * sizeof(pollfds[0])) { if (size_tmpfds <= pollfds_size * sizeof(pollfds[0])) {
/* return min size needed for new pollfds area */ /* return min size needed for new pollfds area */
return((pollfds_size + 1) * sizeof(pollfds[0])); return (pollfds_size + 1) * sizeof(pollfds[0]);
} }
if (pollfds != NULL) { if (pollfds != NULL) {
......
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