Re: [PATCH v11] i2c: virtio: add a virtio i2c frontend driver

From: Jie Deng
Date: Fri Jul 02 2021 - 03:15:31 EST



On 2021/7/2 14:56, Viresh Kumar wrote:
On 02-07-21, 14:52, Jie Deng wrote:
This is not efficient. If adding the ith request to the queue fails, we can
still send

the requests before it.
Not really. Normally the requests which are sent together by clients, are linked
together, like a state machine. So if the first one is sent, but not the second
one, then there is not going to be any meaningful result of that.

The i2c core doesn't club requests together from different clients in a single
i2c_transfer() call. So you must assume i2c_transfer(), irrespective of the
number of underlying messages in it, as atomic. If you fail, the client is going
to retry everything again or assume it failed completely.


Then what is the need to design this interface as "return the number of messages successfully
processed, or a negative value on error". Just return success or fail is enough.

Here, we didn't break the contract with the interface "master_xfer", so if there is a problem then
the contract may be the problem.