Skip to content

Commit

Permalink
Merge branch 'ipmi' (patches from Corey Minyard)
Browse files Browse the repository at this point in the history
Merge ipmi patches from Corey Minyard:
 "These have been in linux-next for a while, ready for 3.18"

* emailed patches from Corey Minyard <[email protected]>:
  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
  • Loading branch information
torvalds committed Oct 7, 2014
2 parents 74da386 + 567eded commit a40a720
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
15 changes: 9 additions & 6 deletions drivers/char/ipmi/ipmi_msghandler.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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:
Expand Down Expand Up @@ -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,
Expand Down
12 changes: 9 additions & 3 deletions drivers/char/ipmi/ipmi_si_intf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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. */
Expand Down

0 comments on commit a40a720

Please sign in to comment.