All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	Ohad Ben-Cohen <ohad@wizery.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Suman Anna <s-anna@ti.com>,
	Fabien DESSENNE <fabien.dessenne@st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	xiang xiao <xiaoxiang781216@gmail.com>
Subject: Re: [PATCH v7 2/2] tty: add rpmsg driver
Date: Wed, 25 Mar 2020 14:31:36 +0100	[thread overview]
Message-ID: <ec061c30-eace-1df9-fa7b-71a61e5710a2@suse.cz> (raw)
In-Reply-To: <1e4ce821-dd9b-bb04-774b-58a255834cf5@st.com>

On 25. 03. 20, 14:15, Arnaud POULIQUEN wrote:
>>> +		if (copied != len)
>>> +			dev_dbg(&rpdev->dev, "trunc buffer: available space is %d\n",
>>> +				copied);
>>> +		tty_flip_buffer_push(&cport->port);
>>> +	} else {
>>> +		/* control message */
>>> +		struct rpmsg_tty_ctrl *msg = data;
>>> +
>>> +		if (len != sizeof(*msg))
>>> +			return -EINVAL;
>>> +
>>> +		cport->data_dst = msg->d_ept_addr;
>>> +
>>> +		/* Update remote cts state */
>>> +		cport->cts = msg->cts ? 1 : 0;
>>
>> Number to bool implicit conversion needs no magic, just do:
>> cport->cts = msg->cts;
> 
> In this case i would prefer  cport->cts = (msg->cts != 1);
> for the conversion

That still looks confusing. In the ternary operator above, you used
msg->cts as a bool implicitly and now you are trying to artificially
create one :)?

IOW in a bool context, "msg->cts ? 1 : 0" is the same as "msg->cts".

>>> +	/*
>>> +	 * Try to send the message to remote processor, if failed return 0 as
>>> +	 * no data sent
>>> +	 */
>>> +	ret = rpmsg_trysendto(cport->d_ept, tmpbuf, msg_size, cport->data_dst);
>>
>> data of rpmsg_trysendto is not const. OK, you seem you need to change
>> that first, I see no blocker for that.
> 
> I created a temporary buffer to ensure that buffer to sent does not exceed the 
> MTU size.
> But perhaps this is an useless protection as the rpmsg_tty_write_room already
> return the MTU value, and so the 'len' variable can not be higher that value
> returned by the write_room?

You still can limit it by msg_size without cloning the buffer, right?

>>> +static int rpmsg_tty_port_activate(struct tty_port *p, struct tty_struct *tty)
>>> +{
>>> +	p->low_latency = (p->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
>>> +
>>> +	/* Allocate the buffer we use for writing data */
>>
>> Where exactly -- am I missing something?
> 
> in tty_port_alloc_xmit_buf. it's a copy past from mips_ejtag_fdc.c,
> I will clean this line if it's confusing.

No, I mean where do you use the allocated buffer? mips_ejtag_fdc.c uses it.

>>> +static int rpmsg_tty_probe(struct rpmsg_device *rpdev)
>>> +{
>>> +	struct rpmsg_tty_port *cport;
>>> +	struct device *dev = &rpdev->dev;
>>> +	struct rpmsg_channel_info chinfo;
>>> +	struct device *tty_dev;
>>> +	int ret;
>>> +
>>> +	cport = rpmsg_tty_alloc_cport();
>>> +	if (IS_ERR(cport)) {
>>> +		dev_err(dev, "failed to alloc tty port\n");
>>> +		return PTR_ERR(cport);
>>> +	}
>>> +
>>> +	if (!strncmp(rpdev->id.name, TTY_CH_NAME_WITH_CTS,
>>> +		     sizeof(TTY_CH_NAME_WITH_CTS))) {
>>
>> sizeof of a string feels unnatural, but will work in this case. Can a
>> compiler optimize strlen of a static string?
> 
> I don't know if a compiler can do this...
> what about replacing sizeof by strlen function? 
> i saw some code example that use strlen with static string...
> (e.g  https://elixir.bootlin.com/linux/latest/source/drivers/edac/edac_mc.c#L1193)

The question was exactly about that: can a compiler optimize it to a
bare number or will strlen call remain there?

thanks,
-- 
js
suse labs

  reply	other threads:[~2020-03-25 13:31 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-24 17:04 [PATCH v7 0/2] Add rpmsg tty driver Arnaud Pouliquen
2020-03-24 17:04 ` Arnaud Pouliquen
2020-03-24 17:04 ` [PATCH v7 1/2] rpmsg: core: add API to get MTU Arnaud Pouliquen
2020-03-24 17:04   ` Arnaud Pouliquen
2020-03-31 17:36   ` Mathieu Poirier
2020-04-01  6:28   ` Jiri Slaby
2020-04-01  6:29     ` Jiri Slaby
2020-04-01 11:34       ` Arnaud POULIQUEN
2020-04-01 11:34         ` Arnaud POULIQUEN
2020-03-24 17:04 ` [PATCH v7 2/2] tty: add rpmsg driver Arnaud Pouliquen
2020-03-24 17:04   ` Arnaud Pouliquen
2020-03-24 17:18   ` Greg Kroah-Hartman
2020-03-25 11:34     ` Arnaud POULIQUEN
2020-03-25 11:34       ` Arnaud POULIQUEN
2020-03-24 17:23   ` Joe Perches
2020-03-25 11:36     ` Arnaud POULIQUEN
2020-03-25 11:36       ` Arnaud POULIQUEN
2020-03-24 17:44   ` Randy Dunlap
2020-03-25  8:10     ` Jiri Slaby
2020-03-25 11:39     ` Arnaud POULIQUEN
2020-03-25 11:39       ` Arnaud POULIQUEN
2020-03-24 20:52   ` Bjorn Andersson
2020-03-24 20:52     ` Bjorn Andersson
2020-03-25 16:57     ` Arnaud POULIQUEN
2020-03-25 16:57       ` Arnaud POULIQUEN
2020-04-06 14:18       ` Arnaud POULIQUEN
2020-04-06 14:18         ` Arnaud POULIQUEN
2020-05-06  2:54       ` Bjorn Andersson
2020-05-06 10:21         ` Arnaud POULIQUEN
2020-03-25  8:45   ` Jiri Slaby
2020-03-25 13:15     ` Arnaud POULIQUEN
2020-03-25 13:15       ` Arnaud POULIQUEN
2020-03-25 13:31       ` Jiri Slaby [this message]
2020-03-26  0:01         ` Joe Perches
2020-03-26  6:38           ` Jiri Slaby
2020-03-26 10:59           ` Arnaud POULIQUEN
2020-03-26 10:59             ` Arnaud POULIQUEN
2020-03-26 12:31             ` Jiri Slaby
2020-03-26 11:40         ` Arnaud POULIQUEN
2020-03-26 11:40           ` Arnaud POULIQUEN
2020-03-26 11:45           ` Jiri Slaby
2020-04-01 18:06   ` Mathieu Poirier
2020-04-02 15:25     ` Arnaud POULIQUEN
2020-04-02 15:25       ` Arnaud POULIQUEN
2020-04-03 20:18       ` Mathieu Poirier
2020-07-15 16:06 ` [PATCH v7 0/2] Add rpmsg tty driver Arnaud POULIQUEN

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=ec061c30-eace-1df9-fa7b-71a61e5710a2@suse.cz \
    --to=jslaby@suse.cz \
    --cc=arnaud.pouliquen@st.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=fabien.dessenne@st.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=ohad@wizery.com \
    --cc=s-anna@ti.com \
    --cc=xiaoxiang781216@gmail.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.