lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Fri, 12 Oct 2007 11:38:39 -0500
From:	Corey Minyard <minyard@....org>
To:	Andrew Morton <akpm@...l.org>
Cc:	Linux Kernel <linux-kernel@...r.kernel.org>
Subject: [PATCH 2/7] IPMI: remove bogus semaphore from watchdog


From: Corey Minyard <cminyard@...sta.com>

Lockdep was giving an error when loading the IPMI watchdog module.  It
turns out that if you try to claim a lock in a parameter handling
routine, lockdep won't see that lock as "static" yet because the
module is not yet on the module list, so it will complain.

However, the semaphore in question is completely unnecessary.  So just
remove it.

Not needed for the stable kernel.

Signed-off-by: Corey Minyard <cminyard@...sta.com>

---
Index: linux-2.6.21/drivers/char/ipmi/ipmi_watchdog.c
===================================================================
--- linux-2.6.21.orig/drivers/char/ipmi/ipmi_watchdog.c
+++ linux-2.6.21/drivers/char/ipmi/ipmi_watchdog.c
@@ -164,8 +164,6 @@ static char expect_close;
 
 static int ifnum_to_use = -1;
 
-static DECLARE_RWSEM(register_sem);
-
 /* Parameters to ipmi_set_timeout */
 #define IPMI_SET_TIMEOUT_NO_HB			0
 #define IPMI_SET_TIMEOUT_HB_IF_NECESSARY	1
@@ -191,11 +189,9 @@ static int set_param_int(const char *val
 	if (endp == val)
 		return -EINVAL;
 
-	down_read(&register_sem);
 	*((int *)kp->arg) = l;
 	if (watchdog_user)
 		rv = ipmi_set_timeout(IPMI_SET_TIMEOUT_HB_IF_NECESSARY);
-	up_read(&register_sem);
 
 	return rv;
 }
@@ -224,17 +220,15 @@ static int set_param_str(const char *val
 
 	s = strstrip(valcp);
 
-	down_read(&register_sem);
 	rv = fn(s, NULL);
 	if (rv)
-		goto out_unlock;
+		goto out;
 
 	check_parms();
 	if (watchdog_user)
 		rv = ipmi_set_timeout(IPMI_SET_TIMEOUT_HB_IF_NECESSARY);
 
- out_unlock:
-	up_read(&register_sem);
+ out:
 	return rv;
 }
 
@@ -893,7 +887,6 @@ static void ipmi_register_watchdog(int i
 {
 	int rv = -EBUSY;
 
-	down_write(&register_sem);
 	if (watchdog_user)
 		goto out;
 
@@ -920,8 +913,6 @@ static void ipmi_register_watchdog(int i
 	}
 
  out:
-	up_write(&register_sem);
-
 	if ((start_now) && (rv == 0)) {
 		/* Run from startup, so start the timer now. */
 		start_now = 0; /* Disable this function after first startup. */
@@ -935,8 +926,6 @@ static void ipmi_unregister_watchdog(int
 {
 	int rv;
 
-	down_write(&register_sem);
-
 	if (!watchdog_user)
 		goto out;
 
@@ -961,7 +950,7 @@ static void ipmi_unregister_watchdog(int
 	watchdog_user = NULL;
 
  out:
-	up_write(&register_sem);
+	return;
 }
 
 #ifdef HAVE_NMI_HANDLER
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists