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

Greg Kroah-Hartman
2023-09-06T08:51:03Z

On Wed, Sep 06, 2023 at 08:05:59AM +0200, Heiner Kallweit wrote:
> 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.

No, fixes tags are not required, but they are nice. For the full set of
rules on how to do this, please see: