Commit 221fd1e1 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull IPMI updates from Corey Minyard:
 "Some cleanups for device changes coming, and some range checks on data
  coming from a host to a BMC"

* tag 'for-linus-6.11-1' of https://github.com/cminyard/linux-ipmi:
  ipmi: Drop explicit initialization of struct i2c_device_id::driver_data to 0
  ipmi: ssif_bmc: prevent integer overflow on 32bit systems
parents a5cb6b2b 19a01155
...@@ -350,8 +350,8 @@ static void ipmb_remove(struct i2c_client *client) ...@@ -350,8 +350,8 @@ static void ipmb_remove(struct i2c_client *client)
} }
static const struct i2c_device_id ipmb_id[] = { static const struct i2c_device_id ipmb_id[] = {
{ "ipmb-dev", 0 }, { "ipmb-dev" },
{}, {}
}; };
MODULE_DEVICE_TABLE(i2c, ipmb_id); MODULE_DEVICE_TABLE(i2c, ipmb_id);
......
...@@ -561,8 +561,8 @@ MODULE_DEVICE_TABLE(of, of_ipmi_ipmb_match); ...@@ -561,8 +561,8 @@ MODULE_DEVICE_TABLE(of, of_ipmi_ipmb_match);
#endif #endif
static const struct i2c_device_id ipmi_ipmb_id[] = { static const struct i2c_device_id ipmi_ipmb_id[] = {
{ DEVICE_NAME, 0 }, { DEVICE_NAME },
{}, {}
}; };
MODULE_DEVICE_TABLE(i2c, ipmi_ipmb_id); MODULE_DEVICE_TABLE(i2c, ipmi_ipmb_id);
......
...@@ -2049,7 +2049,7 @@ static int dmi_ipmi_probe(struct platform_device *pdev) ...@@ -2049,7 +2049,7 @@ static int dmi_ipmi_probe(struct platform_device *pdev)
#endif #endif
static const struct i2c_device_id ssif_id[] = { static const struct i2c_device_id ssif_id[] = {
{ DEVICE_NAME, 0 }, { DEVICE_NAME },
{ } { }
}; };
MODULE_DEVICE_TABLE(i2c, ssif_id); MODULE_DEVICE_TABLE(i2c, ssif_id);
......
...@@ -177,13 +177,15 @@ static ssize_t ssif_bmc_write(struct file *file, const char __user *buf, size_t ...@@ -177,13 +177,15 @@ static ssize_t ssif_bmc_write(struct file *file, const char __user *buf, size_t
unsigned long flags; unsigned long flags;
ssize_t ret; ssize_t ret;
if (count > sizeof(struct ipmi_ssif_msg)) if (count < sizeof(msg.len) ||
count > sizeof(struct ipmi_ssif_msg))
return -EINVAL; return -EINVAL;
if (copy_from_user(&msg, buf, count)) if (copy_from_user(&msg, buf, count))
return -EFAULT; return -EFAULT;
if (!msg.len || count < sizeof_field(struct ipmi_ssif_msg, len) + msg.len) if (!msg.len || msg.len > IPMI_SSIF_PAYLOAD_MAX ||
count < sizeof_field(struct ipmi_ssif_msg, len) + msg.len)
return -EINVAL; return -EINVAL;
spin_lock_irqsave(&ssif_bmc->lock, flags); spin_lock_irqsave(&ssif_bmc->lock, flags);
...@@ -850,8 +852,8 @@ static const struct of_device_id ssif_bmc_match[] = { ...@@ -850,8 +852,8 @@ static const struct of_device_id ssif_bmc_match[] = {
MODULE_DEVICE_TABLE(of, ssif_bmc_match); MODULE_DEVICE_TABLE(of, ssif_bmc_match);
static const struct i2c_device_id ssif_bmc_id[] = { static const struct i2c_device_id ssif_bmc_id[] = {
{ DEVICE_NAME, 0 }, { DEVICE_NAME },
{ }, { }
}; };
MODULE_DEVICE_TABLE(i2c, ssif_bmc_id); MODULE_DEVICE_TABLE(i2c, ssif_bmc_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment