diff options
Diffstat (limited to 'drivers/pci/pci-sysfs.c')
-rw-r--r-- | drivers/pci/pci-sysfs.c | 39 |
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 | } |
78 | static DEVICE_ATTR_RW(broken_parity_status); | 78 | static DEVICE_ATTR_RW(broken_parity_status); |
79 | 79 | ||
80 | static ssize_t pci_dev_show_local_cpu(struct device *dev, int type, | 80 | static 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 | ||
101 | static ssize_t local_cpus_show(struct device *dev, | 94 | static 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 | } |
106 | static DEVICE_ATTR_RO(local_cpus); | 99 | static DEVICE_ATTR_RO(local_cpus); |
107 | 100 | ||
108 | static ssize_t local_cpulist_show(struct device *dev, | 101 | static 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 | } |
113 | static DEVICE_ATTR_RO(local_cpulist); | 106 | static DEVICE_ATTR_RO(local_cpulist); |
114 | 107 | ||
115 | /* | 108 | /* |
116 | * PCI Bus Class Devices | 109 | * PCI Bus Class Devices |
117 | */ | 110 | */ |
118 | static 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 | |||
134 | static ssize_t cpuaffinity_show(struct device *dev, | 111 | static 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 | } |
139 | static DEVICE_ATTR_RO(cpuaffinity); | 118 | static DEVICE_ATTR_RO(cpuaffinity); |
140 | 119 | ||
141 | static ssize_t cpulistaffinity_show(struct device *dev, | 120 | static 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 | } |
146 | static DEVICE_ATTR_RO(cpulistaffinity); | 127 | static DEVICE_ATTR_RO(cpulistaffinity); |
147 | 128 | ||