Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1bf06a0d authored by Takashi Iwai's avatar Takashi Iwai Committed by Borislav Petkov
Browse files

EDAC: octeon: Use static attribute groups for sysfs entries



... instead of manual device_create_file() and device_remove_file()
calls.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Link: http://lkml.kernel.org/r/1423046938-18111-8-git-send-email-tiwai@suse.de


Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
parent 917c85b5
Loading
Loading
Loading
Loading
+13 −42
Original line number Diff line number Diff line
@@ -209,35 +209,18 @@ static DEVICE_ATTR(row, S_IRUGO | S_IWUSR,
static DEVICE_ATTR(col, S_IRUGO | S_IWUSR,
		   octeon_mc_inject_col_show, octeon_mc_inject_col_store);

static struct attribute *octeon_dev_attrs[] = {
	&dev_attr_inject.attr,
	&dev_attr_error_type.attr,
	&dev_attr_dimm.attr,
	&dev_attr_rank.attr,
	&dev_attr_bank.attr,
	&dev_attr_row.attr,
	&dev_attr_col.attr,
	NULL
};

static int octeon_set_mc_sysfs_attributes(struct mem_ctl_info *mci)
{
	int rc;

	rc = device_create_file(&mci->dev, &dev_attr_inject);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_error_type);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_dimm);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_rank);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_bank);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_row);
	if (rc < 0)
		return rc;
	rc = device_create_file(&mci->dev, &dev_attr_col);
	if (rc < 0)
		return rc;

	return 0;
}
ATTRIBUTE_GROUPS(octeon_dev);

static int octeon_lmc_edac_probe(struct platform_device *pdev)
{
@@ -271,18 +254,12 @@ static int octeon_lmc_edac_probe(struct platform_device *pdev)
		mci->ctl_name = "octeon-lmc-err";
		mci->edac_check = octeon_lmc_edac_poll;

		if (edac_mc_add_mc(mci)) {
		if (edac_mc_add_mc_with_groups(mci, octeon_dev_groups)) {
			dev_err(&pdev->dev, "edac_mc_add_mc() failed\n");
			edac_mc_free(mci);
			return -ENXIO;
		}

		if (octeon_set_mc_sysfs_attributes(mci)) {
			dev_err(&pdev->dev, "octeon_set_mc_sysfs_attributes() failed\n");
			return -ENXIO;
		}


		cfg0.u64 = cvmx_read_csr(CVMX_LMCX_MEM_CFG0(mc));
		cfg0.s.intr_ded_ena = 0;	/* We poll */
		cfg0.s.intr_sec_ena = 0;
@@ -309,18 +286,12 @@ static int octeon_lmc_edac_probe(struct platform_device *pdev)
		mci->ctl_name = "co_lmc_err";
		mci->edac_check = octeon_lmc_edac_poll_o2;

		if (edac_mc_add_mc(mci)) {
		if (edac_mc_add_mc_with_groups(mci, octeon_dev_groups)) {
			dev_err(&pdev->dev, "edac_mc_add_mc() failed\n");
			edac_mc_free(mci);
			return -ENXIO;
		}

		if (octeon_set_mc_sysfs_attributes(mci)) {
			dev_err(&pdev->dev, "octeon_set_mc_sysfs_attributes() failed\n");
			return -ENXIO;
		}


		en.u64 = cvmx_read_csr(CVMX_LMCX_MEM_CFG0(mc));
		en.s.intr_ded_ena = 0;	/* We poll */
		en.s.intr_sec_ena = 0;