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>] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 29 Jan 2009 13:39:16 -0600
From:	Cliff Wickman <cpw@....com>
To:	linux-kernel@...r.kernel.org
Cc:	mingo@...e.hu, tj@...nel.org
Subject: [PATCH] x86: UV cleanup



From: Cliff Wickman <cpw@....com>

This patch tweaks a couple things:

- uv_flush_tlb_others()
  the WARN_ON(!in_atomic()); fails if CONFIG_PREEMPT is not enabled

  The #ifdef may not be the right fix. The fix is probably in the
  in_atomic macro, but I'm not sure what in_atomic() should return
  if CONFIG_PREEMPT is turned off.  I tested making it return 1 in that
  case, but that yielded tons of warnings.

  The simpler fix for tlb_uv.c would be to just drop the WARN_ON.

- uv_flush_send_and_wait() should return a pointer if the broadcast
  remote tlb shootdown requests fail. That causes the conventional IPI
  method of shootdown to be used.

Diffed against 2.6.29-rc2
  (Ingo's tree)

Signed-off-by: Cliff Wickman <cpw@....com>
---
 arch/x86/kernel/tlb_uv.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: linux/arch/x86/kernel/tlb_uv.c
===================================================================
--- linux.orig/arch/x86/kernel/tlb_uv.c
+++ linux/arch/x86/kernel/tlb_uv.c
@@ -259,7 +259,7 @@ const struct cpumask *uv_flush_send_and_
 		 * the cpu's, all of which are still in the mask.
 		 */
 		__get_cpu_var(ptcstats).ptc_i++;
-		return 0;
+		return flush_mask;
 	}
 
 	/*
@@ -316,7 +316,9 @@ const struct cpumask *uv_flush_tlb_other
 	int locals = 0;
 	struct bau_desc *bau_desc;
 
+#ifdef CONFIG_PREEMPT
 	WARN_ON(!in_atomic());
+#endif
 
 	cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));
 
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ