Merge tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / drivers / pci / pci-sysfs.c
index a62acc443d5bfa42ab82b45696de6f14b26cd75b..aa012fb3834b48dbc0001565d453b2dc267009c1 100644 (file)
@@ -77,11 +77,10 @@ static ssize_t broken_parity_status_store(struct device *dev,
 }
 static DEVICE_ATTR_RW(broken_parity_status);
 
-static ssize_t pci_dev_show_local_cpu(struct device *dev, int type,
+static ssize_t pci_dev_show_local_cpu(struct device *dev, bool list,
                                      struct device_attribute *attr, char *buf)
 {
        const struct cpumask *mask;
-       int len;
 
 #ifdef CONFIG_NUMA
        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,
 #else
        mask = cpumask_of_pcibus(to_pci_dev(dev)->bus);
 #endif
-       len = type ?
-               cpumask_scnprintf(buf, PAGE_SIZE-2, mask) :
-               cpulist_scnprintf(buf, PAGE_SIZE-2, mask);
-
-       buf[len++] = '\n';
-       buf[len] = '\0';
-       return len;
+       return cpumap_print_to_pagebuf(list, buf, mask);
 }
 
 static ssize_t local_cpus_show(struct device *dev,
                               struct device_attribute *attr, char *buf)
 {
-       return pci_dev_show_local_cpu(dev, 1, attr, buf);
+       return pci_dev_show_local_cpu(dev, false, attr, buf);
 }
 static DEVICE_ATTR_RO(local_cpus);
 
 static ssize_t local_cpulist_show(struct device *dev,
                                  struct device_attribute *attr, char *buf)
 {
-       return pci_dev_show_local_cpu(dev, 0, attr, buf);
+       return pci_dev_show_local_cpu(dev, true, attr, buf);
 }
 static DEVICE_ATTR_RO(local_cpulist);
 
 /*
  * PCI Bus Class Devices
  */
-static ssize_t pci_bus_show_cpuaffinity(struct device *dev, int type,
-                                       struct device_attribute *attr,
-                                       char *buf)
-{
-       int ret;
-       const struct cpumask *cpumask;
-
-       cpumask = cpumask_of_pcibus(to_pci_bus(dev));
-       ret = type ?
-               cpulist_scnprintf(buf, PAGE_SIZE-2, cpumask) :
-               cpumask_scnprintf(buf, PAGE_SIZE-2, cpumask);
-       buf[ret++] = '\n';
-       buf[ret] = '\0';
-       return ret;
-}
-
 static ssize_t cpuaffinity_show(struct device *dev,
                                struct device_attribute *attr, char *buf)
 {
-       return pci_bus_show_cpuaffinity(dev, 0, attr, buf);
+       const struct cpumask *cpumask = cpumask_of_pcibus(to_pci_bus(dev));
+
+       return cpumap_print_to_pagebuf(false, buf, cpumask);
 }
 static DEVICE_ATTR_RO(cpuaffinity);
 
 static ssize_t cpulistaffinity_show(struct device *dev,
                                    struct device_attribute *attr, char *buf)
 {
-       return pci_bus_show_cpuaffinity(dev, 1, attr, buf);
+       const struct cpumask *cpumask = cpumask_of_pcibus(to_pci_bus(dev));
+
+       return cpumap_print_to_pagebuf(true, buf, cpumask);
 }
 static DEVICE_ATTR_RO(cpulistaffinity);