As the 'incomplete_write_byte' fault injector has shown, we need to take care that pulses used for recovery will not be misinterpreted as a regular cycle. This series implements that. This approach makes sure that STOP signals put on the bus do not create additional pulses. We still do 9 pulses only, but generate a STOP signal in case SDA was released again (and we cannot read SDA status). The first patch implements it in a minimal way, so it is suitable for stable. The second patch adds some sanity checking and documentation on top which is not suitable for stable. Looking forward to comments. Kind regards, Wolfram Wolfram Sang (2): i2c: recovery: send STOP if get_sda is not available i2c: recovery: require either get_sda or set_sda drivers/i2c/i2c-core-base.c | 16 +++++++++++++++- include/linux/i2c.h | 12 ++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) -- 2.11.0