Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1087622pxf; Thu, 18 Mar 2021 20:56:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxUYyDlpETUzpVVIOIhv46bRxbJsbWR+faeb1zQazICALwvLNYeNohetQP7BD4w8PFoKuqV X-Received: by 2002:a17:906:4c85:: with SMTP id q5mr2018665eju.375.1616126181942; Thu, 18 Mar 2021 20:56:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616126181; cv=none; d=google.com; s=arc-20160816; b=HPg+aI1Ru/tmkNmoTnnUn85zmGfQ/zseMV4teC+zORIlVjBZ74/Zbj8GrevLJvi2CE IlapcCd8VJ05IWHKoPgObxd1y6g5T18oA+LoxcU4DMPtXbF4IcXQkDd3EbJceCg2qzgX ONw0lCdc5ntBAnEo721OZ4iG02xRIH/HDNVdWl0gMLx+kPXrahWApQQQ4AuKe6IS4i5v Pqpd1s+BXu9NomkKR3mp3ZI3W1UjtTPhJEc7fgncUqYAQT1ZZEGog51b9T0AGvAcSoF1 PcgrwnapBE49/CRiRaWsjoLRT2Rskk4j++870Xc4Rsvhk+l38FHi8LJ/K5WDzmrF0Zx5 uTNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=narkUsbR5ZUD1XMmhTYoytTDn8nBO3CvEWs/Vsjdzh4=; b=f0/s/ztCGZwk+q9Om5UY0L7sI82GS/8Q2M6n4eHr4Fa5JNL7zTB+6pLKDjCdesZnjR QodkpD/hDiS9MpoMmCjElMrBSEc5Rt2PzClskdwnk6aRCbABDc+M9xYMBRKEcTaxK3pK gbIsBXazHaS02YvuCnzQzmIOi8HY4AHIKxA3R8zAJdES7GDcPVhr70QF8IQC7UqgvU3X Hu+1wwRv2iPp0q2/rpi6i9eMOQh4MfevWdsFYaRs+UxsmfEi9xE9KE+nR7UEMAWa4fSO 0rXIx1DBUuCU8N112PPjGQsShhWxTnoZLpMwOkSi6Qfpgigd0wqG5NRAZWZFdSsuDHiI vGZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SCqTJyXs; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o6si3481044edi.504.2021.03.18.20.55.59; Thu, 18 Mar 2021 20:56:21 -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=@linaro.org header.s=google header.b=SCqTJyXs; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233572AbhCSDyp (ORCPT + 99 others); Thu, 18 Mar 2021 23:54:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233586AbhCSDyj (ORCPT ); Thu, 18 Mar 2021 23:54:39 -0400 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 953A1C06174A for ; Thu, 18 Mar 2021 20:54:39 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id j25so4944960pfe.2 for ; Thu, 18 Mar 2021 20:54:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=narkUsbR5ZUD1XMmhTYoytTDn8nBO3CvEWs/Vsjdzh4=; b=SCqTJyXszA4QtpOWiiaGqTicH6VMbqAXvLD8IEo3iKOG64GQU6qaQrlQuZiMfDrQ2M AV7fsI6pokKg3fwm+gIgwnSYCsJvwSzUmTiguQITXtPMM8XNBFlsc3PFrgEszFIwP31a XDsX4VZLOnQoG34Bm1HwGINs9ilviRRoBxoucehvmHZffLfHtZddjEVCKIiSEIBiIgjH S+IgHh4H8f0Sscg9fTAEDKknzmi7A7YfEbS+ikNbNuaYKEYKMxsCA9W6v/t+jAyp07Bd DSXl3jq9Bl0DdGM3rG2dY3ldEf0iiiRZfCGGMZYQO2ET+3e5V0m3d4KPYA3ErJTmtuGU dwhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=narkUsbR5ZUD1XMmhTYoytTDn8nBO3CvEWs/Vsjdzh4=; b=THAt6y/XwVROVByM7PSnlremmsIfzdHYnTHZMR6/nEnRsaDP2xGelm3dtFv6HjLgCz 7G6N7AX0Hl112wc5AZJO/drb7Qr3Y0X21HWNvdrNjk8P/w84clKBUPX3JFRar3MKXWOM DlC02DCLYMWXN6ArkC6ZcWhpNrIgoGeMK6YbfCfkGtS+kRaUxNhfZoTYhqIkeHihMPNE zxJ2qWO0JuJ6rFSD2ilcBm9tFs4aqbjMG2X1Wh4HwTWf4tcir+6ulOAPeyLMv08fA4UO pJPqfHCGLzJE1BUi5206rZ3UpL0L+0U4IMDoMT2YSnUdAG6Owk4t+dLEnSeAxmhAjmW8 ySfw== X-Gm-Message-State: AOAM532WP6E+VhyHiFoXl2gZy3R5Aen8CHS8Wn8HenLrKSBUBL0ZSuF7 mNSE2Q1t+Wuq+CkCuXg/TNf5sg== X-Received: by 2002:a62:3503:0:b029:1aa:6f15:b9fe with SMTP id c3-20020a6235030000b02901aa6f15b9femr7100635pfa.65.1616126078954; Thu, 18 Mar 2021 20:54:38 -0700 (PDT) Received: from localhost ([122.171.124.15]) by smtp.gmail.com with ESMTPSA id bj15sm3609033pjb.9.2021.03.18.20.54.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Mar 2021 20:54:37 -0700 (PDT) Date: Fri, 19 Mar 2021 09:24:35 +0530 From: Viresh Kumar To: Arnd Bergmann Cc: "Enrico Weigelt, metux IT consult" , Jie Deng , 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 , Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= , Bjorn Andersson , yu1.wang@intel.com, shuo.a.liu@intel.com, Stefan Hajnoczi , Paolo Bonzini Subject: Re: [PATCH v8] i2c: virtio: add a virtio i2c frontend driver Message-ID: <20210319035435.a4reve77hnvjdzwk@vireshk-i7> References: <20210316074409.2afwsaeqxuwvj7bd@vireshk-i7> <0dfff1ac-50bb-b5bc-72ea-880fd52ed60d@metux.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716-391-311a52 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18-03-21, 15:52, Arnd Bergmann wrote: > Allowing multiple virtio-i2c controllers in one system, and multiple i2c > devices attached to each controller is clearly something that has to work. Good. > I don't actually see a limitation though. Viresh, what is the problem > you see for having multiple controllers? I thought this would be a problem in that case as we are using the global virtio_adapter here. + vi->adap = &virtio_adapter; + i2c_set_adapdata(vi->adap, vi); Multiple calls to probe() will end up updating the same pointer inside adap. + vi->adap->dev.parent = &vdev->dev; Same here, overwrite. + /* Setup ACPI node for controlled devices which will be probed through ACPI */ + ACPI_COMPANION_SET(&vi->adap->dev, ACPI_COMPANION(pdev)); + vi->adap->timeout = HZ / 10; These may be fine, but still not ideal I believe. + ret = i2c_add_adapter(vi->adap); i This should be a problem as well, we must be adding this to some sort of list, doing some RPM stuff, etc ? Jie, the solution is to allocate memory for adap at runtime in probe and remove the virtio_adapter structure completely. -- viresh