You can't just cast cpumasks. It doesn't compile if NR_CPUS is greater than
4 * BITS_PER_LONG.
static ssize_t pci_bus_show_cpuaffinity(struct class_device *class_dev, char *buf)
{
cpumask_t cpumask = pcibus_to_cpumask((to_pci_bus(class_dev))->number);
+ int ret;
- return sprintf(buf, "%lx\n", (unsigned long)cpumask);
+ ret = cpumask_snprintf(buf, PAGE_SIZE, cpumask);
+ if (ret < PAGE_SIZE)
+ buf[ret++] = '\n';
+ return ret;
}
static CLASS_DEVICE_ATTR(cpuaffinity, S_IRUGO, pci_bus_show_cpuaffinity, NULL);