Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752234AbdLEFOo (ORCPT ); Tue, 5 Dec 2017 00:14:44 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40060 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751112AbdLEFOn (ORCPT ); Tue, 5 Dec 2017 00:14:43 -0500 Date: Tue, 5 Dec 2017 13:14:34 +0800 From: Dave Young To: Greg Kroah-Hartman Cc: David Laight , "'Ard Biesheuvel'" , Matt Fleming , Linus Torvalds , "Tobin C. Harding" , LKML , "linux-efi@vger.kernel.org" Subject: Re: [GIT PULL] hash addresses printed with %p Message-ID: <20171205051434.GA6086@dhcp-128-65.nay.redhat.com> References: <20171202222244.GA3799@codeblueprint.co.uk> <20171204020216.GA2436@dhcp-128-65.nay.redhat.com> <20171204073642.GC19596@kroah.com> <20171204092928.GA4421@dhcp-128-65.nay.redhat.com> <20171204093430.GA6463@kroah.com> <20171204095936.GA10547@kroah.com> <20171204140012.GA8744@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171204140012.GA8744@kroah.com> User-Agent: Mutt/1.9.1 (2017-09-22) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 05 Dec 2017 05:14:42 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2205 Lines: 49 On 12/04/17 at 03:00pm, Greg Kroah-Hartman wrote: > On Mon, Dec 04, 2017 at 12:51:13PM +0000, David Laight wrote: > > From: Ard Biesheuvel > > > Sent: 04 December 2017 10:03 > > ... > > > and uses __ATTR_RO() to emit initializers for it. __ATTR() initializes > > > the .store member as well, which does not exists, and so it cannot be > > > used directly. > > > > > > So we should either add a .store member that is always NULL, or we > > > should add our own > > > > > > #define __ATTR_0400(_name) { \ > > > .attr = { .name = __stringify(_name), .mode = 0400 }, \ > > > .show = _name##_show, \ > > > } > > > > What about an __ATTR_RO_MODE(name, mode) that doesn't set the .store member. > > Even if the mode allowed write, writes wouldn't happen. > > Ah, that might work, could you convert the other users of __ATTR() in > the efi code to use it as well? $ grep __ATTR * -RI efi.c: __ATTR(systab, 0400, systab_show, NULL); efi.c:static struct kobj_attribute efi_attr_fw_vendor = __ATTR_RO(fw_vendor); efi.c:static struct kobj_attribute efi_attr_runtime = __ATTR_RO(runtime); efi.c:static struct kobj_attribute efi_attr_config_table = __ATTR_RO(config_table); efi.c: __ATTR_RO(fw_platform_size); esrt.c:static struct esre_attribute esre_fw_class = __ATTR(fw_class, 0400, esrt.c:static struct esre_attribute esre_##name = __ATTR(name, 0400, \ esrt.c:static struct kobj_attribute esrt_##name = __ATTR(name, 0400, \ runtime-map.c:static struct map_attribute map_type_attr = __ATTR_RO(type); runtime-map.c:static struct map_attribute map_phys_addr_attr = __ATTR_RO(phys_addr); runtime-map.c:static struct map_attribute map_virt_addr_attr = __ATTR_RO(virt_addr); runtime-map.c:static struct map_attribute map_num_pages_attr = __ATTR_RO(num_pages); runtime-map.c:static struct map_attribute map_attribute_attr = __ATTR_RO(attribute); Above is all the __ATTR users for drivers/firmware/efi/*, it makes sense to update all __ATTR_RO to __ATTR_RO_MODE, so efi.c, runtime-map.c, and drivers/firmware/dmi-sysfs.c can be updated. But esrt.c __ATTR seems not necessary. And if so __ATTR_RO_MODE(name, mode) still needs go to sysfs.h. I can do it but need confirm, Is this what you prefer? Thanks Dave