Commit 5198b443 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-linus-4.1-1' of git://git.code.sf.net/p/openipmi/linux-ipmi

Pull IPMI fixes from Corey Minyard:
 "Lots of minor IPMI fixes, especially ones that have have come up since
  the SSIF driver has been in the main kernel for a while"

* tag 'for-linus-4.1-1' of git://git.code.sf.net/p/openipmi/linux-ipmi:
  ipmi: Fix multi-part message handling
  ipmi: Add alert handling to SSIF
  ipmi: Fix a problem that messages are not issued in run_to_completion mode
  ipmi: Report an error if ACPI _IFT doesn't exist
  ipmi: Remove unused including <linux/version.h>
  ipmi: Don't report err in the SI driver for SSIF devices
  ipmi: Remove incorrect use of seq_has_overflowed
  ipmi:ssif: Ignore spaces when comparing I2C adapter names
  ipmi_ssif: Fix the logic on user-supplied addresses
parents 2a171aa2 3d69d43b
...@@ -505,7 +505,10 @@ at module load time (for a module) with: ...@@ -505,7 +505,10 @@ at module load time (for a module) with:
The addresses are normal I2C addresses. The adapter is the string The addresses are normal I2C addresses. The adapter is the string
name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name. name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name.
It is *NOT* i2c-<n> itself. It is *NOT* i2c-<n> itself. Also, the comparison is done ignoring
spaces, so if the name is "This is an I2C chip" you can say
adapter_name=ThisisanI2cchip. This is because it's hard to pass in
spaces in kernel parameters.
The debug flags are bit flags for each BMC found, they are: The debug flags are bit flags for each BMC found, they are:
IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8 IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8
......
...@@ -2000,7 +2000,7 @@ static int smi_ipmb_proc_show(struct seq_file *m, void *v) ...@@ -2000,7 +2000,7 @@ static int smi_ipmb_proc_show(struct seq_file *m, void *v)
seq_printf(m, " %x", intf->channels[i].address); seq_printf(m, " %x", intf->channels[i].address);
seq_putc(m, '\n'); seq_putc(m, '\n');
return seq_has_overflowed(m); return 0;
} }
static int smi_ipmb_proc_open(struct inode *inode, struct file *file) static int smi_ipmb_proc_open(struct inode *inode, struct file *file)
...@@ -2023,7 +2023,7 @@ static int smi_version_proc_show(struct seq_file *m, void *v) ...@@ -2023,7 +2023,7 @@ static int smi_version_proc_show(struct seq_file *m, void *v)
ipmi_version_major(&intf->bmc->id), ipmi_version_major(&intf->bmc->id),
ipmi_version_minor(&intf->bmc->id)); ipmi_version_minor(&intf->bmc->id));
return seq_has_overflowed(m); return 0;
} }
static int smi_version_proc_open(struct inode *inode, struct file *file) static int smi_version_proc_open(struct inode *inode, struct file *file)
......
...@@ -942,8 +942,7 @@ static void sender(void *send_info, ...@@ -942,8 +942,7 @@ static void sender(void *send_info,
* If we are running to completion, start it and run * If we are running to completion, start it and run
* transactions until everything is clear. * transactions until everything is clear.
*/ */
smi_info->curr_msg = msg; smi_info->waiting_msg = msg;
smi_info->waiting_msg = NULL;
/* /*
* Run to completion means we are single-threaded, no * Run to completion means we are single-threaded, no
...@@ -2244,7 +2243,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev, ...@@ -2244,7 +2243,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev,
acpi_handle handle; acpi_handle handle;
acpi_status status; acpi_status status;
unsigned long long tmp; unsigned long long tmp;
int rv; int rv = -EINVAL;
acpi_dev = pnp_acpi_device(dev); acpi_dev = pnp_acpi_device(dev);
if (!acpi_dev) if (!acpi_dev)
...@@ -2262,8 +2261,10 @@ static int ipmi_pnp_probe(struct pnp_dev *dev, ...@@ -2262,8 +2261,10 @@ static int ipmi_pnp_probe(struct pnp_dev *dev,
/* _IFT tells us the interface type: KCS, BT, etc */ /* _IFT tells us the interface type: KCS, BT, etc */
status = acpi_evaluate_integer(handle, "_IFT", NULL, &tmp); status = acpi_evaluate_integer(handle, "_IFT", NULL, &tmp);
if (ACPI_FAILURE(status)) if (ACPI_FAILURE(status)) {
dev_err(&dev->dev, "Could not find ACPI IPMI interface type\n");
goto err_free; goto err_free;
}
switch (tmp) { switch (tmp) {
case 1: case 1:
...@@ -2276,6 +2277,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev, ...@@ -2276,6 +2277,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev,
info->si_type = SI_BT; info->si_type = SI_BT;
break; break;
case 4: /* SSIF, just ignore */ case 4: /* SSIF, just ignore */
rv = -ENODEV;
goto err_free; goto err_free;
default: default:
dev_info(&dev->dev, "unknown IPMI type %lld\n", tmp); dev_info(&dev->dev, "unknown IPMI type %lld\n", tmp);
...@@ -2336,7 +2338,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev, ...@@ -2336,7 +2338,7 @@ static int ipmi_pnp_probe(struct pnp_dev *dev,
err_free: err_free:
kfree(info); kfree(info);
return -EINVAL; return rv;
} }
static void ipmi_pnp_remove(struct pnp_dev *dev) static void ipmi_pnp_remove(struct pnp_dev *dev)
...@@ -3080,7 +3082,7 @@ static int smi_type_proc_show(struct seq_file *m, void *v) ...@@ -3080,7 +3082,7 @@ static int smi_type_proc_show(struct seq_file *m, void *v)
seq_printf(m, "%s\n", si_to_str[smi->si_type]); seq_printf(m, "%s\n", si_to_str[smi->si_type]);
return seq_has_overflowed(m); return 0;
} }
static int smi_type_proc_open(struct inode *inode, struct file *file) static int smi_type_proc_open(struct inode *inode, struct file *file)
...@@ -3153,7 +3155,7 @@ static int smi_params_proc_show(struct seq_file *m, void *v) ...@@ -3153,7 +3155,7 @@ static int smi_params_proc_show(struct seq_file *m, void *v)
smi->irq, smi->irq,
smi->slave_addr); smi->slave_addr);
return seq_has_overflowed(m); return 0;
} }
static int smi_params_proc_open(struct inode *inode, struct file *file) static int smi_params_proc_open(struct inode *inode, struct file *file)
......
This diff is collapsed.
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