Commit df60eac9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-6.14-1' of https://github.com/cminyard/linux-ipmi

Pull ipmi updates from Corey Minyard:

 - I'm switching to a new email address, so update that

 - Minor fixes for formats and return values and missing ifdefs

 - A fix for some error handling that causes a loss of messages

* tag 'for-linus-6.14-1' of https://github.com/cminyard/linux-ipmi:
  MAINTAINERS: ipmi: update my email address
  ipmi: ssif_bmc: Fix new request loss when bmc ready for a response
  ipmi: make ipmi_destroy_user() return void
  char:ipmi: Fix a not-used variable on a non-ACPI system
  char:ipmi: Fix the wrong format specifier
  ipmi: ipmb: Add check devm_kasprintf() returned value
parents 641b0c64 b4339d59
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12118,7 +12118,7 @@ F: include/uapi/linux/io_uring.h
F:	io_uring/
IPMI SUBSYSTEM
M:	Corey Minyard <minyard@acm.org>
M:	Corey Minyard <corey@minyard.net>
L:	openipmi-developer@lists.sourceforge.net (moderated for non-subscribers)
S:	Supported
W:	http://openipmi.sourceforge.net/
+5 −0
Original line number Diff line number Diff line
@@ -321,6 +321,9 @@ static int ipmb_probe(struct i2c_client *client)
	ipmb_dev->miscdev.name = devm_kasprintf(&client->dev, GFP_KERNEL,
						"%s%d", "ipmb-",
						client->adapter->nr);
	if (!ipmb_dev->miscdev.name)
		return -ENOMEM;

	ipmb_dev->miscdev.fops = &ipmb_fops;
	ipmb_dev->miscdev.parent = &client->dev;
	ret = misc_register(&ipmb_dev->miscdev);
@@ -355,11 +358,13 @@ static const struct i2c_device_id ipmb_id[] = {
};
MODULE_DEVICE_TABLE(i2c, ipmb_id);

#ifdef CONFIG_ACPI
static const struct acpi_device_id acpi_ipmb_id[] = {
	{ "IPMB0001", 0 },
	{},
};
MODULE_DEVICE_TABLE(acpi, acpi_ipmb_id);
#endif

static struct i2c_driver ipmb_driver = {
	.driver = {
+1 −4
Original line number Diff line number Diff line
@@ -122,12 +122,9 @@ static int ipmi_open(struct inode *inode, struct file *file)
static int ipmi_release(struct inode *inode, struct file *file)
{
	struct ipmi_file_private *priv = file->private_data;
	int                      rv;
	struct ipmi_recv_msg *msg, *next;

	rv = ipmi_destroy_user(priv->user);
	if (rv)
		return rv;
	ipmi_destroy_user(priv->user);

	list_for_each_entry_safe(msg, next, &priv->recv_msgs, link)
		ipmi_free_recv_msg(msg);
+1 −3
Original line number Diff line number Diff line
@@ -1398,13 +1398,11 @@ static void _ipmi_destroy_user(struct ipmi_user *user)
	module_put(owner);
}

int ipmi_destroy_user(struct ipmi_user *user)
void ipmi_destroy_user(struct ipmi_user *user)
{
	_ipmi_destroy_user(user);

	kref_put(&user->refcount, free_user);

	return 0;
}
EXPORT_SYMBOL(ipmi_destroy_user);

+1 −5
Original line number Diff line number Diff line
@@ -699,8 +699,6 @@ static int __init ipmi_poweroff_init(void)
#ifdef MODULE
static void __exit ipmi_poweroff_cleanup(void)
{
	int rv;

#ifdef CONFIG_PROC_FS
	unregister_sysctl_table(ipmi_table_header);
#endif
@@ -708,9 +706,7 @@ static void __exit ipmi_poweroff_cleanup(void)
	ipmi_smi_watcher_unregister(&smi_watcher);

	if (ready) {
		rv = ipmi_destroy_user(ipmi_user);
		if (rv)
			pr_err("could not cleanup the IPMI user: 0x%x\n", rv);
		ipmi_destroy_user(ipmi_user);
		pm_power_off = old_poweroff_func;
	}
}
Loading