diff for duplicates of <52A1A84B.80409@freescale.com> diff --git a/a/1.txt b/N1/1.txt index 56915cb..b365c63 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,4 +1,4 @@ -=D3=DA 2013=C4=EA11=D4=C213=C8=D5 15:30, Huang Shijie =D0=B4=B5=C0: +于 2013年11月13日 15:30, Huang Shijie 写道: > In the uart_handle_cts_change(), uart_write_wakeup() is called after > we call @uart_port->ops->start_tx(). > @@ -18,45 +18,29 @@ > |_ tty_wakeup > |_ ld->ops->write_wakeup > -> With the port->lock held, we call the @write_wakeup. Some implemetation= - of -> the @write_wakeup does not notice that the port->lock is held, and it s= -till -> tries to send data with uart_write() which will try to grab the prot->l= -ock. -> A dead lock occurs, see the following log caught in the Bluetooth by ua= -rt: +> With the port->lock held, we call the @write_wakeup. Some implemetation of +> the @write_wakeup does not notice that the port->lock is held, and it still +> tries to send data with uart_write() which will try to grab the prot->lock. +> A dead lock occurs, see the following log caught in the Bluetooth by uart: > > -------------------------------------------------------------------- > BUG: spinlock lockup suspected on CPU#0, swapper/0/0 > lock: 0xdc3f4410, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0 -> CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.10.17-16839-ge4a= -1bef #1320 -> [<80014cbc>] (unwind_backtrace+0x0/0x138) from [<8001251c>] (show_stack= -+0x10/0x14) -> [<8001251c>] (show_stack+0x10/0x14) from [<802816ac>] (do_raw_spin_lock= -+0x108/0x184) -> [<802816ac>] (do_raw_spin_lock+0x108/0x184) from [<806a22b0>] (_raw_spi= -n_lock_irqsave+0x54/0x60) -> [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) from [<802f5754>] (uart= -_write+0x38/0xe0) -> [<802f5754>] (uart_write+0x38/0xe0) from [<80455270>] (hci_uart_tx_wake= -up+0xa4/0x168) -> [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) from [<802dab18>] (tty_wak= -eup+0x50/0x5c) -> [<802dab18>] (tty_wakeup+0x50/0x5c) from [<802f81a4>] (imx_rtsint+0x50/= -0x80) -> [<802f81a4>] (imx_rtsint+0x50/0x80) from [<802f88f4>] (imx_int+0x158/0x= -17c) -> [<802f88f4>] (imx_int+0x158/0x17c) from [<8007abe0>] (handle_irq_event_= -percpu+0x50/0x194) -> [<8007abe0>] (handle_irq_event_percpu+0x50/0x194) from [<8007ad60>] (ha= -ndle_irq_event+0x3c/0x5c) +> CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.10.17-16839-ge4a1bef #1320 +> [<80014cbc>] (unwind_backtrace+0x0/0x138) from [<8001251c>] (show_stack+0x10/0x14) +> [<8001251c>] (show_stack+0x10/0x14) from [<802816ac>] (do_raw_spin_lock+0x108/0x184) +> [<802816ac>] (do_raw_spin_lock+0x108/0x184) from [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) +> [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) from [<802f5754>] (uart_write+0x38/0xe0) +> [<802f5754>] (uart_write+0x38/0xe0) from [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) +> [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) from [<802dab18>] (tty_wakeup+0x50/0x5c) +> [<802dab18>] (tty_wakeup+0x50/0x5c) from [<802f81a4>] (imx_rtsint+0x50/0x80) +> [<802f81a4>] (imx_rtsint+0x50/0x80) from [<802f88f4>] (imx_int+0x158/0x17c) +> [<802f88f4>] (imx_int+0x158/0x17c) from [<8007abe0>] (handle_irq_event_percpu+0x50/0x194) +> [<8007abe0>] (handle_irq_event_percpu+0x50/0x194) from [<8007ad60>] (handle_irq_event+0x3c/0x5c) > -------------------------------------------------------------------- > > This patch adds more limits to the @write_wakeup, the one who wants to -> implemet the @write_wakeup should follow the limits which avoid the dea= -dlock. +> implemet the @write_wakeup should follow the limits which avoid the deadlock. > > Signed-off-by: Huang Shijie <b32955@freescale.com> > --- @@ -85,3 +69,8 @@ In actually, this is a BUG in the tty code or BT code. thanks Huang Shijie + +-- +To unsubscribe from this list: send the line "unsubscribe linux-serial" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index 428e61d..ae1545b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,13 +3,13 @@ "Subject\0Re: [PATCH RFC] tty_ldisc: add more limits to the @write_wakeup\0" "Date\0Fri, 6 Dec 2013 18:34:51 +0800\0" "To\0Huang Shijie <b32955@freescale.com>\0" - "Cc\0<gregkh@linuxfoundation.org>" - <linux-serial@vger.kernel.org> - <marcel@holtmann.org> - " <linux-bluetooth@vger.kernel.org>\0" + "Cc\0gregkh@linuxfoundation.org" + linux-serial@vger.kernel.org + marcel@holtmann.org + " linux-bluetooth@vger.kernel.org\0" "\00:1\0" "b\0" - "=D3=DA 2013=C4=EA11=D4=C213=C8=D5 15:30, Huang Shijie =D0=B4=B5=C0:\n" + "\344\272\216 2013\345\271\26411\346\234\21013\346\227\245 15:30, Huang Shijie \345\206\231\351\201\223:\n" "> In the uart_handle_cts_change(), uart_write_wakeup() is called after\n" "> we call @uart_port->ops->start_tx().\n" ">\n" @@ -29,45 +29,29 @@ "> \t |_ tty_wakeup\n" "> \t |_ ld->ops->write_wakeup\n" ">\n" - "> With the port->lock held, we call the @write_wakeup. Some implemetation=\n" - " of\n" - "> the @write_wakeup does not notice that the port->lock is held, and it s=\n" - "till\n" - "> tries to send data with uart_write() which will try to grab the prot->l=\n" - "ock.\n" - "> A dead lock occurs, see the following log caught in the Bluetooth by ua=\n" - "rt:\n" + "> With the port->lock held, we call the @write_wakeup. Some implemetation of\n" + "> the @write_wakeup does not notice that the port->lock is held, and it still\n" + "> tries to send data with uart_write() which will try to grab the prot->lock.\n" + "> A dead lock occurs, see the following log caught in the Bluetooth by uart:\n" ">\n" "> --------------------------------------------------------------------\n" "> BUG: spinlock lockup suspected on CPU#0, swapper/0/0\n" "> lock: 0xdc3f4410, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0\n" - "> CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.10.17-16839-ge4a=\n" - "1bef #1320\n" - "> [<80014cbc>] (unwind_backtrace+0x0/0x138) from [<8001251c>] (show_stack=\n" - "+0x10/0x14)\n" - "> [<8001251c>] (show_stack+0x10/0x14) from [<802816ac>] (do_raw_spin_lock=\n" - "+0x108/0x184)\n" - "> [<802816ac>] (do_raw_spin_lock+0x108/0x184) from [<806a22b0>] (_raw_spi=\n" - "n_lock_irqsave+0x54/0x60)\n" - "> [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) from [<802f5754>] (uart=\n" - "_write+0x38/0xe0)\n" - "> [<802f5754>] (uart_write+0x38/0xe0) from [<80455270>] (hci_uart_tx_wake=\n" - "up+0xa4/0x168)\n" - "> [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) from [<802dab18>] (tty_wak=\n" - "eup+0x50/0x5c)\n" - "> [<802dab18>] (tty_wakeup+0x50/0x5c) from [<802f81a4>] (imx_rtsint+0x50/=\n" - "0x80)\n" - "> [<802f81a4>] (imx_rtsint+0x50/0x80) from [<802f88f4>] (imx_int+0x158/0x=\n" - "17c)\n" - "> [<802f88f4>] (imx_int+0x158/0x17c) from [<8007abe0>] (handle_irq_event_=\n" - "percpu+0x50/0x194)\n" - "> [<8007abe0>] (handle_irq_event_percpu+0x50/0x194) from [<8007ad60>] (ha=\n" - "ndle_irq_event+0x3c/0x5c)\n" + "> CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.10.17-16839-ge4a1bef #1320\n" + "> [<80014cbc>] (unwind_backtrace+0x0/0x138) from [<8001251c>] (show_stack+0x10/0x14)\n" + "> [<8001251c>] (show_stack+0x10/0x14) from [<802816ac>] (do_raw_spin_lock+0x108/0x184)\n" + "> [<802816ac>] (do_raw_spin_lock+0x108/0x184) from [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60)\n" + "> [<806a22b0>] (_raw_spin_lock_irqsave+0x54/0x60) from [<802f5754>] (uart_write+0x38/0xe0)\n" + "> [<802f5754>] (uart_write+0x38/0xe0) from [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168)\n" + "> [<80455270>] (hci_uart_tx_wakeup+0xa4/0x168) from [<802dab18>] (tty_wakeup+0x50/0x5c)\n" + "> [<802dab18>] (tty_wakeup+0x50/0x5c) from [<802f81a4>] (imx_rtsint+0x50/0x80)\n" + "> [<802f81a4>] (imx_rtsint+0x50/0x80) from [<802f88f4>] (imx_int+0x158/0x17c)\n" + "> [<802f88f4>] (imx_int+0x158/0x17c) from [<8007abe0>] (handle_irq_event_percpu+0x50/0x194)\n" + "> [<8007abe0>] (handle_irq_event_percpu+0x50/0x194) from [<8007ad60>] (handle_irq_event+0x3c/0x5c)\n" "> --------------------------------------------------------------------\n" ">\n" "> This patch adds more limits to the @write_wakeup, the one who wants to\n" - "> implemet the @write_wakeup should follow the limits which avoid the dea=\n" - "dlock.\n" + "> implemet the @write_wakeup should follow the limits which avoid the deadlock.\n" ">\n" "> Signed-off-by: Huang Shijie <b32955@freescale.com>\n" "> ---\n" @@ -95,6 +79,11 @@ "In actually, this is a BUG in the tty code or BT code.\n" "\n" "thanks\n" - Huang Shijie + "Huang Shijie\n" + "\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-serial\" in\n" + "the body of a message to majordomo@vger.kernel.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -a9fc580032c59674ba4f26f60081c7ca6049d0d180a2585d4f96e0fc47af1e1e +66f5241bd00a014e678da3de7ef0fe883e6e178a22ff3596d81287ca424cbe74
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.