On Tue, Sep 4, 2018 at 3:34 PM Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > > > LGTM. > > Though I would expect that call back optional, so, it means that I2C > > core, perhaps, may put some generic one as a stub. > > Right, stupid me. After some many variations, I missed to add one > condition to this version. It should have been something like the > following: > > > > - ret = adap->algo->master_xfer(adap, msgs, num); > > > + if (in_atomic() || irqs_disabled()) > > if (adap->algo->master_xfer_irqless && (in_atomic() || irqs_disabled())) I think something like if (in_atomic() || irqs_disabled()) { if (adap->algo->master_xfer_irqless) ret = adap->algo->master_xfer_irqless(adap, msgs, num); else ret = -ENOTSUPP; } > > > > + ret = adap->algo->master_xfer_irqless(adap, msgs, num); > > > + else > > > + ret = adap->algo->master_xfer(adap, msgs, num); > > > + > > > if (ret != -EAGAIN) > > > break; -- With Best Regards, Andy Shevchenko