drivers/base/memory.c: Use DEVICE_ATTR_RO and friends
Subsystems (3)
PATCH 1/1 drivers/base/memory.c: Use DEVICE_ATTR_RO and friends
Let's use the easier to read (and not mess up) variants:
- Use DEVICE_ATTR_RO
- Use DEVICE_ATTR_WO
- Use DEVICE_ATTR_RW
instead of the more generic DEVICE_ATTR() we're using right now.
We have to rename most callback functions. By fixing the intendations we can even save some LOCs.
--- drivers/base/memory.c | 79 ++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 43 deletions(-)
drivers/base/memory.c +36 -43
@@ -109,8 +109,8 @@ static unsigned long get_memory_block_size(void)* uses. */ -static ssize_t show_mem_start_phys_index (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t phys_index_show (struct device *dev, +struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);unsigned long phys_index;
@@ -122,8 +122,8 @@ static ssize_t show_mem_start_phys_index(struct device *dev,/* * Show whether the section of memory is likely to be hot-removable */ -static ssize_t show_mem_removable (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t removable_show (struct device *dev,struct device_attribute *attr, +char *buf) {unsigned long i, pfn;int ret =1 ;
@@ -146,8 +146,8 @@ static ssize_t show_mem_removable(struct device *dev,/* * online, offline, going offline, etc. */ -static ssize_t show_mem_state (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t state_show (struct device *dev,struct device_attribute *attr, +char *buf) {struct memory_block *mem =to_memory_block (dev);ssize_t len =0 ;
@@ -286,7 +286,7 @@ static int memory_subsys_online(struct device *dev)return 0 ;/* -* If we are called from store_mem_state(), online_type will be +* If we are called from state_store(), online_type will be * set >= 0 Otherwise we were called from the device online * attribute and need to set the online_type. */
@@ -315,9 +315,8 @@ static int memory_subsys_offline(struct device *dev)return memory_block_change_state (mem,MEM_OFFLINE ,MEM_ONLINE ); } -static ssize_t -store_mem_state (struct device *dev, -struct device_attribute *attr,const char *buf,size_t count) +static ssize_t state_store (struct device *dev,struct device_attribute *attr, +const char *buf,size_t count) {struct memory_block *mem =to_memory_block (dev);int ret, online_type;
@@ -374,7 +373,7 @@ store_mem_state(struct device *dev,* s.t. if I offline all of these sections I can then * remove the physical device? */ -static ssize_t show_phys_device (struct device *dev, +static ssize_t phys_device_show (struct device *dev,struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);
@@ -395,7 +394,7 @@ static void print_allowed_zone(char *buf, int nid, unsigned long start_pfn, } } -static ssize_t show_valid_zones (struct device *dev, +static ssize_t valid_zones_show (struct device *dev,struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);
@@ -435,33 +434,31 @@ static ssize_t show_valid_zones(struct device *dev, return strlen(buf); } -static DEVICE_ATTR(valid_zones, 0444, show_valid_zones, NULL); +static DEVICE_ATTR_RO (valid_zones);#endif -static DEVICE_ATTR(phys_index, 0444, show_mem_start_phys_index, NULL); -static DEVICE_ATTR(state, 0644, show_mem_state, store_mem_state); -static DEVICE_ATTR(phys_device, 0444, show_phys_device, NULL); -static DEVICE_ATTR(removable, 0444, show_mem_removable, NULL); +static DEVICE_ATTR_RO (phys_index); +static DEVICE_ATTR_RW (state); +static DEVICE_ATTR_RO (phys_device); +static DEVICE_ATTR_RO (removable);/* * Block size attribute stuff */ -static ssize_t -print_block_size (struct device *dev,struct device_attribute *attr, -char *buf) +static ssize_t block_size_bytes_show (struct device *dev, +struct device_attribute *attr,char *buf) {return sprintf (buf,"%lx\n" ,get_memory_block_size ()); } -static DEVICE_ATTR(block_size_bytes, 0444, print_block_size, NULL); +static DEVICE_ATTR_RO (block_size_bytes);/* * Memory auto online policy. */ -static ssize_t -show_auto_online_blocks (struct device *dev,struct device_attribute *attr, -char *buf) +static ssize_t auto_online_blocks_show (struct device *dev, +struct device_attribute *attr,char *buf) {if (memhp_auto_online)return sprintf (buf,"online\n" );
@@ -469,9 +466,9 @@ show_auto_online_blocks(struct device *dev, struct device_attribute *attr,return sprintf (buf,"offline\n" ); } -static ssize_t -store_auto_online_blocks (struct device *dev,struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t auto_online_blocks_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {if (sysfs_streq (buf,"online" )) memhp_auto_online = true;
@@ -483,8 +480,7 @@ store_auto_online_blocks(struct device *dev, struct device_attribute *attr,return count; } -static DEVICE_ATTR(auto_online_blocks, 0644, show_auto_online_blocks, - store_auto_online_blocks); +static DEVICE_ATTR_RW (auto_online_blocks);/* * Some architectures will have custom drivers to do this, and
@@ -493,9 +489,8 @@ static DEVICE_ATTR(auto_online_blocks, 0644, show_auto_online_blocks,* and will require this interface. */ #ifdef CONFIG_ARCH_MEMORY_PROBE -static ssize_t -memory_probe_store (struct device *dev,struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t probe_store (struct device *dev,struct device_attribute *attr, +const char *buf,size_t count) {u64 phys_addr;int nid, ret;
@@ -525,7 +520,7 @@ memory_probe_store(struct device *dev, struct device_attribute *attr, return ret; } -static DEVICE_ATTR(probe, S_IWUSR, NULL, memory_probe_store); +static DEVICE_ATTR_WO (probe);#endif #ifdef CONFIG_MEMORY_FAILURE
@@ -534,10 +529,9 @@ static DEVICE_ATTR(probe, S_IWUSR, NULL, memory_probe_store);*/ /* Soft offline a page */ -static ssize_t -store_soft_offline_page (struct device *dev, -struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t soft_offline_page_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {int ret;u64 pfn;
@@ -553,10 +547,9 @@ store_soft_offline_page(struct device *dev, }/* Forcibly offline a page, including killing processes. */ -static ssize_t -store_hard_offline_page (struct device *dev, -struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t hard_offline_page_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {int ret;u64 pfn;
@@ -569,8 +562,8 @@ store_hard_offline_page(struct device *dev, return ret ? ret : count; } -static DEVICE_ATTR(soft_offline_page, S_IWUSR, NULL, store_soft_offline_page); -static DEVICE_ATTR(hard_offline_page, S_IWUSR, NULL, store_hard_offline_page); +static DEVICE_ATTR_WO (soft_offline_page); +static DEVICE_ATTR_WO (hard_offline_page);#endif /*
Signature · 1 line
2.17.2
Quoted 9 lines · David Hildenbrand
Let's use the easier to read (and not mess up) variants:
- UseDEVICE_ATTR_RO
- UseDEVICE_ATTR_WO
- UseDEVICE_ATTR_RW
instead of the more genericDEVICE_ATTR()we're using right now.We have to rename most callback functions. By fixing the intendations we can even save some LOCs.
Quoted 9 lines
Cc Greg Kroah-Hartman <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Andrew Morton <[email protected]>Cc Ingo Molnar <[email protected]>Cc Pavel Tatashin <[email protected]>Cc Oscar Salvador <[email protected]>Cc Michal Hocko <[email protected]>Cc Wei Yang <[email protected]>Signed-off-by David Hildenbrand <[email protected]>
Looks good to me.
Quoted 209 lines
---
drivers/base/memory.c| 79 ++++++++++++++++++++-----------------------1 file changed, 36 insertions(+), 43 deletions(-)drivers/base/memory.c +36
-43@@ -109,8 +109,8 @@ static unsigned long get_memory_block_size(void)* uses. */ -static ssize_t show_mem_start_phys_index (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t phys_index_show (struct device *dev, +struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);unsigned long phys_index;@@ -122,8 +122,8 @@ static ssize_t show_mem_start_phys_index(struct device *dev,/* * Show whether the section of memory is likely to be hot-removable */ -static ssize_t show_mem_removable (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t removable_show (struct device *dev,struct device_attribute *attr, +char *buf) {unsigned long i, pfn;int ret =1 ;@@ -146,8 +146,8 @@ static ssize_t show_mem_removable(struct device *dev,/* * online, offline, going offline, etc. */ -static ssize_t show_mem_state (struct device *dev, -struct device_attribute *attr,char *buf) +static ssize_t state_show (struct device *dev,struct device_attribute *attr, +char *buf) {struct memory_block *mem =to_memory_block (dev);ssize_t len =0 ;@@ -286,7 +286,7 @@ static int memory_subsys_online(struct device *dev)return 0 ;/* -* If we are called from store_mem_state(), online_type will be +* If we are called from state_store(), online_type will be * set >= 0 Otherwise we were called from the device online * attribute and need to set the online_type. */ @@ -315,9 +315,8 @@ static int memory_subsys_offline(struct device *dev)return memory_block_change_state (mem,MEM_OFFLINE ,MEM_ONLINE ); } -static ssize_t -store_mem_state (struct device *dev, -struct device_attribute *attr,const char *buf,size_t count) +static ssize_t state_store (struct device *dev,struct device_attribute *attr, +const char *buf,size_t count) {struct memory_block *mem =to_memory_block (dev);int ret, online_type;@@ -374,7 +373,7 @@ store_mem_state(struct device *dev,* s.t. if I offline all of these sections I can then * remove the physical device? */ -static ssize_t show_phys_device (struct device *dev, +static ssize_t phys_device_show (struct device *dev,struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);@@ -395,7 +394,7 @@ static void print_allowed_zone(char *buf, int nid, unsigned long start_pfn, } } -static ssize_t show_valid_zones (struct device *dev, +static ssize_t valid_zones_show (struct device *dev,struct device_attribute *attr,char *buf) {struct memory_block *mem =to_memory_block (dev);@@ -435,33 +434,31 @@ static ssize_t show_valid_zones(struct device *dev, return strlen(buf); } -static DEVICE_ATTR(valid_zones, 0444, show_valid_zones, NULL); +static DEVICE_ATTR_RO (valid_zones);#endif -static DEVICE_ATTR(phys_index, 0444, show_mem_start_phys_index, NULL); -static DEVICE_ATTR(state, 0644, show_mem_state, store_mem_state); -static DEVICE_ATTR(phys_device, 0444, show_phys_device, NULL); -static DEVICE_ATTR(removable, 0444, show_mem_removable, NULL); +static DEVICE_ATTR_RO (phys_index); +static DEVICE_ATTR_RW (state); +static DEVICE_ATTR_RO (phys_device); +static DEVICE_ATTR_RO (removable);/* * Block size attribute stuff */ -static ssize_t -print_block_size (struct device *dev,struct device_attribute *attr, -char *buf) +static ssize_t block_size_bytes_show (struct device *dev, +struct device_attribute *attr,char *buf) {return sprintf (buf,"%lx\n" ,get_memory_block_size ()); } -static DEVICE_ATTR(block_size_bytes, 0444, print_block_size, NULL); +static DEVICE_ATTR_RO (block_size_bytes);/* * Memory auto online policy. */ -static ssize_t -show_auto_online_blocks (struct device *dev,struct device_attribute *attr, -char *buf) +static ssize_t auto_online_blocks_show (struct device *dev, +struct device_attribute *attr,char *buf) {if (memhp_auto_online)return sprintf (buf,"online\n" );@@ -469,9 +466,9 @@ show_auto_online_blocks(struct device *dev, struct device_attribute *attr,return sprintf (buf,"offline\n" ); } -static ssize_t -store_auto_online_blocks (struct device *dev,struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t auto_online_blocks_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {if (sysfs_streq (buf,"online" )) memhp_auto_online = true;@@ -483,8 +480,7 @@ store_auto_online_blocks(struct device *dev, struct device_attribute *attr,return count; } -static DEVICE_ATTR(auto_online_blocks, 0644, show_auto_online_blocks, - store_auto_online_blocks); +static DEVICE_ATTR_RW (auto_online_blocks);/* * Some architectures will have custom drivers to do this, and @@ -493,9 +489,8 @@ static DEVICE_ATTR(auto_online_blocks, 0644, show_auto_online_blocks,* and will require this interface. */ #ifdef CONFIG_ARCH_MEMORY_PROBE -static ssize_t -memory_probe_store (struct device *dev,struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t probe_store (struct device *dev,struct device_attribute *attr, +const char *buf,size_t count) {u64 phys_addr;int nid, ret;@@ -525,7 +520,7 @@ memory_probe_store(struct device *dev, struct device_attribute *attr, return ret; } -static DEVICE_ATTR(probe, S_IWUSR, NULL, memory_probe_store); +static DEVICE_ATTR_WO (probe);#endif #ifdef CONFIG_MEMORY_FAILURE @@ -534,10 +529,9 @@ static DEVICE_ATTR(probe, S_IWUSR, NULL, memory_probe_store);*/ /* Soft offline a page */ -static ssize_t -store_soft_offline_page (struct device *dev, -struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t soft_offline_page_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {int ret;u64 pfn;@@ -553,10 +547,9 @@ store_soft_offline_page(struct device *dev, }/* Forcibly offline a page, including killing processes. */ -static ssize_t -store_hard_offline_page (struct device *dev, -struct device_attribute *attr, -const char *buf,size_t count) +static ssize_t hard_offline_page_store (struct device *dev, +struct device_attribute *attr, +const char *buf,size_t count) {int ret;u64 pfn;@@ -569,8 +562,8 @@ store_hard_offline_page(struct device *dev, return ret ? ret : count; } -static DEVICE_ATTR(soft_offline_page, S_IWUSR, NULL, store_soft_offline_page); -static DEVICE_ATTR(hard_offline_page, S_IWUSR, NULL, store_hard_offline_page); +static DEVICE_ATTR_WO (soft_offline_page); +static DEVICE_ATTR_WO (hard_offline_page);#endif /* Signature · 1 line
2.17.2
Signature · 2 lines
Wei Yang Help you, Help me
Greg Kroah-Hartman
maintainerQuoted 19 lines · David Hildenbrand
Let's use the easier to read (and not mess up) variants:
- UseDEVICE_ATTR_RO
- UseDEVICE_ATTR_WO
- UseDEVICE_ATTR_RW
instead of the more genericDEVICE_ATTR()we're using right now.We have to rename most callback functions. By fixing the intendations we can even save some LOCs.
Cc Greg Kroah-Hartman <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Andrew Morton <[email protected]>Cc Ingo Molnar <[email protected]>Cc Pavel Tatashin <[email protected]>Cc Oscar Salvador <[email protected]>Cc Michal Hocko <[email protected]>Cc Wei Yang <[email protected]>Signed-off-by David Hildenbrand <[email protected]>Reviewed-by Wei Yang <[email protected]>
Quoted 3 lines
--- drivers/base/memory.c | 79 ++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 43 deletions(-)
Thanks, I'll take this through my tree.
greg k-h
Quoted 9 lines · David Hildenbrand
Let's use the easier to read (and not mess up) variants:
- UseDEVICE_ATTR_RO
- UseDEVICE_ATTR_WO
- UseDEVICE_ATTR_RW
instead of the more genericDEVICE_ATTR()we're using right now.We have to rename most callback functions. By fixing the intendations we can even save some LOCs.
Quoted 9 lines
Cc Greg Kroah-Hartman <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Cc Andrew Morton <[email protected]>Cc Ingo Molnar <[email protected]>Cc Pavel Tatashin <[email protected]>Cc Oscar Salvador <[email protected]>Cc Michal Hocko <[email protected]>Cc Wei Yang <[email protected]>Signed-off-by David Hildenbrand <[email protected]>
Thanks