From: Lee Jones <lee.jones@linaro.org>
To: Kieran Bingham <kieran@ksquared.org.uk>
Cc: Peter Rosin <peda@axentia.se>, Wolfram Sang <wsa@the-dreams.de>,
linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
Javier Martinez Canillas <javier@osg.samsung.com>,
sameo@linux.intel.com
Subject: Re: [PATCHv6 08/11] i2c: match vendorless strings on the internal string length
Date: Tue, 1 Nov 2016 07:22:29 +0000 [thread overview]
Message-ID: <20161101072229.GP13127@dell> (raw)
In-Reply-To: <51902bcc-f5e6-ff9a-9aeb-bf7b8deeaf26@bingham.xyz>
On Mon, 31 Oct 2016, Kieran Bingham wrote:
> On 31/10/16 13:55, Peter Rosin wrote:
> > On 2016-10-26 10:53, Lee Jones wrote:
> >> On Tue, 25 Oct 2016, Kieran Bingham wrote:
> >>
> >>> If a user provides a shortened string to match a device to the sysfs i2c
> >>> interface it will match on the first string that contains that string
> >>> prefix.
> >>>
> >>> for example:
> >>> echo a 0x68 > /sys/bus/i2c/devices/i2c-2/new_device
> >>>
> >>> will match as3711, as3722, and ak8975 incorrectly.
> >>>
> >>> Signed-off-by: Kieran Bingham <kieran@bingham.xyz>
> >>
> >> Acked-by: Lee Jones <lee.jones@linaro.org>
> >>
> >>> ---
> >>> drivers/i2c/i2c-core.c | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> >>> index 01bce56f733a..50c9cfdb87b7 100644
> >>> --- a/drivers/i2c/i2c-core.c
> >>> +++ b/drivers/i2c/i2c-core.c
> >>> @@ -1708,7 +1708,7 @@ i2c_of_match_device_strip_vendor(const struct of_device_id *matches,
> >>> else
> >>> name++;
> >>>
> >>> - if (!strncasecmp(client->name, name, strlen(client->name)))
> >>> + if (!strncasecmp(client->name, name, strlen(name)))
> >>> return matches;
> >>> }
> >>>
> >>
> >
> > Is that really so much better?
>
> My original thought was that it verifies 'more' of the userspace input.
> but...
>
> > With this patch
> > echo as3711CRAP 0x68 > /sys/...
> > will match as3711.
> >
> > What if there is some as37112 driver that is the real target?
>
> You're right - It looks like the only way to do this correctly is to
> match the strncasecmp and the strlen of both strings.
>
> So really we should be using sysfs_streq(). The only limitation there is
> that this original code was performing a case-insensitive compare.
>
> Lee - Where did the requirement for case insensitive matching come from
> in your original code. Is it expected to be case-insensitive from the
> I2C sysfs interface? or are dt-nodes expected to be case-sensitive?
Compatible strings are always lower-case.
> Does anyone see reason that this shouldn't be using sysfs_streq()? or do
> we need a sysfs_strcaseeq()...
... but I don't see an issue with not being case sensitive. Certainly
if it makes the logic easier/more consistent.
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
next prev parent reply other threads:[~2016-11-01 7:22 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-25 16:41 [PATCHv6 00/11] i2c: Relax mandatory I2C ID table passing Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 01/11] i2c: Add pointer dereference protection to i2c_match_id() Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 02/11] i2c: Add the ability to match device to compatible string without an of_node Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 03/11] i2c: Match using traditional OF methods, then by vendor-less compatible strings Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 04/11] i2c: Make I2C ID tables non-mandatory for DT'ed devices Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 05/11] i2c: Export i2c_match_id() for direct use by device drivers Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 06/11] i2c: Provide a temporary .probe_new() call-back type Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 07/11] i2c: match dt-style device names from sysfs interface Kieran Bingham
2016-10-26 8:55 ` Lee Jones
2016-10-25 16:41 ` [PATCHv6 08/11] i2c: match vendorless strings on the internal string length Kieran Bingham
2016-10-26 8:53 ` Lee Jones
2016-10-31 13:55 ` Peter Rosin
2016-10-31 13:55 ` Peter Rosin
2016-10-31 15:01 ` Kieran Bingham
2016-11-01 7:22 ` Lee Jones [this message]
2016-10-25 16:41 ` [PATCHv6 09/11] mfd: 88pm860x: Move over to new I2C device .probe() call Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 10/11] mfd: as3722: Rid driver of superfluous I2C device ID structure Kieran Bingham
2016-10-25 16:41 ` [PATCHv6 11/11] [TESTPATCH] rtc: convert ds1307 to interim probe_new Kieran Bingham
2016-11-07 0:07 ` [PATCHv6 00/11] i2c: Relax mandatory I2C ID table passing Wolfram Sang
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=20161101072229.GP13127@dell \
--to=lee.jones@linaro.org \
--cc=javier@osg.samsung.com \
--cc=kieran@ksquared.org.uk \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peda@axentia.se \
--cc=sameo@linux.intel.com \
--cc=wsa@the-dreams.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 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.