Re: [PATCH v2] i2c: i801: fix potential race in i801_block_transaction_byte_by_byte

Heiner Kallweit
2023-09-06T06:06:07Z

On 06.09.2023 00:59, Andi Shyti wrote:
> Hi Heiner,
>
> On Tue, Sep 05, 2023 at 01:35:10PM +0200, Heiner Kallweit wrote:
>> On 05.09.2023 11:11, Andi Shyti wrote:
>>> Hi Jean,
>>>
>>> On Tue, Sep 05, 2023 at 10:12:43AM +0200, Jean Delvare wrote:
>>>> On Sat, 02 Sep 2023 22:10:52 +0200, Heiner Kallweit wrote:
>>>>> Currently we set SMBHSTCNT_LAST_BYTE only after the host has started
>>>>> receiving the last byte. If we get e.g. preempted before setting
>>>>> SMBHSTCNT_LAST_BYTE, the host may be finished with receiving the byte
>>>>> before SMBHSTCNT_LAST_BYTE is set.
>>>>> Therefore change the code to set SMBHSTCNT_LAST_BYTE before writing
>>>>> SMBHSTSTS_BYTE_DONE for the byte before the last byte. Now the code
>>>>> is also consistent with what we do in i801_isr_byte_done().
>>>>>
>>>>> Reported-by: Jean Delvare <jdelvare@suse.com>
>>>>
>>>> Note for Wolfram: checkpatch says we should insert here:
>>>>
>>>> Closes: https://lore.kernel.org/linux-i2c/20230828152747.09444625@endymion.delvare/
>>>
>>> does this also need a Fixes: tag? I tried to check it, but there
>>> was an intricate jungle of commits in these lines.
>>>
>> Quoting Jean from previous communication about this patch:
>> As far as I see, the race condition already existed when the kernel
>> switched to git, so there's no point in having a Fixes statement.
>
> true... I forgot about this comment.
>
> Anyway I think that this should, then, go to all the stable
> kernels and I believe that without the Fixes tag this will never
> be picked up.
>

Then we may have to set the Fixes tag to the following?
1da177e4c3f4 ("Linux-2.6.12-rc2")
Plus a comment that the issue existed before already.

> Maybe Greg can advise here.
>
I *think* Greg (or a bot of him) would complain when receiving
something for stable w/o a Fixes tag.

> Would you mind resending this patch Cc'eing the stable kernel and
> adding a note after the '---'?
>
OK

> Andi
>
>>> Anyway, you can add:
>>>
>>> Acked-by: Andi Shyti <andi.shyti@kernel.org>
>>>
>>> Thanks,
>>> Andi
>>