Re: [PATCH] i2c: mux: demux-pinctrl: do not deactivate a master that is not active

From: Peter Rosin
Date: Wed Mar 02 2022 - 17:46:29 EST


On 2022-03-02 22:22, Wolfram Sang wrote:
> On Wed, Mar 02, 2022 at 10:17:20PM +0100, Wolfram Sang wrote:
>>
>>> Attempting to rollback the activation of the current master when
>>> the current master has not been activated is bad. priv->cur_chan
>>
>> But the master is activated?
>>
>> 259 /* switch to first parent as active master */
>> 260 i2c_demux_activate_master(priv, 0);
>>
>> Or am I missing something? :)
>
> But _this_ code is affected by the problem you describe, or?
>
> 237 if (!adap_np) {
> 238 dev_err(&pdev->dev, "can't get phandle for parent %d\n", i);
> 239 err = -ENOENT;
> 240 goto err_rollback;
> 241 }
>

Yes. That is the error path that, if taken, results in the faulty
deactivation. Sorry for not spelling it out...

Cheers,
Peter