Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp698909iob; Thu, 28 Apr 2022 09:54:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJykVQbWy+jGKb8VzXuPU+1GsT3p4Q9A9BRkrMr5x/HC7Pk/JguOog5YmbT4Lsees4vtwgNB X-Received: by 2002:a2e:83cc:0:b0:24d:422e:d510 with SMTP id s12-20020a2e83cc000000b0024d422ed510mr21425349ljh.128.1651164878455; Thu, 28 Apr 2022 09:54:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651164878; cv=none; d=google.com; s=arc-20160816; b=IwWjPSY1Wpv1idOVbaMAjNwrpeKgd1/yCC6LnXIghJDrR9PkPvxDv0KD05kA0XX79E sOHIaiU1AAvK+HzxJeBYfTSCtR/kbQZQ1Ngq9KKRgyycLDckpmNedotKiIKwJ63vM6pc qoqRM5kUBJ2Tlaz+y7/DCGLPakn7sLePw6QWTIEtdQqfv5TNwR/I0E8QXdDI1zUdbN4m cGUYZIZIL78hs+7VVZaAcfqxJLMrPAr1LcwEfP+WGbrtId2ZtxjruSXGBOCJZ1ERlni8 n/17PeAbwriciMtsa8kZAfTemWLxN9mna9wam93TdoDqR54DVltKfUqtDMJiSdYUKV+V ktOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:to:content-language:subject:cc:user-agent:mime-version :date:message-id:dkim-signature; bh=/rv+fIXzruoM7ZIEPW1OHd3diKDJ9TYwxz+keDY21cg=; b=hRrrdv13uHmZQ8LSou0eSCl1c8X5DT3doCbgklZMFYDmPVWdQB2KAKLcXDS9zJG5hE tcaGNCeLFpZ3ACllW7dVWA7DshuXeAvLTU1UOgD/okANwmJ3FupyoOZOyLSurobSKLck DQiRWleqJpFWHvupdAQTt5NYrZX6TZwN1554Dzs1etdG6lCQWht5ujr+ngUL6mBGmo3b VlRjwXvJjtWB37tnfIT3hTgkS6YoAdXvjaeiZFchwcUylsf+UCZVAMsNPcXB7uQ7oEc1 VYR2sgNgvb6XtItNliBkLQqZOhaX9KMWaT9/YqO7kd4DKrdsFPeAPqI2CWyRqWpGIhen Xxcw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nIeU3RHT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i21-20020a056512225500b0046d18b4b3ddsi5726439lfu.111.2022.04.28.09.54.07; Thu, 28 Apr 2022 09:54:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nIeU3RHT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234118AbiD1IKZ (ORCPT + 99 others); Thu, 28 Apr 2022 04:10:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233548AbiD1IKV (ORCPT ); Thu, 28 Apr 2022 04:10:21 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBFEE54F9D; Thu, 28 Apr 2022 01:07:07 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: usama.anjum) with ESMTPSA id C5D1A1F45034 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1651133225; bh=gkofCbla6q/11zKU00zv0OsLH0Kg1dBauD7EEXXr8w4=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=nIeU3RHTyPGIbfsEWhwWP2fVMUQQGuJtXlVD9kFzxnPfRWMhllRUjI6u8vypNIVN1 eu5cHaG3n9ZXhp5V0x+Jf73SMqKL3ceJeaWwg/m5gnjeiUO1Lk3UuaB20pLNZryoDz XfhHxrUIAcPO/NxiDtUFBcV+SeCuArS5mWrsQTaxFQAEHs6+4Xak2qTkB/r9e3xVLF zirWf7yQjIrqAO3iiIzePtDqizqzGS0G3clZvhCHmq6HKa5jxswEmgUjt7W0zgvuzt 5PZlEXA7u9a/1YAtHxNSnPF/XdiH0rnqPh8pD3XCcSFKgJQTOXdSu5tF19o5iqJ2Cx dY4T1R3CTKPVw== Message-ID: <8acef982-0aec-aaf0-7e26-b02cf024cdf8@collabora.com> Date: Thu, 28 Apr 2022 13:06:48 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Cc: usama.anjum@collabora.com, "Rafael J. Wysocki" , Len Brown , Hans de Goede , Mark Gross , Collabora Kernel ML , groeck@chromium.org, bleung@chromium.org, dtor@chromium.org, gwendal@chromium.org, vbendeb@chromium.org, andy@infradead.org, Ayman Bagabas , Benjamin Tissoires , =?UTF-8?Q?Bla=c5=be_Hrastnik?= , Darren Hart , Dmitry Torokhov , Jeremy Soller , Mattias Jacobsson <2pi@mok.nu>, Mauro Carvalho Chehab , Rajat Jain , Srinivas Pandruvada , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, "Rafael J . Wysocki" , Enric Balletbo i Serra Subject: Re: [PATCH v8] platform: x86: Add ChromeOS ACPI device driver Content-Language: en-US To: Greg Kroah-Hartman References: From: Muhammad Usama Anjum In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_PASS, SPF_PASS,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/24/22 1:43 PM, Greg Kroah-Hartman wrote: > On Fri, Apr 15, 2022 at 10:08:15PM +0500, Muhammad Usama Anjum wrote: >> + i = 0; >> + list_for_each_entry(aag, &chromeos_acpi.groups, list) { >> + chromeos_acpi.dev_groups[i] = &aag->group; >> + i++; >> + } >> + >> + ret = sysfs_create_groups(&dev->kobj, chromeos_acpi.dev_groups); > > You have raced with userspace and lost here :( > > Use the default groups pointer in the platform driver for this, and use > the is_visible() callback to know to show, or not show, the attribute > instead of building up dynamic lists of attributes at runtime. That > will save you lots of crazy logic and housekeeping _AND_ userspace tools > will work properly as well. > Yeah, using dev_group pointer in platform driver makes it simple. We need to define the attributes at compile time. At run time, we can only make decision to show or not to show the attribute. This simplifies logic for the static attributes which will always be there. But there are some set of attributes which may be 1 to N depending upon the platform such as GPIO.0, GPIO.2 .... and GPIO.N. I'm working on overcoming this. Once this is done, the driver is going to be very simple. > thanks, > > greg k-h -- Muhammad Usama Anjum