+ uml-disable-winch-irq-before-freeing-handler-data.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     uml: disable winch irq before freeing handler data
has been added to the -mm tree.  Its filename is
     uml-disable-winch-irq-before-freeing-handler-data.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
out what to do about this

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: uml: disable winch irq before freeing handler data
From: Will Newton <will.newton@xxxxxxxxx>

Disable the winch irq early to make sure we don't take an interrupt part
way through the freeing of the handler data, resulting in a crash on
shutdown:

winch_interrupt : read failed, errno = 9
fd 13 is losing SIGWINCH support
------------[ cut here ]------------
WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()
list_del corruption, next is LIST_POISON1 (00100100)
082578c8:  [<081fd77f>] dump_stack+0x22/0x24
082578e0:  [<0807a18a>] warn_slowpath_common+0x5a/0x80
08257908:  [<0807a23e>] warn_slowpath_fmt+0x2e/0x30
08257920:  [<08172196>] list_del+0xc6/0x100
08257940:  [<08060244>] free_winch+0x14/0x80
08257958:  [<080606fb>] winch_interrupt+0xdb/0xe0
08257978:  [<080a65b5>] handle_IRQ_event+0x35/0xe0
08257998:  [<080a8717>] handle_edge_irq+0xb7/0x170
082579bc:  [<08059bc4>] do_IRQ+0x34/0x50
082579d4:  [<08059e1b>] sigio_handler+0x5b/0x80
082579ec:  [<0806a374>] sig_handler_common+0x44/0xb0
08257a68:  [<0806a538>] sig_handler+0x38/0x50
08257a78:  [<0806a77c>] handle_signal+0x5c/0xa0
08257a9c:  [<0806be28>] hard_handler+0x18/0x20
08257aac:  [<00c14400>] 0xc14400

Signed-off-by: Will Newton <will.newton@xxxxxxxxx>
Acked-by: WANG Cong <xiyou.wangcong@xxxxxxxxx>
Cc: Jeff Dike <jdike@xxxxxxxxxxx>
Cc: <stable@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 arch/um/drivers/line.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff -puN arch/um/drivers/line.c~uml-disable-winch-irq-before-freeing-handler-data arch/um/drivers/line.c
--- a/arch/um/drivers/line.c~uml-disable-winch-irq-before-freeing-handler-data
+++ a/arch/um/drivers/line.c
@@ -727,6 +727,9 @@ struct winch {
 
 static void free_winch(struct winch *winch, int free_irq_ok)
 {
+	if (free_irq_ok)
+		free_irq(WINCH_IRQ, winch);
+
 	list_del(&winch->list);
 
 	if (winch->pid != -1)
@@ -735,8 +738,6 @@ static void free_winch(struct winch *win
 		os_close_file(winch->fd);
 	if (winch->stack != 0)
 		free_stack(winch->stack, 0);
-	if (free_irq_ok)
-		free_irq(WINCH_IRQ, winch);
 	kfree(winch);
 }
 
_

Patches currently in -mm which might be from will.newton@xxxxxxxxx are

uml-disable-winch-irq-before-freeing-handler-data.patch
arch-um-drivers-linec-safely-iterate-over-list-of-winch-handlers.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux