Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1209887pxf; Fri, 19 Mar 2021 01:29:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydHZdwhiwoUlz8e2zBy0JH3bKdo+gFa1tYS0grGe6GldPTpq48QBYlu9Fl1zmNIkttqEDw X-Received: by 2002:a17:906:13c4:: with SMTP id g4mr3041643ejc.390.1616142590138; Fri, 19 Mar 2021 01:29:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616142590; cv=none; d=google.com; s=arc-20160816; b=XA4rBiwHQyDP3hsp321tkN5dQ4sJeEZ7rwFmHFSSn32KrJ/ygjNcBWfRKa0hwF1w4G eAF1Bik3pBFmfojOvPETYtMC+kljrMzpIMbKSuQhwbSuX5JmDu+Pmb4nF8V1NTLSPYt8 AXZrSiWXkdQaUk5I1jf+Qu1rkVxFisBRxsHiWw9eTsiuafDSBLWuX68lF71z4dzh1azH pNUFYyav4GqizOfCWIQdB182JnFbFs8CPVtLpj6LUQSEUBx7nAMRr9Q5cooBhGcZiqn3 TPCyYhcoedTLt2iX9Ky30cwu6iPld+NLpwY1oIyMtIHA8aP8LPVadktmag99yRRpSeQT CXnQ== 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; bh=OKWX5mOGBDHrBoYW82UCCHEISN39ZRMiNHE+QfKgnPg=; b=fu8XmOmmz1cgsikBUJZ+4wI3GdlgEaYyyjqVAqPCW8DPLRSmQIcqABnZ9ffd3v4vNt erx+FrtsjND8CIF3h43OojIKearbP7bpJLgX3KC9Cq5BU3BE18sffAOr0Mko1y+HyBG4 O9i4EVZWhDJdk+dZ/f74abEtSBjLz1O8gjxa60I8SUkjsCdoSMGrXYTq4RzKuKArXYsi ywvGem5RVWhUdnyeAq+mr0TnmLj9RF+xfIaYNMEZxL2KB/UhN+Srkb+qvbW98cRuwcjW 5KOA+r4bGeEso7tcMZzAiJLThnxe57B39Vx+53T7oC3CzkSIjuMRhY/dBk9XoMFkQiz5 EB/A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cd22si3400387ejb.384.2021.03.19.01.29.28; Fri, 19 Mar 2021 01:29:50 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234328AbhCSI1m (ORCPT + 99 others); Fri, 19 Mar 2021 04:27:42 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:36003 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234370AbhCSI1b (ORCPT ); Fri, 19 Mar 2021 04:27:31 -0400 Received: from mail-oi1-f170.google.com ([209.85.167.170]) by mrelayeu.kundenserver.de (mreue009 [213.165.67.97]) with ESMTPSA (Nemesis) id 1Mn2eN-1m508k21Zv-00k4Xz; Fri, 19 Mar 2021 09:27:29 +0100 Received: by mail-oi1-f170.google.com with SMTP id i3so3931293oik.7; Fri, 19 Mar 2021 01:27:29 -0700 (PDT) X-Gm-Message-State: AOAM533Ihr+PLa/+bmsHSMwQTgBv1RMRGRz2DxADtzmDvzOaS7NOvAlV rJiczUqGXmnbCUZ2uaVB0xLj+eYYeqJXJaJPelw= X-Received: by 2002:a05:6808:3d9:: with SMTP id o25mr177972oie.4.1616142448131; Fri, 19 Mar 2021 01:27:28 -0700 (PDT) MIME-Version: 1.0 References: <20210316074409.2afwsaeqxuwvj7bd@vireshk-i7> <0dfff1ac-50bb-b5bc-72ea-880fd52ed60d@metux.net> <20210319035435.a4reve77hnvjdzwk@vireshk-i7> <20210319054035.47tn747lkagpip6v@vireshk-i7> <834186be-71b1-a67c-8dee-b90527b459c8@intel.com> <20210319063553.eq5aorcyiame6u2e@vireshk-i7> In-Reply-To: <20210319063553.eq5aorcyiame6u2e@vireshk-i7> From: Arnd Bergmann Date: Fri, 19 Mar 2021 09:27:11 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v8] i2c: virtio: add a virtio i2c frontend driver To: Viresh Kumar Cc: Jie Deng , "Enrico Weigelt, metux IT consult" , Linux I2C , virtualization@lists.linux-foundation.org, Linux Kernel Mailing List , "Michael S. Tsirkin" , Wolfram Sang , Jason Wang , Wolfram Sang , Andy Shevchenko , conghui.chen@intel.com, kblaiech@mellanox.com, jarkko.nikula@linux.intel.com, Sergey Semin , Mike Rapoport , loic.poulain@linaro.org, Tali Perry , =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= , Bjorn Andersson , yu1.wang@intel.com, shuo.a.liu@intel.com, Stefan Hajnoczi , Paolo Bonzini Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:1Q37+QolqnRDKOxPz1feO/goy0qtbvnK9nsv9v6P+6CBZawPD8r WzVVe9UAzu9w+zYR7Uj1IhlRlb+a9lV+WNhZVm2lShpaF2o3UwYQ//k6Z+sm14tid9x4H2i PV7s969Ti1DNs326xRA+/b3AkX14oFlKUAr03oynXXJpF+tH3b5xKhdfeTIHucicxmJxgZ7 9HyowpFWo3N+LuaSebZ2g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:EHRUHhdsCFA=:w/QIAkZc2Y4K9o+P0sakqs uYcWUhZ1nGQvx0RFqgktW/OT/0z8zZPnIt3yZR7JbCg+pUEFAyZOSesFu71727FzOg4ozK7XU IAv9rjvHiARAUm7hNU8iGNL7sz3bQftaQSkbLwnGObiRZ3jcBwjtyNWCywChwFCExlq5lG2TA 4GRTAmdPSGaMiyAjhYX2gHjxZsW2riWVRAm1BKKmyTI4kgjjSBkCLVuMe+Fc/O2pnKFhJtRPZ lNOYxXDY0NiGIWVKmfkoX1iQbR6a642QjiU6OF6EYYzmhCaoJ07UvRpM6QWRVZo8CoDEjM2qt 2nQ9d4drSKNQ2xtBwCKwHr3R45Sjnzztnx4tjvqMSRzX41hlG6D/dCCz0dXM+oulDckIShvcR LX1YfTnJhBouXZcq3buT6KrMm5hZUvEbPP0yojv6oHFMXuvbhS5tRHzJ2mV3yc3WX5i09NkGZ 5573CFjnse2DbQtK23gyaqmeJw0v9JJ3ugJbtpcIqNIzH3xHfohgb+rpaE+QVziro9rntw5fc 5gwdO3q1W6stDwWLQ+IXhhi4c5LZFBnEmJzBOCR2GJ6 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 19, 2021 at 7:35 AM Viresh Kumar wrote: > > On 19-03-21, 14:29, Jie Deng wrote: > > I also see example drivers/i2c/busses/i2c-xiic.c. Some people might think > > this way is more clearer than > > > > updating each member in probe. Basically, I think it's just a matter of > > personal preference which doesn't > > Memory used by one instance of struct i2c_adapter (on arm64): > > struct i2c_adapter { ... > }; > > So, this extra instance that i2c-xiic.c is creating (and that you want to > create) is going to waste 1KB of memory and it will never be used. > > This is bad coding practice IMHO and it is not really about personal preference. Agreed. At the minimum, it should have been written as an explicit memcpy() in the few drivers that have that pattern instead of a benign looking struct assignment, but even then there is nothing good about it really. Notably, the largest member by far is the 'struct device', and that by itself should be a red flag as a device is never meant to be allocated statically (this used to be common in pre-DT days, but even then was considered bad style). I suppose the i2c_add_adapter()/i2c_add_numbered_adapter() interface could be redesigned to handle this better, since every driver needs to set the same few fields. That however requires finding someone to spend the effort on coming up with a nice design and converting lots of drivers over. Arnd