* [uml-devel] Subject: [PATCH 04/91] um: winch_interrupt() can happen inside of free_winch()
@ 2011-08-18 18:59 Al Viro
0 siblings, 0 replies; only message in thread
From: Al Viro @ 2011-08-18 18:59 UTC (permalink / raw)
To: richard; +Cc: linux-kernel, user-mode-linux-devel
... so set winch->fd to -1 before doing free_irq(), to avoid having
winch_interrupt() come from/during the latter and attempt to do
reactivate_fd() on something that's already gone.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
arch/um/drivers/line.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c
index c5bff1d..91bf1894 100644
--- a/arch/um/drivers/line.c
+++ b/arch/um/drivers/line.c
@@ -725,6 +725,8 @@ struct winch {
static void free_winch(struct winch *winch, int free_irq_ok)
{
+ int fd = winch->fd;
+ winch->fd = -1;
if (free_irq_ok)
free_irq(WINCH_IRQ, winch);
@@ -732,8 +734,8 @@ static void free_winch(struct winch *winch, int free_irq_ok)
if (winch->pid != -1)
os_kill_process(winch->pid, 1);
- if (winch->fd != -1)
- os_close_file(winch->fd);
+ if (fd != -1)
+ os_close_file(fd);
if (winch->stack != 0)
free_stack(winch->stack, 0);
kfree(winch);
--
1.7.2.5
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-08-18 18:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-18 18:59 [uml-devel] Subject: [PATCH 04/91] um: winch_interrupt() can happen inside of free_winch() Al Viro
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox