Re: [PATCH v2 2/2] mfd: cros_ec: Read EC features during probe to catch transfer error

Lee Jones <[email protected]>
Newsgroups dev.linux.lists.chrome-platform,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Thu, 18 Jun 2026, Tzung-Bi Shih wrote:

> On Thu, Jun 18, 2026 at 09:40:37AM +0100, Lee Jones wrote:
> > On Mon, 08 Jun 2026, Andrei Kuchynski wrote:
> > 
> > > cros_ec_check_features() does not return an error if the underlying
> > > EC_CMD_GET_FEATURES command fails. Consequently, when the Fingerprint
> > > device fails to respond, the probe function ignores the failure and falls
> > > back to installing it as 'cros_ec' device instead of 'cros_fp'.
> > > This leads to a sysfs duplicate filename collision later when the real
> > > 'cros_ec' device attempts to register:
> > > 
> > >   cros-ec-spi spi5.0: EC failed to respond in time
> > >   cros-ec-dev.19.auto: cannot get EC features: -110
> > >   sysfs : cannot create duplicate filename '/class/chromeos/cros_ec'
> > >         : sysfs_do_create_link_sd+0x94/0xdc
> > >         : ec_device_probe+0x150/0x4f0
> > > 
> > > Fix this by explicitly calling the newly introduced cros_ec_read_features()
> > > function. If the transfer fails, abort the broken device initialization.
> > > Move the initialization of class_dev before this call to prevent a missing
> > > release() callback warning on the error path.
> > > 
> > > Signed-off-by: Andrei Kuchynski <[email protected]>
> > > ---
> > >  drivers/mfd/cros_ec_dev.c | 18 +++++++++++-------
> > >  1 file changed, 11 insertions(+), 7 deletions(-)
> > > 
> > > diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
> > > index 39430dd44e30c..a8c6300248d59 100644
> > > --- a/drivers/mfd/cros_ec_dev.c
> > > +++ b/drivers/mfd/cros_ec_dev.c
> > > @@ -203,6 +203,17 @@ static int ec_device_probe(struct platform_device *pdev)
> > >  	ec->features.flags[1] = -1U; /* Not cached yet */
> > >  	device_initialize(&ec->class_dev);
> > >  
> > > +	/*
> > > +	 * Add the class device
> > > +	 */
> > > +	ec->class_dev.class = &cros_class;
> > > +	ec->class_dev.parent = dev;
> > > +	ec->class_dev.release = cros_ec_class_release;
> > > +
> > > +	retval = cros_ec_read_features(ec);
> > 
> > This depends on the other patch.
> > 
> > Once it's been Reviewed / Acked, I'd be happy to take both and submit an IB.
> 
> FWIW: I gave my A-b tag in v1 and it has been carried to [PATCH v2 1/2]
> platform/chrome: cros_ec_proto: Introduce cros_ec_read_features helper.

I see it.  Thank you.

Note to self: Take the set after -rc1

-- 
Lee Jones
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.