Re: [RFC PATCH] i2c: remove use of in_atomic()

Wolfram Sang
2019-04-01T11:54:14Z

[-- Attachment #1: Type: text/plain, Size: 1032 bytes --]

> > "This matches the use cases for atomic I2C transfers I have seen so far:
> > very late communication (mostly to a PMIC) to powerdown or reboot the
> > system."
>
> Ah, sorry, I missed that.
>
> > And yes, I would never recommend a HW design to use I2C for shutting
> > down/rebooting. But such HW is out there.
>
> Can we then make the whole thing conditional on:
>
> system_state > SYSTEM_RUNNING
>
> Such that we're sure to never trigger this under any other conditions?

Oh, we can for sure modify the code to something else. Actually, this is
why I was calling out to you. I was never comfortable with the old
'in_atomic() || irqs_disabled()' code, but wasn't sure what would be an
adequate replacement which will not risk regressions.

The above condition makes much more sense to me and is also much more
readable. Can it simply replace irqs_disabled()? Are interrupts already
disabled for system_state > SYSTEM_RUNNING? (I got a bit lost in the
code paths when trying to figure it out)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]