Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751795AbdF1XbP (ORCPT ); Wed, 28 Jun 2017 19:31:15 -0400 Received: from mail-yb0-f181.google.com ([209.85.213.181]:36660 "EHLO mail-yb0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751523AbdF1XbJ (ORCPT ); Wed, 28 Jun 2017 19:31:09 -0400 MIME-Version: 1.0 In-Reply-To: References: <658db8f8c7a5042a2049e5fe08c0c68b4586526e.1497939166.git.jerry.hoemann@hpe.com> <20170628231519.GC26439@anatevka.americas.hpqcorp.net> From: Dan Williams Date: Wed, 28 Jun 2017 16:31:08 -0700 Message-ID: Subject: Re: [PATCH v2 5/7] acpi, nfit: Show bus_dsm_mask To: Jerry Hoemann Cc: "linux-nvdimm@lists.01.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2550 Lines: 59 On Wed, Jun 28, 2017 at 4:29 PM, Dan Williams wrote: > On Wed, Jun 28, 2017 at 4:15 PM, Jerry Hoemann wrote: >> On Wed, Jun 28, 2017 at 02:07:20PM -0700, Dan Williams wrote: >>> On Tue, Jun 20, 2017 at 9:51 AM, Jerry Hoemann wrote: >>> > Add bus_dsm_mask to sysfs display under /sys/bus/nd/devices/ndbusX/nfit. >>> > >>> > Signed-off-by: Jerry Hoemann >>> > --- >>> > drivers/acpi/nfit/core.c | 10 ++++++++++ >>> > 1 file changed, 10 insertions(+) >>> > >>> > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c >>> > index 9d281a4..f133b3e 100644 >>> > --- a/drivers/acpi/nfit/core.c >>> > +++ b/drivers/acpi/nfit/core.c >>> > @@ -928,6 +928,15 @@ static int nfit_mem_init(struct acpi_nfit_desc *acpi_desc) >>> > return 0; >>> > } >>> > >>> > +static ssize_t bus_dsm_mask_show(struct device *dev, >>> > + struct device_attribute *attr, char *buf) >>> > +{ >>> > + struct nvdimm_bus *nvdimm_bus = to_nvdimm_bus(dev); >>> > + struct nvdimm_bus_descriptor *nd_desc = to_nd_desc(nvdimm_bus); >>> > + return sprintf(buf, "%#lx\n", nd_desc->bus_dsm_mask); >>> > +} >>> > +static DEVICE_ATTR_RO(bus_dsm_mask); >>> > + >>> > static ssize_t revision_show(struct device *dev, >>> > struct device_attribute *attr, char *buf) >>> > { >>> > @@ -1064,6 +1073,7 @@ static umode_t nfit_visible(struct kobject *kobj, struct attribute *a, int n) >>> > &dev_attr_revision.attr, >>> > &dev_attr_scrub.attr, >>> > &dev_attr_hw_error_scrub.attr, >>> > + &dev_attr_bus_dsm_mask.attr, >>> > NULL, >>> > }; >>> >>> I think it's redundant to keep 'bus_' in the name of the attribute >>> since 'bus' is included in the sysfs path. You can use DEVICE_ATTR() >>> instead of DEVICE_ATTR_RO() to specify the attribute name manually, >>> and get around the collision with the existing dsm_mash_show() >>> routine. >> >> DEVICE_ATTR and DEVICE_ATTR_RO uses the same tokenization & stringification >> schemes, so that doesn't disambiguate. They need to be different >> case sensitive names if they are to be in same source file. >> >> Do you want me to change name to root_dsm_mask? or change case: DSM_MASK? > > I'm saying do something like this: > > DEVICE_ATTR(dsm_mask, 0444, bus_dsm_mask_show, NULL) > > ...so that the attribute name in sysfs is just 'dsm_mask'. Actually, you'll need to go further and use __ATTR() directly to initialize a bus_dsm_mask_attr.