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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130204105900.63bd5fae@riff.lan>
Date:	Mon, 4 Feb 2013 10:59:00 -0600
From:	Clark Williams <williams@...hat.com>
To:	Clark Williams <williams@...hat.com>
Cc:	Thomas Gleixner <tglx@...utronix.de>,
	LKML <linux-kernel@...r.kernel.org>,
	linux-rt-users <linux-rt-users@...r.kernel.org>
Subject: Re: [ANNOUNCE] 3.6.11-rt26

On Mon, 4 Feb 2013 09:54:38 -0600
Clark Williams <williams@...hat.com> wrote:

> On Mon, 4 Feb 2013 15:58:26 +0100 (CET)
> Thomas Gleixner <tglx@...utronix.de> wrote:
> 
> > Dear RT Folks,
> > 
> > I'm pleased to announce the 3.6.11-rt26 release.
> > 
> > Changes since 3.6.11-rt25:
> > 
> >    1) Fix the RT highmem implementation on x86
> > 
> >    2) Support highmem + RT on ARM
> > 
> >    3) Fix an one off error in the generic highmem code (upstream fix
> >       did not make it into 3.6.stable)
> > 
> >    4) Upstream SLUB fixes (Christoph Lameter)
> > 
> >    5) Fix a few RT issues in mmc and amba drivers
> > 
> >    6) Initialize local locks in mm/swap.c early
> > 
> >    7) Use simple wait queues for completions. This is a performance
> >       improvement.
> > 
> >       Completions do not have complex callbacks and the wakeup path is
> >       disabling interrupts anyway. So using simple wait locks with the
> >       raw spinlock is not a latency problem, but the "sleeping lock"
> >       in the normal waitqueue is a source for lock bouncing:
> > 
> >       T1  	 	   T2
> >       lock(WQ)
> >       wakeup(T2)
> >       ---> preemption
> > 			   lock(WQ)
> > 			   pi_boost(T1)
> > 			   wait_for_lock(WQ)
> >       unlock(WQ)
> >       deboost(T1)
> >       ---> preemption
> > 			   ....
> > 
> >       The simple waitqueue reduces this to:
> > 		   
> >       T1  	 	   T2
> >       raw_lock(WQ)
> >       wakeup(T2)
> >       raw_unlock(WQ)
> >       ---> preemption
> > 			   raw_lock(WQ)	
> > 			   ....
> > 
> > @Steven: Sorry, I forgot the stable tags on:
> > 	 drivers-tty-pl011-irq-disable-madness.patch
> > 	 mmci-remove-bogus-irq-save.patch
> > 	 idle-state.patch
> > 	 might-sleep-check-for-idle.patch
> > 	 mm-swap-fix-initialization.patch
> > 
> > I'm still digging through my mail backlog, so I have not yet decided
> > whether this is the last RT release for 3.6.
> > 
> > 
> > The delta patch against 3.6.11-rt25 is appended below and can be found
> > here:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/incr/patch-3.6.11-rt25-rt26.patch.xz
> > 
> > The RT patch against 3.6.11 can be found here:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patch-3.6.11-rt26.patch.xz
> > 
> > The split quilt queue is available at:
> > 
> >   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patches-3.6.11-rt26.tar.xz
> > 
> > Enjoy,
> > 
> > 	tglx
> > 
> 
> 
> Thomas,
> 
> I needed this change to build:
> 
> diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
> index efe4b33..3d5231f 100644
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -26,6 +26,7 @@
>  
>  #include <linux/errno.h>
>  #include <linux/rbtree.h>
> +#include <linux/wait.h>
>  
>  struct vm_area_struct;
>  struct mm_struct;
> 
> 
> Clark


More changes; I was running into a collision with the name kmap_prot.

This is not stacked on the above patch, it supercedes it.

Clark

diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h
index dc7b47e..1004f7d 100644
--- a/arch/x86/include/asm/highmem.h
+++ b/arch/x86/include/asm/highmem.h
@@ -69,7 +69,7 @@ void *kmap_atomic_pfn(unsigned long pfn);
 void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
 struct page *kmap_atomic_to_page(void *ptr);
 #else
-void *kmap_prot(struct page *page, pgprot_t prot);
+void *__kmap_prot(struct page *page, pgprot_t prot);
 # define kmap_atomic(page)                     \
        ({ pagefault_disable(); kmap(page); })
 
@@ -80,10 +80,10 @@ void *kmap_prot(struct page *page, pgprot_t prot);
        do { kunmap(kmap_to_page(kvaddr)); pagefault_enable(); } while(0)
 
 # define kmap_atomic_prot(page, prot)          \
-       ({ pagefault_disable(); kmap_prot(page, prot); })
+       ({ pagefault_disable(); __kmap_prot(page, prot); })
 
 # define kmap_atomic_prot_pfn(pfn, prot)       \
-       ({ pagefault_disable(); kmap_prot(pfn_to_page(pfn), prot); })
+       ({ pagefault_disable(); __kmap_prot(pfn_to_page(pfn), prot); })
 
 # define kmap_atomic_to_page(kvaddr)           \
        kmap_to_page(kvaddr)
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 98f84e2..9a85340 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -59,7 +59,7 @@ static inline void *kmap(struct page *page)
        return page_address(page);
 }
 
-#define kmap_prot(page, prot)  kmap(page)
+#define __kmap_prot(page, prot)        kmap(page)
 
 static inline void kunmap(struct page *page)
 {
diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
index efe4b33..3d5231f 100644
--- a/include/linux/uprobes.h
+++ b/include/linux/uprobes.h
@@ -26,6 +26,7 @@
 
 #include <linux/errno.h>
 #include <linux/rbtree.h>
+#include <linux/wait.h>
 
 struct vm_area_struct;
 struct mm_struct;

Download attachment "signature.asc" of type "application/pgp-signature" (199 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ