|
@@ -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);
|