aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/node.c
diff options
context:
space:
mode:
authorSudeep Holla <sudeep.holla@arm.com>2014-09-30 09:48:22 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-11-07 14:45:00 -0500
commit5aaba36318e5995e8c95d077a46d9a4d00fcc1cd (patch)
treeedf9eb1ea758b82f1f04963a0fc54fab8bc8bc50 /drivers/base/node.c
parent0372ffb35d00288802265586a29c117911d02fb8 (diff)
cpumask: factor out show_cpumap into separate helper function
Many sysfs *_show function use cpu{list,mask}_scnprintf to copy cpumap to the buffer aligned to PAGE_SIZE, append '\n' and '\0' to return null terminated buffer with newline. This patch creates a new helper function cpumap_print_to_pagebuf in cpumask.h using newly added bitmap_print_to_pagebuf and consolidates most of those sysfs functions using the new helper function. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Suggested-by: Stephen Boyd <sboyd@codeaurora.org> Tested-by: Stephen Boyd <sboyd@codeaurora.org> Acked-by: "Rafael J. Wysocki" <rjw@rjwysocki.net> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: x86@kernel.org Cc: linux-acpi@vger.kernel.org Cc: linux-pci@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/node.c')
-rw-r--r--drivers/base/node.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 472168cd0c97..a3b82e9c7f20 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -25,32 +25,26 @@ static struct bus_type node_subsys = {
25}; 25};
26 26
27 27
28static ssize_t node_read_cpumap(struct device *dev, int type, char *buf) 28static ssize_t node_read_cpumap(struct device *dev, bool list, char *buf)
29{ 29{
30 struct node *node_dev = to_node(dev); 30 struct node *node_dev = to_node(dev);
31 const struct cpumask *mask = cpumask_of_node(node_dev->dev.id); 31 const struct cpumask *mask = cpumask_of_node(node_dev->dev.id);
32 int len;
33 32
34 /* 2008/04/07: buf currently PAGE_SIZE, need 9 chars per 32 bits. */ 33 /* 2008/04/07: buf currently PAGE_SIZE, need 9 chars per 32 bits. */
35 BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1)); 34 BUILD_BUG_ON((NR_CPUS/32 * 9) > (PAGE_SIZE-1));
36 35
37 len = type? 36 return cpumap_print_to_pagebuf(list, buf, mask);
38 cpulist_scnprintf(buf, PAGE_SIZE-2, mask) :
39 cpumask_scnprintf(buf, PAGE_SIZE-2, mask);
40 buf[len++] = '\n';
41 buf[len] = '\0';
42 return len;
43} 37}
44 38
45static inline ssize_t node_read_cpumask(struct device *dev, 39static inline ssize_t node_read_cpumask(struct device *dev,
46 struct device_attribute *attr, char *buf) 40 struct device_attribute *attr, char *buf)
47{ 41{
48 return node_read_cpumap(dev, 0, buf); 42 return node_read_cpumap(dev, false, buf);
49} 43}
50static inline ssize_t node_read_cpulist(struct device *dev, 44static inline ssize_t node_read_cpulist(struct device *dev,
51 struct device_attribute *attr, char *buf) 45 struct device_attribute *attr, char *buf)
52{ 46{
53 return node_read_cpumap(dev, 1, buf); 47 return node_read_cpumap(dev, true, buf);
54} 48}
55 49
56static DEVICE_ATTR(cpumap, S_IRUGO, node_read_cpumask, NULL); 50static DEVICE_ATTR(cpumap, S_IRUGO, node_read_cpumask, NULL);