Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753591AbbDPVZE (ORCPT ); Thu, 16 Apr 2015 17:25:04 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:58132 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752032AbbDPVYx (ORCPT ); Thu, 16 Apr 2015 17:24:53 -0400 Date: Thu, 16 Apr 2015 14:24:34 -0700 From: Guenter Roeck To: Vivien Didelot Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "David S. Miller" , Florian Fainelli , kernel@savoirfairelinux.com Subject: Re: [PATCH 1/2] net: dsa: use DEVICE_ATTR_RW to declare temp1_max Message-ID: <20150416212434.GA2587@roeck-us.net> References: <1429209499-2447-1-git-send-email-vivien.didelot@savoirfairelinux.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1429209499-2447-1-git-send-email-vivien.didelot@savoirfairelinux.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Authenticated_sender: guenter@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-CTCH-PVer: 0000001 X-CTCH-Spam: Unknown X-CTCH-VOD: Unknown X-CTCH-Flags: 0 X-CTCH-RefID: str=0001.0A020202.553028A4.0239,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0 X-CTCH-Score: 0.000 X-CTCH-ScoreCust: 0.000 X-CTCH-Rules: X-CTCH-SenderID: linux@roeck-us.net X-CTCH-SenderID-Flags: 0 X-CTCH-SenderID-TotalMessages: 3 X-CTCH-SenderID-TotalSpam: 0 X-CTCH-SenderID-TotalSuspected: 0 X-CTCH-SenderID-TotalConfirmed: 0 X-CTCH-SenderID-TotalBulk: 0 X-CTCH-SenderID-TotalVirus: 0 X-CTCH-SenderID-TotalRecipients: 0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: mailgid no entry from get_relayhosts_entry X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2301 Lines: 76 On Thu, Apr 16, 2015 at 02:38:18PM -0400, Vivien Didelot wrote: > Since commit da4759c, sysfs will only use the permissions returned by > is_visible, instead of OR'ing them with the default file mode. > > This allows us to declare temp1_max with the DEVICE_ATTR_RW macro and > just return the desired permissions for the hwmon sysfs attributes in > dsa_hwmon_attrs_visible. > > Also, allow temp1_max to be write-only if set_temp_limit is provided, > but not get_temp_limit. > Hi Vivien, This would be a first for the entire hwmon subsystem and doesn't really make sense. Guenter > Signed-off-by: Vivien Didelot > --- > net/dsa/dsa.c | 24 ++++++++++++++++-------- > 1 file changed, 16 insertions(+), 8 deletions(-) > > diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c > index 5eaadab..67d2983 100644 > --- a/net/dsa/dsa.c > +++ b/net/dsa/dsa.c > @@ -124,7 +124,7 @@ static ssize_t temp1_max_store(struct device *dev, > > return count; > } > -static DEVICE_ATTR(temp1_max, S_IRUGO, temp1_max_show, temp1_max_store); > +static DEVICE_ATTR_RW(temp1_max); > > static ssize_t temp1_max_alarm_show(struct device *dev, > struct device_attribute *attr, char *buf) > @@ -154,16 +154,24 @@ static umode_t dsa_hwmon_attrs_visible(struct kobject *kobj, > struct device *dev = container_of(kobj, struct device, kobj); > struct dsa_switch *ds = dev_get_drvdata(dev); > struct dsa_switch_driver *drv = ds->drv; > - umode_t mode = attr->mode; > + umode_t mode = 0; > > - if (index == 1) { > - if (!drv->get_temp_limit) > - mode = 0; > - else if (drv->set_temp_limit) > + switch (index) { > + case 1: /* temp1_max */ > + if (drv->get_temp_limit) > + mode |= S_IRUGO; > + if (drv->set_temp_limit) > mode |= S_IWUSR; > - } else if (index == 2 && !drv->get_temp_alarm) { > - mode = 0; > + break; > + case 2: /* temp1_max_alarm */ > + if (drv->get_temp_alarm) > + mode |= S_IRUGO; > + break; > + default: > + mode = attr->mode; > + break; > } > + > return mode; > } > > -- > 2.3.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/