Merge branch 'ipmi' (patches from Corey Minyard)
Merge ipmi patches from Corey Minyard: "These have been in linux-next for a while, ready for 3.18" * emailed patches from Corey Minyard <minyard@acm.org>: ipmi: Clear drvdata when interface is removed ipmi: work around gcc-4.9 build warning ipmi/of: Don't use unavailable interfaces ipmi: Clean up the error handling for channel config errors
This commit is contained in:
Коммит
a40a7201a4
|
@ -2796,7 +2796,6 @@ channel_handler(ipmi_smi_t intf, struct ipmi_recv_msg *msg)
|
|||
= IPMI_CHANNEL_MEDIUM_IPMB;
|
||||
intf->channels[0].protocol
|
||||
= IPMI_CHANNEL_PROTOCOL_IPMB;
|
||||
rv = -ENOSYS;
|
||||
|
||||
intf->curr_channel = IPMI_MAX_CHANNELS;
|
||||
wake_up(&intf->waitq);
|
||||
|
@ -2821,12 +2820,12 @@ channel_handler(ipmi_smi_t intf, struct ipmi_recv_msg *msg)
|
|||
|
||||
if (rv) {
|
||||
/* Got an error somehow, just give up. */
|
||||
printk(KERN_WARNING PFX
|
||||
"Error sending channel information for channel"
|
||||
" %d: %d\n", intf->curr_channel, rv);
|
||||
|
||||
intf->curr_channel = IPMI_MAX_CHANNELS;
|
||||
wake_up(&intf->waitq);
|
||||
|
||||
printk(KERN_WARNING PFX
|
||||
"Error sending channel information: %d\n",
|
||||
rv);
|
||||
}
|
||||
}
|
||||
out:
|
||||
|
@ -2964,8 +2963,12 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
|
|||
intf->null_user_handler = channel_handler;
|
||||
intf->curr_channel = 0;
|
||||
rv = send_channel_info_cmd(intf, 0);
|
||||
if (rv)
|
||||
if (rv) {
|
||||
printk(KERN_WARNING PFX
|
||||
"Error sending channel information for channel"
|
||||
" 0, %d\n", rv);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Wait for the channel info to be read. */
|
||||
wait_event(intf->waitq,
|
||||
|
|
|
@ -965,9 +965,9 @@ static inline int ipmi_si_is_busy(struct timespec *ts)
|
|||
return ts->tv_nsec != -1;
|
||||
}
|
||||
|
||||
static int ipmi_thread_busy_wait(enum si_sm_result smi_result,
|
||||
const struct smi_info *smi_info,
|
||||
struct timespec *busy_until)
|
||||
static inline int ipmi_thread_busy_wait(enum si_sm_result smi_result,
|
||||
const struct smi_info *smi_info,
|
||||
struct timespec *busy_until)
|
||||
{
|
||||
unsigned int max_busy_us = 0;
|
||||
|
||||
|
@ -2658,6 +2658,9 @@ static int ipmi_probe(struct platform_device *dev)
|
|||
if (!match)
|
||||
return -EINVAL;
|
||||
|
||||
if (!of_device_is_available(np))
|
||||
return -EINVAL;
|
||||
|
||||
ret = of_address_to_resource(np, 0, &resource);
|
||||
if (ret) {
|
||||
dev_warn(&dev->dev, PFX "invalid address from OF\n");
|
||||
|
@ -3655,6 +3658,9 @@ static void cleanup_one_si(struct smi_info *to_clean)
|
|||
if (!to_clean)
|
||||
return;
|
||||
|
||||
if (to_clean->dev)
|
||||
dev_set_drvdata(to_clean->dev, NULL);
|
||||
|
||||
list_del(&to_clean->link);
|
||||
|
||||
/* Tell the driver that we are shutting down. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче