aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r--drivers/pci/pci-sysfs.c39
1 files changed, 10 insertions, 29 deletions
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 2c6643fdc0cf..368bdac42603 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -77,11 +77,10 @@ static ssize_t broken_parity_status_store(struct device *dev,
77} 77}
78static DEVICE_ATTR_RW(broken_parity_status); 78static DEVICE_ATTR_RW(broken_parity_status);
79 79
80static ssize_t pci_dev_show_local_cpu(struct device *dev, int type, 80static ssize_t pci_dev_show_local_cpu(struct device *dev, bool list,
81 struct device_attribute *attr, char *buf) 81 struct device_attribute *attr, char *buf)
82{ 82{
83 const struct cpumask *mask; 83 const struct cpumask *mask;
84 int len;
85 84
86#ifdef CONFIG_NUMA 85#ifdef CONFIG_NUMA
87 mask = (dev_to_node(dev) == -1) ? cpu_online_mask : 86 mask = (dev_to_node(dev) == -1) ? cpu_online_mask :
@@ -89,59 +88,41 @@ static ssize_t pci_dev_show_local_cpu(struct device *dev, int type,
89#else 88#else
90 mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); 89 mask = cpumask_of_pcibus(to_pci_dev(dev)->bus);
91#endif 90#endif
92 len = type ? 91 return cpumap_print_to_pagebuf(list, buf, mask);
93 cpumask_scnprintf(buf, PAGE_SIZE-2, mask) :
94 cpulist_scnprintf(buf, PAGE_SIZE-2, mask);
95
96 buf[len++] = '\n';
97 buf[len] = '\0';
98 return len;
99} 92}
100 93
101static ssize_t local_cpus_show(struct device *dev, 94static ssize_t local_cpus_show(struct device *dev,
102 struct device_attribute *attr, char *buf) 95 struct device_attribute *attr, char *buf)
103{ 96{
104 return pci_dev_show_local_cpu(dev, 1, attr, buf); 97 return pci_dev_show_local_cpu(dev, false, attr, buf);
105} 98}
106static DEVICE_ATTR_RO(local_cpus); 99static DEVICE_ATTR_RO(local_cpus);
107 100
108static ssize_t local_cpulist_show(struct device *dev, 101static ssize_t local_cpulist_show(struct device *dev,
109 struct device_attribute *attr, char *buf) 102 struct device_attribute *attr, char *buf)
110{ 103{
111 return pci_dev_show_local_cpu(dev, 0, attr, buf); 104 return pci_dev_show_local_cpu(dev, true, attr, buf);
112} 105}
113static DEVICE_ATTR_RO(local_cpulist); 106static DEVICE_ATTR_RO(local_cpulist);
114 107
115/* 108/*
116 * PCI Bus Class Devices 109 * PCI Bus Class Devices
117 */ 110 */
118static ssize_t pci_bus_show_cpuaffinity(struct device *dev, int type,
119 struct device_attribute *attr,
120 char *buf)
121{
122 int ret;
123 const struct cpumask *cpumask;
124
125 cpumask = cpumask_of_pcibus(to_pci_bus(dev));
126 ret = type ?
127 cpulist_scnprintf(buf, PAGE_SIZE-2, cpumask) :
128 cpumask_scnprintf(buf, PAGE_SIZE-2, cpumask);
129 buf[ret++] = '\n';
130 buf[ret] = '\0';
131 return ret;
132}
133
134static ssize_t cpuaffinity_show(struct device *dev, 111static ssize_t cpuaffinity_show(struct device *dev,
135 struct device_attribute *attr, char *buf) 112 struct device_attribute *attr, char *buf)
136{ 113{
137 return pci_bus_show_cpuaffinity(dev, 0, attr, buf); 114 const struct cpumask *cpumask = cpumask_of_pcibus(to_pci_bus(dev));
115
116 return cpumap_print_to_pagebuf(false, buf, cpumask);
138} 117}
139static DEVICE_ATTR_RO(cpuaffinity); 118static DEVICE_ATTR_RO(cpuaffinity);
140 119
141static ssize_t cpulistaffinity_show(struct device *dev, 120static ssize_t cpulistaffinity_show(struct device *dev,
142 struct device_attribute *attr, char *buf) 121 struct device_attribute *attr, char *buf)
143{ 122{
144 return pci_bus_show_cpuaffinity(dev, 1, attr, buf); 123 const struct cpumask *cpumask = cpumask_of_pcibus(to_pci_bus(dev));
124
125 return cpumap_print_to_pagebuf(true, buf, cpumask);
145} 126}
146static DEVICE_ATTR_RO(cpulistaffinity); 127static DEVICE_ATTR_RO(cpulistaffinity);
147 128