From: zhiyong tao <zhiyong.tao@mediatek.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: "timur@kernel.org" <timur@kernel.org>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"alcooperx@gmail.com" <alcooperx@gmail.com>,
"tklauser@distanz.ch" <tklauser@distanz.ch>,
"sean.wang@kernel.org" <sean.wang@kernel.org>,
"srv_heupstream@mediatek.com" <srv_heupstream@mediatek.com>,
"hui.liu@mediatek.com" <hui.liu@mediatek.com>,
"yuchen.huang@mediatek.com" <yuchen.huang@mediatek.com>,
"huihui.wang@mediatek.com" <huihui.wang@mediatek.com>,
"eddie.huang@mediatek.com" <eddie.huang@mediatek.com>,
"sean.wang@mediatek.com" <sean.wang@mediatek.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Subject: Re: [PATCH] uart: mediatek: fix memory corruption issue
Date: Thu, 22 Jul 2021 17:04:25 +0800 [thread overview]
Message-ID: <1626944665.29611.22.camel@mhfsdcap03> (raw)
In-Reply-To: <CAHp75VeZL53VN0w3O160vMurmRT9ZJzJek6=4X6osqjJDuxD3g@mail.gmail.com>
On Wed, 2021-07-14 at 01:20 +0300, Andy Shevchenko wrote:
>
>
> On Saturday, July 10, 2021, Zhiyong Tao <zhiyong.tao@mediatek.com>
> wrote:
>
>
> Please, use “serial: 8260_mtk:” prefix.
==> Hi Andy,
Thanks for your suggestion.
we will change it in the next version.
>
> This patch is used to fix memory
>
>
>
> This is completely confusing start of the sentence. The form of “be
> used to” strongly suggests two things: 1) it was a patch to fix
> something; 2) it is not used anymore and never considered to be used
> again,
>
>
> Besides that Submitting Patches document highly recommends to avoid
> sentences that starts with “this patch”.
>
==>We will change the commit message as "Fix uart corruption issue when
rx power off "in the next version.
Thanks.
>
> corruption issue when rx power off.
> 1. add spin lock in mtk8250_dma_rx_complete function in APDMA
> mode.
> 2. add processing mechanism which count value is 0
>
> Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
> ---
> drivers/tty/serial/8250/8250_mtk.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_mtk.c
> b/drivers/tty/serial/8250/8250_mtk.c
> index f7d3023f860f..09f7d2166315 100644
> --- a/drivers/tty/serial/8250/8250_mtk.c
> +++ b/drivers/tty/serial/8250/8250_mtk.c
> @@ -91,12 +91,15 @@ static void mtk8250_dma_rx_complete(void
> *param)
> struct mtk8250_data *data = up->port.private_data;
> struct tty_port *tty_port = &up->port.state->port;
> struct dma_tx_state state;
> - int copied, total, cnt;
> + unsigned int copied, total, cnt;
> unsigned char *ptr;
> + unsigned long flags;
>
> if (data->rx_status == DMA_RX_SHUTDOWN)
> return;
>
> + spin_lock_irqsave(&up->port.lock, flags);
> +
> dmaengine_tx_status(dma->rxchan, dma->rx_cookie,
> &state);
> total = dma->rx_size - state.residue;
> cnt = total;
> @@ -104,9 +107,11 @@ static void mtk8250_dma_rx_complete(void
> *param)
> if ((data->rx_pos + cnt) > dma->rx_size)
> cnt = dma->rx_size - data->rx_pos;
>
> - ptr = (unsigned char *)(data->rx_pos + dma->rx_buf);
> - copied = tty_insert_flip_string(tty_port, ptr, cnt);
> - data->rx_pos += cnt;
> + if (cnt != 0) {
> + ptr = (unsigned char *)(data->rx_pos +
> dma->rx_buf);
> + copied = tty_insert_flip_string(tty_port, ptr,
> cnt);
> + data->rx_pos += cnt;
> + }
>
> if (total > cnt) {
> ptr = (unsigned char *)(dma->rx_buf);
> @@ -120,6 +125,8 @@ static void mtk8250_dma_rx_complete(void
> *param)
> tty_flip_buffer_push(tty_port);
>
> mtk8250_rx_dma(up);
> +
> + spin_unlock_irqrestore(&up->port.lock, flags);
> }
>
> static void mtk8250_rx_dma(struct uart_8250_port *up)
>
>
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: zhiyong tao <zhiyong.tao@mediatek.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: "timur@kernel.org" <timur@kernel.org>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"alcooperx@gmail.com" <alcooperx@gmail.com>,
"tklauser@distanz.ch" <tklauser@distanz.ch>,
"sean.wang@kernel.org" <sean.wang@kernel.org>,
"srv_heupstream@mediatek.com" <srv_heupstream@mediatek.com>,
"hui.liu@mediatek.com" <hui.liu@mediatek.com>,
"yuchen.huang@mediatek.com" <yuchen.huang@mediatek.com>,
"huihui.wang@mediatek.com" <huihui.wang@mediatek.com>,
"eddie.huang@mediatek.com" <eddie.huang@mediatek.com>,
"sean.wang@mediatek.com" <sean.wang@mediatek.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Subject: Re: [PATCH] uart: mediatek: fix memory corruption issue
Date: Thu, 22 Jul 2021 17:04:25 +0800 [thread overview]
Message-ID: <1626944665.29611.22.camel@mhfsdcap03> (raw)
In-Reply-To: <CAHp75VeZL53VN0w3O160vMurmRT9ZJzJek6=4X6osqjJDuxD3g@mail.gmail.com>
On Wed, 2021-07-14 at 01:20 +0300, Andy Shevchenko wrote:
>
>
> On Saturday, July 10, 2021, Zhiyong Tao <zhiyong.tao@mediatek.com>
> wrote:
>
>
> Please, use “serial: 8260_mtk:” prefix.
==> Hi Andy,
Thanks for your suggestion.
we will change it in the next version.
>
> This patch is used to fix memory
>
>
>
> This is completely confusing start of the sentence. The form of “be
> used to” strongly suggests two things: 1) it was a patch to fix
> something; 2) it is not used anymore and never considered to be used
> again,
>
>
> Besides that Submitting Patches document highly recommends to avoid
> sentences that starts with “this patch”.
>
==>We will change the commit message as "Fix uart corruption issue when
rx power off "in the next version.
Thanks.
>
> corruption issue when rx power off.
> 1. add spin lock in mtk8250_dma_rx_complete function in APDMA
> mode.
> 2. add processing mechanism which count value is 0
>
> Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
> ---
> drivers/tty/serial/8250/8250_mtk.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_mtk.c
> b/drivers/tty/serial/8250/8250_mtk.c
> index f7d3023f860f..09f7d2166315 100644
> --- a/drivers/tty/serial/8250/8250_mtk.c
> +++ b/drivers/tty/serial/8250/8250_mtk.c
> @@ -91,12 +91,15 @@ static void mtk8250_dma_rx_complete(void
> *param)
> struct mtk8250_data *data = up->port.private_data;
> struct tty_port *tty_port = &up->port.state->port;
> struct dma_tx_state state;
> - int copied, total, cnt;
> + unsigned int copied, total, cnt;
> unsigned char *ptr;
> + unsigned long flags;
>
> if (data->rx_status == DMA_RX_SHUTDOWN)
> return;
>
> + spin_lock_irqsave(&up->port.lock, flags);
> +
> dmaengine_tx_status(dma->rxchan, dma->rx_cookie,
> &state);
> total = dma->rx_size - state.residue;
> cnt = total;
> @@ -104,9 +107,11 @@ static void mtk8250_dma_rx_complete(void
> *param)
> if ((data->rx_pos + cnt) > dma->rx_size)
> cnt = dma->rx_size - data->rx_pos;
>
> - ptr = (unsigned char *)(data->rx_pos + dma->rx_buf);
> - copied = tty_insert_flip_string(tty_port, ptr, cnt);
> - data->rx_pos += cnt;
> + if (cnt != 0) {
> + ptr = (unsigned char *)(data->rx_pos +
> dma->rx_buf);
> + copied = tty_insert_flip_string(tty_port, ptr,
> cnt);
> + data->rx_pos += cnt;
> + }
>
> if (total > cnt) {
> ptr = (unsigned char *)(dma->rx_buf);
> @@ -120,6 +125,8 @@ static void mtk8250_dma_rx_complete(void
> *param)
> tty_flip_buffer_push(tty_port);
>
> mtk8250_rx_dma(up);
> +
> + spin_unlock_irqrestore(&up->port.lock, flags);
> }
>
> static void mtk8250_rx_dma(struct uart_8250_port *up)
>
>
WARNING: multiple messages have this Message-ID (diff)
From: zhiyong tao <zhiyong.tao@mediatek.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: "timur@kernel.org" <timur@kernel.org>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"alcooperx@gmail.com" <alcooperx@gmail.com>,
"tklauser@distanz.ch" <tklauser@distanz.ch>,
"sean.wang@kernel.org" <sean.wang@kernel.org>,
"srv_heupstream@mediatek.com" <srv_heupstream@mediatek.com>,
"hui.liu@mediatek.com" <hui.liu@mediatek.com>,
"yuchen.huang@mediatek.com" <yuchen.huang@mediatek.com>,
"huihui.wang@mediatek.com" <huihui.wang@mediatek.com>,
"eddie.huang@mediatek.com" <eddie.huang@mediatek.com>,
"sean.wang@mediatek.com" <sean.wang@mediatek.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-serial@vger.kernel.org" <linux-serial@vger.kernel.org>
Subject: Re: [PATCH] uart: mediatek: fix memory corruption issue
Date: Thu, 22 Jul 2021 17:04:25 +0800 [thread overview]
Message-ID: <1626944665.29611.22.camel@mhfsdcap03> (raw)
In-Reply-To: <CAHp75VeZL53VN0w3O160vMurmRT9ZJzJek6=4X6osqjJDuxD3g@mail.gmail.com>
On Wed, 2021-07-14 at 01:20 +0300, Andy Shevchenko wrote:
>
>
> On Saturday, July 10, 2021, Zhiyong Tao <zhiyong.tao@mediatek.com>
> wrote:
>
>
> Please, use “serial: 8260_mtk:” prefix.
==> Hi Andy,
Thanks for your suggestion.
we will change it in the next version.
>
> This patch is used to fix memory
>
>
>
> This is completely confusing start of the sentence. The form of “be
> used to” strongly suggests two things: 1) it was a patch to fix
> something; 2) it is not used anymore and never considered to be used
> again,
>
>
> Besides that Submitting Patches document highly recommends to avoid
> sentences that starts with “this patch”.
>
==>We will change the commit message as "Fix uart corruption issue when
rx power off "in the next version.
Thanks.
>
> corruption issue when rx power off.
> 1. add spin lock in mtk8250_dma_rx_complete function in APDMA
> mode.
> 2. add processing mechanism which count value is 0
>
> Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
> ---
> drivers/tty/serial/8250/8250_mtk.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_mtk.c
> b/drivers/tty/serial/8250/8250_mtk.c
> index f7d3023f860f..09f7d2166315 100644
> --- a/drivers/tty/serial/8250/8250_mtk.c
> +++ b/drivers/tty/serial/8250/8250_mtk.c
> @@ -91,12 +91,15 @@ static void mtk8250_dma_rx_complete(void
> *param)
> struct mtk8250_data *data = up->port.private_data;
> struct tty_port *tty_port = &up->port.state->port;
> struct dma_tx_state state;
> - int copied, total, cnt;
> + unsigned int copied, total, cnt;
> unsigned char *ptr;
> + unsigned long flags;
>
> if (data->rx_status == DMA_RX_SHUTDOWN)
> return;
>
> + spin_lock_irqsave(&up->port.lock, flags);
> +
> dmaengine_tx_status(dma->rxchan, dma->rx_cookie,
> &state);
> total = dma->rx_size - state.residue;
> cnt = total;
> @@ -104,9 +107,11 @@ static void mtk8250_dma_rx_complete(void
> *param)
> if ((data->rx_pos + cnt) > dma->rx_size)
> cnt = dma->rx_size - data->rx_pos;
>
> - ptr = (unsigned char *)(data->rx_pos + dma->rx_buf);
> - copied = tty_insert_flip_string(tty_port, ptr, cnt);
> - data->rx_pos += cnt;
> + if (cnt != 0) {
> + ptr = (unsigned char *)(data->rx_pos +
> dma->rx_buf);
> + copied = tty_insert_flip_string(tty_port, ptr,
> cnt);
> + data->rx_pos += cnt;
> + }
>
> if (total > cnt) {
> ptr = (unsigned char *)(dma->rx_buf);
> @@ -120,6 +125,8 @@ static void mtk8250_dma_rx_complete(void
> *param)
> tty_flip_buffer_push(tty_port);
>
> mtk8250_rx_dma(up);
> +
> + spin_unlock_irqrestore(&up->port.lock, flags);
> }
>
> static void mtk8250_rx_dma(struct uart_8250_port *up)
>
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-07-22 9:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-10 9:01 [PATCH 0/1] Mediatek uart patch Zhiyong Tao
2021-07-10 9:01 ` Zhiyong Tao
2021-07-10 9:01 ` Zhiyong Tao
2021-07-10 9:01 ` [PATCH] uart: mediatek: fix memory corruption issue Zhiyong Tao
2021-07-10 9:01 ` Zhiyong Tao
2021-07-10 9:01 ` Zhiyong Tao
2021-07-21 10:46 ` Greg KH
2021-07-21 10:46 ` Greg KH
2021-07-21 10:46 ` Greg KH
2021-07-22 10:03 ` zhiyong tao
2021-07-22 10:03 ` zhiyong tao
2021-07-22 10:03 ` zhiyong tao
2021-07-22 10:12 ` Greg KH
2021-07-22 10:12 ` Greg KH
2021-07-22 10:12 ` Greg KH
2021-07-22 11:52 ` zhiyong tao
2021-07-22 11:52 ` zhiyong tao
2021-07-22 11:52 ` zhiyong tao
[not found] ` <CAHp75VeZL53VN0w3O160vMurmRT9ZJzJek6=4X6osqjJDuxD3g@mail.gmail.com>
2021-07-22 9:04 ` zhiyong tao [this message]
2021-07-22 9:04 ` zhiyong tao
2021-07-22 9:04 ` zhiyong tao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1626944665.29611.22.camel@mhfsdcap03 \
--to=zhiyong.tao@mediatek.com \
--cc=alcooperx@gmail.com \
--cc=andy.shevchenko@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=eddie.huang@mediatek.com \
--cc=hui.liu@mediatek.com \
--cc=huihui.wang@mediatek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=sean.wang@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=srv_heupstream@mediatek.com \
--cc=timur@kernel.org \
--cc=tklauser@distanz.ch \
--cc=yuchen.huang@mediatek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.