Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp4661957ybi; Sat, 6 Jul 2019 10:07:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqxRBL0u2Eqwb+500Rx/xlN4CUK2LiwY4FSPmemQzpluj0jUo+Xa8g+ejyW2mjo5gZ25ez50 X-Received: by 2002:a17:90a:d343:: with SMTP id i3mr5741845pjx.15.1562432871822; Sat, 06 Jul 2019 10:07:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562432871; cv=none; d=google.com; s=arc-20160816; b=JO8vlClGATBIaSYunrpHs6ACiCD3LNzqI9I/Xk7+Alp6Qscs7B3+0pSAuXPGboZJJX +HXGywNp/6tZCpynbCk6P/Nog6EcsFLPkpriSG9MYnLOdExrmEl8RlXoSPbRel+QGg0Q aVj6cTH0VCylPFwWdxEEcNMdOl8KoS5YqofFGzYtV5W9L7p1cxNPMOit9SL5vtfM41Ws crhvKhQCYnYZCwoQvjm9UlwP17MyA2NsvQdQ3suaXv4Kia/E9C1ppd5kGzwl9fJz7WKC jOY2XAEPjGJ/9ybRTM00/Yjafil1YeNxOelwro6KYJA4byJrANa3dqogv86EbriZYMQj ZHJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=aRdcNruqA76PvTTNvSkstBbhHqFooZx9h+rPmzIDiw0=; b=MgSI5AsPVWspgdsi3RkaLVQKf2VvQxpT3FXGw2ep1GxVCBLNU914qTTjP/6rbcVbcR +djWRshwjNfyHHsKX5UPdEUWeiAaKsxGGiczxSR5NQwoCDAgVyK18UN6LBERvfLZ4p/C 0vQUAJbV+Hlj+Lu8q/l3SAwxZ0SwP+CbTry2APsWwk90qzOPMYYLq+YVW3+NntNGRVrS aD7Fo3iQqXxjgaYI88c7BkrirjxBqcX5HqczgOJWaaRw5zwYcxGqxUPzELdogD0PkjgT wKCIql6JISDHwXU8MH8zOATo+YY/v9YZ+oH87EwzSu9gpUg4+cS1zhkny1MubpSeBe+E KgeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kL0TN+R2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id v4si11079801plp.212.2019.07.06.10.07.24; Sat, 06 Jul 2019 10:07:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kL0TN+R2; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1726921AbfGFREw (ORCPT + 99 others); Sat, 6 Jul 2019 13:04:52 -0400 Received: from mail-io1-f66.google.com ([209.85.166.66]:44405 "EHLO mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726522AbfGFREv (ORCPT ); Sat, 6 Jul 2019 13:04:51 -0400 Received: by mail-io1-f66.google.com with SMTP id s7so25632563iob.11 for ; Sat, 06 Jul 2019 10:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aRdcNruqA76PvTTNvSkstBbhHqFooZx9h+rPmzIDiw0=; b=kL0TN+R2uTLLzZeyoS2fdnPGHg/w7RNxUZj6aP7tA1EbEHALlzJ4Ev7GsPQQQqaLAp Hw4/1CmzzUKCMKJn1qHaSKbWoBD1YiA6oWgTdpYGbCzTNYe2JSl7y4d0s+cucfhMU6Wv m4+KSsRMj10djQ5Z4nveDf7BrmHruuDXLGmtM7wCFy004gxa8hjtco5nN+SEI9it7ixC synkCYHr02cQwpygSG2d5LUycaTE8egMyvRV52w+RFXnIRGUCmk29jqhn7ygKmpIzlD6 CFdzPbOliqcBT8DH0lgz9qXtWtwev7sdTI/8rtPpCTjJiigQOmInepyHUmOb/a0lYbKZ fdhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aRdcNruqA76PvTTNvSkstBbhHqFooZx9h+rPmzIDiw0=; b=Voa/N7pNihtGgTLmWtD+SsK6t/pzlokmoG9ZonNgFjXZAFaiCHsYq1fmt6PIQ28c6G KGb5aIcpDZK2BWo6avK6QGxHa5W3d0NfVR7QbvEvj1wyYI3uKiV16ZddWiSuofUV3sJa 38siNX8V53d0PYZQck6pGw2dPDkKkKrxp0cPU5WjFBe8j2h8oQ9DPqrJx6CSfT0mhaXh dX2SbCfRfUEBhG2D9knyNQI0bZ6fp9+w1DfnL1UKzHLS83GDKKXOdtxiWwCyFLbcFxFF CpXGsVW/VMSfUHOxDHQtWL3nQDmPAEHP/oNDyeevofQQ7qyb3brwdPwUNvXNjJWsC/6O 0USw== X-Gm-Message-State: APjAAAX6xrTTxFz1zlrvB7b81AcbemCZvju6UsM7JNp7gxvayzdqg2eT NtNEPiYEyeZMMD0ztP86NkQ3Ih119MYH7onuRd4= X-Received: by 2002:a5e:8508:: with SMTP id i8mr10710989ioj.108.1562432690512; Sat, 06 Jul 2019 10:04:50 -0700 (PDT) MIME-Version: 1.0 References: <20190704084617.3602-1-gregkh@linuxfoundation.org> <20190704084617.3602-2-gregkh@linuxfoundation.org> <20190704093200.GM13424@localhost> <20190704104311.GA16681@kroah.com> <20190704121143.GA5007@kroah.com> <20190706083251.GA9249@kroah.com> In-Reply-To: <20190706083251.GA9249@kroah.com> From: Dmitry Torokhov Date: Sat, 6 Jul 2019 10:04:39 -0700 Message-ID: Subject: Re: [PATCH 01/12 v2] Platform: add a dev_groups pointer to struct platform_driver To: Greg Kroah-Hartman Cc: Johan Hovold , lkml , Richard Gong , Romain Izard , "Rafael J. Wysocki" , Andy Shevchenko , Mans Rullgard , Bartosz Golaszewski , Randy Dunlap Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Greg, On Sat, Jul 6, 2019 at 1:32 AM Greg Kroah-Hartman wrote: > > On Thu, Jul 04, 2019 at 02:17:22PM -0700, Dmitry Torokhov wrote: > > Hi Greg, > > > > On Thu, Jul 4, 2019 at 5:15 AM Greg Kroah-Hartman > > wrote: > > > > > > Platform drivers like to add sysfs groups to their device, but right now > > > they have to do it "by hand". The driver core should handle this for > > > them, but there is no way to get to the bus-default attribute groups as > > > all platform devices are "special and unique" one-off drivers/devices. > > > > > > To combat this, add a dev_groups pointer to platform_driver which allows > > > a platform driver to set up a list of default attributes that will be > > > properly created and removed by the platform driver core when a probe() > > > function is successful and removed right before the device is unbound. > > > > Why is this limited to platform bus? Drivers for other buses also > > often want to augment list of their attributes during probe(). I'd > > move it to generic probe handling. > > This is not limited to the platform at all, the driver core supports > this for any bus type today, but it's then up to the bus-specific code > to pass that on to the driver core. That's usually set for the > bus-specific attributes that they want exposed for all devices of that > bus type (see the bus_groups, dev_groups, and drv_groups pointers in > struct bus_type). > > For the platform devices, the problem is that this is something that the > individual drivers want after they bind to the device. And as all > platform devices are "different" they can't be a "common" set of > attributes, so they need to be created after the device is bound to the > driver. I believe that your assertion that only platform devices want to install custom attributes is incorrect. Drivers for devices attached to serio, i2c, USB, spi, etc, etc, all have additional attributes: dtor@dtor-ws:~/kernel/work (master *)$ grep -l '\(i2c\|usb\|spi\)' `git grep -l '\(device_add_group\|sysfs_create_group\)' -- drivers` | wc -l 170 I am pretty sure some of this count is false positives, but majority is actually proper hits. ... > > > > We already emit KOBJ_BIND when we finish binding device to a driver, > > regardless of the bus. I know we still need to teach systemd to handle > > it properly, but I think it is better than sprinkling KOBJ_CHANGE > > around. > > But the object's attributes did just change, which is what KOBJ_CHANGE > tells userspace, so this should be the correct thing to say to > userspace. > > And yes, ideally KOBJ_BIND would be handled, and it will be sent once > the device's probe function succeeds, but we have to deal with old > userspaces as well, right? Not for the new functionality, I do not think so. Newer kernels should be compatible with older userspace as it not breaking it, but new functionality is not guaranteed to be available with older userspace. Thanks. -- Dmitry