linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-serial <linux-serial@vger.kernel.org>,
	"Greg KH" <gregkh@linuxfoundation.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Arnd Bergmann" <arnd@arndb.de>,
	linux-doc@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
	linux-arch@vger.kernel.org, "Lukas Wunner" <lukas@wunner.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Lino Sanfilippo" <LinoSanfilippo@gmx.de>,
	linux-api@vger.kernel.org
Subject: Re: [PATCH v7 5/6] serial: Support for RS-485 multipoint addresses
Date: Thu, 16 Jun 2022 08:04:09 +0300 (EEST)	[thread overview]
Message-ID: <ae5c2e50-1a19-7a8f-7dbf-d7ef84128be6@linux.intel.com> (raw)
In-Reply-To: <Yqno+b/+W2RP8rnh@smile.fi.intel.com>

[-- Attachment #1: Type: text/plain, Size: 2668 bytes --]

On Wed, 15 Jun 2022, Andy Shevchenko wrote:

> On Wed, Jun 15, 2022 at 03:48:28PM +0300, Ilpo Järvinen wrote:
> > Add support for RS-485 multipoint addressing using 9th bit [*]. The
> > addressing mode is configured through .rs485_config().
> > 
> > ADDRB in termios indicates 9th bit addressing mode is enabled. In this
> > mode, 9th bit is used to indicate an address (byte) within the
> > communication line. ADDRB can only be enabled/disabled through
> > .rs485_config() that is also responsible for setting the destination and
> > receiver (filter) addresses.
> > 
> > [*] Technically, RS485 is just an electronic spec and does not itself
> > specify the 9th bit addressing mode but 9th bit seems at least
> > "semi-standard" way to do addressing with RS485.
> > 
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: Jonathan Corbet <corbet@lwn.net>
> > Cc: linux-api@vger.kernel.org
> > Cc: linux-doc@vger.kernel.org
> > Cc: linux-kernel@vger.kernel.org
> > Cc: linux-arch@vger.kernel.org
> 
> Hmm... In order to reduce commit messages you can move these Cc:s after the
> cutter line ('---').

Ok, although the toolchain I use didn't support preserving --- content
so I had to create hack to preserve them, hopefully nothing backfires due 
to the hack. :-)

> > -	__u32	padding[5];		/* Memory is cheap, new structs
> > -					   are a royal PITA .. */
> > +	__u8	addr_recv;
> > +	__u8	addr_dest;
> > +	__u8	padding[2 + 4 * sizeof(__u32)];		/* Memory is cheap, new structs
> > +							 * are a royal PITA .. */
> 
> I'm not sure it's an equivalent. I would leave u32 members  untouched, so
> something like
> 
> 	__u8	addr_recv;
> 	__u8	addr_dest;
> 	__u8	padding0[2];		/* Memory is cheap, new structs
> 	__u32	padding1[4];		 * are a royal PITA .. */
> 
> And repeating about `pahole` tool which may be useful here to check for ABI
> potential changes.

I cannot take __u32 padding[] away like that, this is an uapi header. Or 
do you mean I should create anonymous union? ...I'm skeptical that can be 
pulled off w/o breaking user-space compile in some circumstances. Anon 
unions were only introduced by C11 but is it ok to rely on C11 in uapi/ 
headers?

Even making padding smaller has some unwanted consequences if somebody is 
clearing just .padding. In retrospect, having padding as a direct member 
doesn't seem a good idea. That padding[5] should have been within an union 
right from the start to make this easily extendable.

Maybe create a copy of that struct under another name which is just equal 
sized, that would give more freedom on member naming. But can I change 
ioctl's param type to another struct (in _IOR/_IOWR) w/o breaking 
something?

-- 
 i.

  reply	other threads:[~2022-06-16  5:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-15 12:48 [PATCH v7 0/6] Add RS485 9th bit addressing mode support to DW UART Ilpo Järvinen
2022-06-15 12:48 ` [PATCH v7 5/6] serial: Support for RS-485 multipoint addresses Ilpo Järvinen
2022-06-15 14:13   ` Andy Shevchenko
2022-06-16  5:04     ` Ilpo Järvinen [this message]
2022-06-16  5:48       ` Jiri Slaby
2022-06-16  7:53         ` Ilpo Järvinen
2022-06-15 13:53 ` [PATCH v7 0/6] Add RS485 9th bit addressing mode support to DW UART Andy Shevchenko

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=ae5c2e50-1a19-7a8f-7dbf-d7ef84128be6@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=LinoSanfilippo@gmx.de \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=corbet@lwn.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=u.kleine-koenig@pengutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).