diff options
| author | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-10 14:36:34 -0600 | 
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-12 06:00:29 -0600 | 
| commit | bd5174dfb6f171fa06e638664ec6ee54692cf7b2 (patch) | |
| tree | aa92dc71b59aa1c030f0d33e601399acda9fb719 | |
| parent | b562ec8f74e4edb532a53d26f0002d6fb4a6c79b (diff) | |
PCI: Simplify pci_create_attr() control flow
Return error immediately to simplify the control flow in pci_create_attr().
No functional change intended.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
| -rw-r--r-- | drivers/pci/pci-sysfs.c | 53 | 
1 files changed, 27 insertions, 26 deletions
| diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 847a97351030..684f27bb68ba 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -1134,35 +1134,36 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)  	/* allocate attribute structure, piggyback attribute name */  	int name_len = write_combine ? 13 : 10;  	struct bin_attribute *res_attr; +	char *res_attr_name;  	int retval;  	res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC); -	if (res_attr) { -		char *res_attr_name = (char *)(res_attr + 1); - -		sysfs_bin_attr_init(res_attr); -		if (write_combine) { -			pdev->res_attr_wc[num] = res_attr; -			sprintf(res_attr_name, "resource%d_wc", num); -			res_attr->mmap = pci_mmap_resource_wc; -		} else { -			pdev->res_attr[num] = res_attr; -			sprintf(res_attr_name, "resource%d", num); -			res_attr->mmap = pci_mmap_resource_uc; -		} -		if (pci_resource_flags(pdev, num) & IORESOURCE_IO) { -			res_attr->read = pci_read_resource_io; -			res_attr->write = pci_write_resource_io; -		} -		res_attr->attr.name = res_attr_name; -		res_attr->attr.mode = S_IRUSR | S_IWUSR; -		res_attr->size = pci_resource_len(pdev, num); -		res_attr->private = &pdev->resource[num]; -		retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr); -		if (retval) -			kfree(res_attr); -	} else -		retval = -ENOMEM; +	if (!res_attr) +		return -ENOMEM; + +	res_attr_name = (char *)(res_attr + 1); + +	sysfs_bin_attr_init(res_attr); +	if (write_combine) { +		pdev->res_attr_wc[num] = res_attr; +		sprintf(res_attr_name, "resource%d_wc", num); +		res_attr->mmap = pci_mmap_resource_wc; +	} else { +		pdev->res_attr[num] = res_attr; +		sprintf(res_attr_name, "resource%d", num); +		res_attr->mmap = pci_mmap_resource_uc; +	} +	if (pci_resource_flags(pdev, num) & IORESOURCE_IO) { +		res_attr->read = pci_read_resource_io; +		res_attr->write = pci_write_resource_io; +	} +	res_attr->attr.name = res_attr_name; +	res_attr->attr.mode = S_IRUSR | S_IWUSR; +	res_attr->size = pci_resource_len(pdev, num); +	res_attr->private = &pdev->resource[num]; +	retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr); +	if (retval) +		kfree(res_attr);  	return retval;  } | 
