Skip to content

Commit

Permalink
ipmi_si: Clean up shutdown a bit
Browse files Browse the repository at this point in the history
Signed-off-by: Corey Minyard <cminyard@mvista.com>
  • Loading branch information
cminyard committed Apr 18, 2018
1 parent 57bccb4 commit 93c303d
Showing 1 changed file with 11 additions and 21 deletions.
32 changes: 11 additions & 21 deletions drivers/char/ipmi/ipmi_si_intf.c
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ static int num_max_busy_us;
static bool unload_when_empty = true;

static int try_smi_init(struct smi_info *smi);
static void shutdown_one_si(struct smi_info *smi_info);
static void cleanup_one_si(struct smi_info *smi_info);
static void cleanup_ipmi_si(void);

Expand Down Expand Up @@ -2003,14 +2002,8 @@ int ipmi_si_add_smi(struct si_sm_io *io)

list_add_tail(&new_smi->link, &smi_infos);

if (initialized) {
if (initialized)
rv = try_smi_init(new_smi);
if (rv) {
cleanup_one_si(new_smi);
mutex_unlock(&smi_infos_lock);
return rv;
}
}
out_err:
mutex_unlock(&smi_infos_lock);
return rv;
Expand Down Expand Up @@ -2220,7 +2213,8 @@ static int try_smi_init(struct smi_info *new_smi)
return 0;

out_err:
shutdown_one_si(new_smi);
ipmi_unregister_smi(new_smi->intf);
new_smi->intf = NULL;

kfree(init_name);

Expand Down Expand Up @@ -2358,25 +2352,21 @@ static void shutdown_smi(void *send_info)
smi_info->si_sm = NULL;
}

static void shutdown_one_si(struct smi_info *smi_info)
{
ipmi_smi_t intf = smi_info->intf;

if (!intf)
return;

smi_info->intf = NULL;
ipmi_unregister_smi(intf);
}

/*
* Must be called with smi_infos_lock held, to serialize the
* smi_info->intf check.
*/
static void cleanup_one_si(struct smi_info *smi_info)
{
if (!smi_info)
return;

list_del(&smi_info->link);

shutdown_one_si(smi_info);
if (smi_info->intf) {
ipmi_unregister_smi(smi_info->intf);
smi_info->intf = NULL;
}

if (smi_info->pdev) {
if (smi_info->pdev_registered)
Expand Down

0 comments on commit 93c303d

Please sign in to comment.