]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
ipmi:si: Don't block module unload if the BMC is messed up
authorCorey Minyard <corey@minyard.net>
Fri, 13 Feb 2026 03:52:48 +0000 (21:52 -0600)
committerCorey Minyard <corey@minyard.net>
Mon, 23 Feb 2026 14:58:31 +0000 (08:58 -0600)
If the BMC is in a bad state, don't bother waiting for queues messages
since there can't be any.  Otherwise the unload is blocked until the
BMC is back in a good state.

Reported-by: Rafael J. Wysocki <rafael@kernel.org>
Fixes: bc3a9d217755 ("ipmi:si: Gracefully handle if the BMC is non-functional")
Cc: stable@vger.kernel.org # 4.18
Signed-off-by: Corey Minyard <corey@minyard.net>
Reviewed-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>
drivers/char/ipmi/ipmi_si_intf.c

index 0049e3792ba17c7cab2f85503211f3d71e313531..3667033fcc51587f0942ae14c9000e5b8482b6f7 100644 (file)
@@ -2234,7 +2234,8 @@ static void wait_msg_processed(struct smi_info *smi_info)
        unsigned long jiffies_now;
        long time_diff;
 
-       while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
+       while (smi_info->si_state != SI_HOSED &&
+                   (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL))) {
                jiffies_now = jiffies;
                time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
                     * SI_USEC_PER_JIFFY);