Commit 35df7976 authored by Yazen Ghannam's avatar Yazen Ghannam Committed by Borislav Petkov (AMD)
Browse files

x86/amd_node: Update __amd_smn_rw() error paths



Use guard(mutex) and convert PCI error codes to common ones.

Suggested-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarYazen Ghannam <yazen.ghannam@amd.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20241206161210.163701-12-yazen.ghannam@amd.com
parent d6caeafa
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -136,28 +136,24 @@ static int __amd_smn_rw(u16 node, u32 address, u32 *value, bool write)
	int err = -ENODEV;

	if (node >= amd_nb_num())
		goto out;
		return err;

	root = node_to_amd_nb(node)->root;
	if (!root)
		goto out;
		return err;

	mutex_lock(&smn_mutex);
	guard(mutex)(&smn_mutex);

	err = pci_write_config_dword(root, 0x60, address);
	if (err) {
		pr_warn("Error programming SMN address 0x%x.\n", address);
		goto out_unlock;
		return pcibios_err_to_errno(err);
	}

	err = (write ? pci_write_config_dword(root, 0x64, *value)
		     : pci_read_config_dword(root, 0x64, value));

out_unlock:
	mutex_unlock(&smn_mutex);

out:
	return err;
	return pcibios_err_to_errno(err);
}

int __must_check amd_smn_read(u16 node, u32 address, u32 *value)