Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp487304pxb; Wed, 29 Sep 2021 03:45:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzHSCZ5thYrgdvsJCJDNTNz248rBisCo3M4/LaHz5cg7Yz9N2fUmz34ZeAzNdIB5g1Gh3UI X-Received: by 2002:a17:90a:1c96:: with SMTP id t22mr5792980pjt.20.1632912347211; Wed, 29 Sep 2021 03:45:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632912347; cv=none; d=google.com; s=arc-20160816; b=hkrjWxlRwazvcQjBO/UzdhmY/ttVxviAPu0JQjuTXbiuDHbBUxQIFc1xIeJP4rwY0k yZmyzs43gLD0mmCyvHm4yugkK97Ijmp+x4CDiFC6DjRT7JisqR+En+Xe+wgkIjkSwB74 IyiYXyF55TjApS+retDAbPNL+jKKnhV+d35iNIb6HPqsxtlYLntueysIG0ReVeLo7Vyb QxK0eXC7bZfmv0dASfxNuVH+pFb9fPzpWBE/AO8aspind8JZ4525gL0x0uIHJc+tu4Y7 KvZ706IZQu0oJvS5IFHx45FkEF+Pp2vSR7Lm7oO4dhiCLfWMP8wR9lYSolLZS6/IyvLq r3kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=hRb6GtweOQTJtQqt+eAkXwu4EBYpz5bP1O98wcEaZU8=; b=wWCl8dGjVaE0dWPbyzTznRNcNLFBZWBOvy2P0tKageBVcwJZcfDaO+Z4V9B8rcsFZR sC11jq1E8boSQ9GlodkIxpFh7a8gi8Pju34yYxB0AaN1tRA8CQCJ/wKq/4I91nvCmpg2 ZiNaK9ZfvhvjRy0YciRkxlK4Nu5CLs9sUTVuwUHSms31fxVzFSWbgIwSbHhKF5R+iwVL obm2JkBiA9YoIezi46oVlPY4zenxqkv1Lo0EXT3Z7YwJnQxWe0VSyw0KYdiiInxS8gCq HCW0W6G9ngdbTnimA/+EBS3W194WmMWUdZEwYfK/0Hk0mUl1r6hKSDae9yxkVG+CiqqB AXIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=peGr8gYE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t132si2698850pfc.90.2021.09.29.03.45.33; Wed, 29 Sep 2021 03:45:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=peGr8gYE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245106AbhI2Jrz (ORCPT + 99 others); Wed, 29 Sep 2021 05:47:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245123AbhI2Jry (ORCPT ); Wed, 29 Sep 2021 05:47:54 -0400 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B698C06161C; Wed, 29 Sep 2021 02:46:14 -0700 (PDT) Received: by mail-pj1-x1029.google.com with SMTP id d4-20020a17090ad98400b0019ece228690so3784130pjv.5; Wed, 29 Sep 2021 02:46:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hRb6GtweOQTJtQqt+eAkXwu4EBYpz5bP1O98wcEaZU8=; b=peGr8gYEJb+0TyUtZ7vqBPpXueOkDMlS1axF66LFGp+fItysdUtbt84LO85Cs0dtzq cm/1L7v8/EfQL6k42GyPV0KORoqxqpv4NwJT+chv0riK852/UnxsfsckGRcUmyFmj2U9 fXp4fvTybVim0j29gBmxqYatGnkHyIE887VAabtHKM/DIESvgRzGuFwjV1gWermpOjnC Li7PPTRmQmgwSDIcBdbalmsBzV2MyyarRyhYpaZlUFX1Ws26MZSQMsJH3g5u1Z8c1vk4 tSIPBekiXfOD1MPPPpEuC9FiruF75kmFceSTLe/3sLgTdCPDKKUsKAzzLkvA0o+Sbphn XQ/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hRb6GtweOQTJtQqt+eAkXwu4EBYpz5bP1O98wcEaZU8=; b=T1HpAolBZ98HZoOsqnI5MPlni0ntYoNfemKTwY7O4UvHvptAunmpU7tAC53w6t3u6D OWPBxwcNnVEDnoInL8sO3PxjGIqtvJ6lIv5+hLZpx3xpNFmxfGh7v0cC/53L3yBbRz1d hRvct+oW0jFuWD3gZkdzxtgnWF/qMPCZE2uO4JAjBMc+LtE+Vs249bKHfNkYzdV896R3 L8mXnMuRfHokktsVeDMj6Nw612mjkLhkFVG1GrSMwk0fVK7vLB9REl/9kK1YGxTer5LI 7RXk20nECzna55CanDMLz1LSagBKRlt2zr5O9aKQ+xZHsCubzKFcBoyuHGoQqxo+tGkt f//Q== X-Gm-Message-State: AOAM531E2+OFufc/cGB5pE3P5U7uyqaFi4evM79guO+G7/1xdQ42SWbf /vLthWRqgvaeps/ICg0//PrZlCv8UilaaMbVRCM= X-Received: by 2002:a17:90b:38cf:: with SMTP id nn15mr5446613pjb.81.1632908773663; Wed, 29 Sep 2021 02:46:13 -0700 (PDT) MIME-Version: 1.0 References: <20210928195548.17846-1-pekka.korpinen@iki.fi> In-Reply-To: <20210928195548.17846-1-pekka.korpinen@iki.fi> From: Alexandru Ardelean Date: Wed, 29 Sep 2021 12:46:02 +0300 Message-ID: Subject: Re: [PATCH] iio: dac: ad5446: Fix ad5622_write() return value To: Pekka Korpinen Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , linux-iio , LKML Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 28, 2021 at 10:57 PM Pekka Korpinen wrote: > > On success i2c_master_send() returns the number of bytes written. The > call from iio_write_channel_info(), however, expects the return value to > be zero on success. > Requires a Fixes tag. But other than that: Reviewed-by: Alexandru Ardelean > Signed-off-by: Pekka Korpinen > --- > This bug causes incorrect consumption of the sysfs buffer in > iio_write_channel_info(). When writing more than two characters to > out_voltage0_raw, the ad5446 write handler is called multiple times > causing unexpected behavior. > > A similar fix was applied for ad5064.c in 2015 - commit 03fe472ef33b > ("iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success"). > > drivers/iio/dac/ad5446.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/dac/ad5446.c b/drivers/iio/dac/ad5446.c > index 488ec69967d6..dfd541bbde5b 100644 > --- a/drivers/iio/dac/ad5446.c > +++ b/drivers/iio/dac/ad5446.c > @@ -531,8 +531,13 @@ static int ad5622_write(struct ad5446_state *st, unsigned val) > { > struct i2c_client *client = to_i2c_client(st->dev); > __be16 data = cpu_to_be16(val); > + int ret; > + > + ret = i2c_master_send(client, (char *)&data, sizeof(data)); > + if (ret < 0) > + return ret; > > - return i2c_master_send(client, (char *)&data, sizeof(data)); > + return 0; > } > > /* > -- > 2.33.0 >