diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2021-04-02 20:43:30 +0300 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2021-04-02 12:53:32 -0500 |
commit | 59cdb2e7c849656a1509b8c20cab2be1743631b2 (patch) | |
tree | 92834eb554ebffd2a20497c6ddd1cdc3c459e1b2 /drivers/char/ipmi/ipmi_si_hardcode.c | |
parent | 649a7d46d0840fc44d181cc6b3e608b46c77a86d (diff) | |
download | linux-59cdb2e7c849656a1509b8c20cab2be1743631b2.tar.gz |
ipmi_si: Reuse si_to_str[] array in ipmi_hardcode_init_one()
Instead of making the comparison one by one, reuse si_to_str[] array
in ipmi_hardcode_init_one() in conjunction with match_string() API.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Message-Id: <20210402174334.13466-7-andriy.shevchenko@linux.intel.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'drivers/char/ipmi/ipmi_si_hardcode.c')
-rw-r--r-- | drivers/char/ipmi/ipmi_si_hardcode.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/char/ipmi/ipmi_si_hardcode.c b/drivers/char/ipmi/ipmi_si_hardcode.c index f6ece7569504..bbcf7483d569 100644 --- a/drivers/char/ipmi/ipmi_si_hardcode.c +++ b/drivers/char/ipmi/ipmi_si_hardcode.c @@ -80,26 +80,21 @@ static void __init ipmi_hardcode_init_one(const char *si_type_str, enum ipmi_addr_space addr_space) { struct ipmi_plat_data p; + int t; memset(&p, 0, sizeof(p)); p.iftype = IPMI_PLAT_IF_SI; - if (!si_type_str || !*si_type_str || strcmp(si_type_str, "kcs") == 0) { + if (!si_type_str || !*si_type_str) { p.type = SI_KCS; - } else if (strcmp(si_type_str, "smic") == 0) { - p.type = SI_SMIC; - } else if (strcmp(si_type_str, "bt") == 0) { - p.type = SI_BT; - } else if (strcmp(si_type_str, "invalid") == 0) { - /* - * Allow a firmware-specified interface to be - * disabled. - */ - p.type = SI_TYPE_INVALID; } else { - pr_warn("Interface type specified for interface %d, was invalid: %s\n", - i, si_type_str); - return; + t = match_string(si_to_str, -1, si_type_str); + if (t < 0) { + pr_warn("Interface type specified for interface %d, was invalid: %s\n", + i, si_type_str); + return; + } + p.type = t; } p.regsize = regsizes[i]; |