All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl
@ 2016-01-25  9:33 Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] pm: use GFP_ATOMIC when pm core call this function Jiri Slaby
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Salva Peiró, Greg Kroah-Hartman, Yuki Machida, Jiri Slaby

From: Salva Peiró <speirofr@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 4b6184336ebb5c8dc1eae7f7ab46ee608a748b05 upstream.

The dgnc_mgmt_ioctl() code fails to initialize the 16 _reserved bytes of
struct digi_dinfo after the ->dinfo_nboards member. Add an explicit
memset(0) before filling the structure to avoid the info leak.

Signed-off-by: Salva Peiró <speirofr@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Yuki Machida <machida.yuki@jp.fujitsu.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/staging/dgnc/dgnc_mgmt.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
index c4629d7c80b2..d885bbb7de60 100644
--- a/drivers/staging/dgnc/dgnc_mgmt.c
+++ b/drivers/staging/dgnc/dgnc_mgmt.c
@@ -145,6 +145,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
 		DGNC_LOCK(dgnc_global_lock, lock_flags);
 
+		memset(&ddi, 0, sizeof(ddi));
 		ddi.dinfo_nboards = dgnc_NumBoards;
 		sprintf(ddi.dinfo_version, "%s", DG_PART);
 
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] pm: use GFP_ATOMIC when pm core call this function
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] m32r: fix potential NULL-pointer dereference Jiri Slaby
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Scott Jiang, Oliver Neukum, Jiri Slaby

From: Scott Jiang <scott.jiang.linux@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit aefefe92116b776203f95f3249ae61b94f73f170 upstream.

We shouldn't sleep in atomic sections.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/blackfin/mach-common/pm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/blackfin/mach-common/pm.c b/arch/blackfin/mach-common/pm.c
index 87bfe549ad3f..92273fa6804a 100644
--- a/arch/blackfin/mach-common/pm.c
+++ b/arch/blackfin/mach-common/pm.c
@@ -144,7 +144,7 @@ int bfin_pm_suspend_mem_enter(void)
 
 	unsigned char *memptr = kmalloc(L1_CODE_LENGTH + L1_DATA_A_LENGTH
 					 + L1_DATA_B_LENGTH + L1_SCRATCH_LENGTH,
-					  GFP_KERNEL);
+					  GFP_ATOMIC);
 
 	if (memptr == NULL) {
 		panic("bf53x_suspend_l1_mem malloc failed");
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] m32r: fix potential NULL-pointer dereference
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] pm: use GFP_ATOMIC when pm core call this function Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k: handle pgtable_page_ctor() fail Jiri Slaby
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable
  Cc: Kirill A. Shutemov, Hirokazu Takata, Andrew Morton,
	Linus Torvalds, Oliver Neukum, Jiri Slaby

From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit fecf3743b824ce4eb275ed4a1d6aee9494f6a966 upstream.

Add missing check for memory allocation fail.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/m32r/include/asm/pgalloc.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/m32r/include/asm/pgalloc.h b/arch/m32r/include/asm/pgalloc.h
index 0fc736198979..ac4208bcc5ad 100644
--- a/arch/m32r/include/asm/pgalloc.h
+++ b/arch/m32r/include/asm/pgalloc.h
@@ -43,6 +43,8 @@ static __inline__ pgtable_t pte_alloc_one(struct mm_struct *mm,
 {
 	struct page *pte = alloc_page(GFP_KERNEL|__GFP_ZERO);
 
+	if (!pte)
+		return NULL;
 	pgtable_page_ctor(pte);
 	return pte;
 }
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] m68k: handle pgtable_page_ctor() fail
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] pm: use GFP_ATOMIC when pm core call this function Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] m32r: fix potential NULL-pointer dereference Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mm: Check for mm != NULL in do_page_fault() debug code Jiri Slaby
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable
  Cc: Kirill A. Shutemov, Geert Uytterhoeven, Andrew Morton,
	Linus Torvalds, Oliver Neukum, Jiri Slaby

From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit f84c914b986ed2ec4ffaa5672b423b1f6b65519d upstream.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/m68k/include/asm/mcf_pgalloc.h      | 4 ++++
 arch/m68k/include/asm/motorola_pgalloc.h | 8 ++++++--
 arch/m68k/include/asm/sun3_pgalloc.h     | 5 ++++-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/arch/m68k/include/asm/mcf_pgalloc.h b/arch/m68k/include/asm/mcf_pgalloc.h
index 313f3dd23cdc..f9924fbcfe42 100644
--- a/arch/m68k/include/asm/mcf_pgalloc.h
+++ b/arch/m68k/include/asm/mcf_pgalloc.h
@@ -56,6 +56,10 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm,
 
 	if (!page)
 		return NULL;
+	if (!pgtable_page_ctor(page)) {
+		__free_page(page);
+		return NULL;
+	}
 
 	pte = kmap(page);
 	if (pte) {
diff --git a/arch/m68k/include/asm/motorola_pgalloc.h b/arch/m68k/include/asm/motorola_pgalloc.h
index 2f02f264e694..24bcba496c75 100644
--- a/arch/m68k/include/asm/motorola_pgalloc.h
+++ b/arch/m68k/include/asm/motorola_pgalloc.h
@@ -29,18 +29,22 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
 
 static inline pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
 {
-	struct page *page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
+	struct page *page;
 	pte_t *pte;
 
+	page = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
 	if(!page)
 		return NULL;
+	if (!pgtable_page_ctor(page)) {
+		__free_page(page);
+		return NULL;
+	}
 
 	pte = kmap(page);
 	__flush_page_to_ram(pte);
 	flush_tlb_kernel_page(pte);
 	nocache_page(pte);
 	kunmap(page);
-	pgtable_page_ctor(page);
 	return page;
 }
 
diff --git a/arch/m68k/include/asm/sun3_pgalloc.h b/arch/m68k/include/asm/sun3_pgalloc.h
index 48d80d5a666f..f868506e3350 100644
--- a/arch/m68k/include/asm/sun3_pgalloc.h
+++ b/arch/m68k/include/asm/sun3_pgalloc.h
@@ -59,7 +59,10 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm,
 		return NULL;
 
 	clear_highpage(page);
-	pgtable_page_ctor(page);
+	if (!pgtable_page_ctor(page)) {
+		__free_page(page);
+		return NULL;
+	}
 	return page;
 
 }
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] m68k/mm: Check for mm != NULL in do_page_fault() debug code
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (2 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k: handle pgtable_page_ctor() fail Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mac: Make SCC reset work more reliably Jiri Slaby
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Geert Uytterhoeven, Oliver Neukum, Jiri Slaby

From: Geert Uytterhoeven <geert@linux-m68k.org>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 4e25c0e92f8eaf69bc51d1d523bcb7268e7dd162 upstream.

When DEBUG is enabled, do_page_fault() may dereference a NULL pointer,
causing recursive bus errors.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/m68k/mm/fault.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c
index f0eef0491f77..97136b5e47e0 100644
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -77,8 +77,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
 
 #ifdef DEBUG
 	printk ("do page fault:\nregs->sr=%#x, regs->pc=%#lx, address=%#lx, %ld, %p\n",
-		regs->sr, regs->pc, address, error_code,
-		current->mm->pgd);
+		regs->sr, regs->pc, address, error_code, mm ? mm->pgd : NULL);
 #endif
 
 	/*
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] m68k/mac: Make SCC reset work more reliably
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (3 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mm: Check for mm != NULL in do_page_fault() debug code Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event Jiri Slaby
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Finn Thain, Geert Uytterhoeven, Oliver Neukum, Jiri Slaby

From: Finn Thain <fthain@telegraphics.com.au>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 56931d73697c99ecf7aba6ae86c94d3a2d15d596 upstream.

For SCC initialization we cannot assume that the control register is in
the correct state to accept a register pointer. So first read from the
control register in order to "sync" up.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/m68k/kernel/head.S | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S
index ac85f16534af..4180f8b20374 100644
--- a/arch/m68k/kernel/head.S
+++ b/arch/m68k/kernel/head.S
@@ -2909,7 +2909,9 @@ func_start	serial_init,%d0/%d1/%a0/%a1
 
 #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B)
 	movel	%pc@(L(mac_sccbase)),%a0
-	/* Reset SCC device */
+	/* Reset SCC register pointer */
+	moveb	%a0@(mac_scc_cha_a_ctrl_offset),%d0
+	/* Reset SCC device: write register pointer then register value */
 	moveb	#9,%a0@(mac_scc_cha_a_ctrl_offset)
 	moveb	#0xc0,%a0@(mac_scc_cha_a_ctrl_offset)
 	/* Wait for 5 PCLK cycles, which is about 68 CPU cycles */
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (4 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mac: Make SCC reset work more reliably Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] USB: quirks: Fix another ELAN touchscreen Jiri Slaby
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Karl Heiss, David S . Miller, Ben Hutchings, Jiri Slaby

From: Karl Heiss <kheiss@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 635682a14427d241bab7bbdeebb48a7d7b91638e upstream.

A case can occur when sctp_accept() is called by the user during
a heartbeat timeout event after the 4-way handshake.  Since
sctp_assoc_migrate() changes both assoc->base.sk and assoc->ep, the
bh_sock_lock in sctp_generate_heartbeat_event() will be taken with
the listening socket but released with the new association socket.
The result is a deadlock on any future attempts to take the listening
socket lock.

Note that this race can occur with other SCTP timeouts that take
the bh_lock_sock() in the event sctp_accept() is called.

 BUG: soft lockup - CPU#9 stuck for 67s! [swapper:0]
 ...
 RIP: 0010:[<ffffffff8152d48e>]  [<ffffffff8152d48e>] _spin_lock+0x1e/0x30
 RSP: 0018:ffff880028323b20  EFLAGS: 00000206
 RAX: 0000000000000002 RBX: ffff880028323b20 RCX: 0000000000000000
 RDX: 0000000000000000 RSI: ffff880028323be0 RDI: ffff8804632c4b48
 RBP: ffffffff8100bb93 R08: 0000000000000000 R09: 0000000000000000
 R10: ffff880610662280 R11: 0000000000000100 R12: ffff880028323aa0
 R13: ffff8804383c3880 R14: ffff880028323a90 R15: ffffffff81534225
 FS:  0000000000000000(0000) GS:ffff880028320000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
 CR2: 00000000006df528 CR3: 0000000001a85000 CR4: 00000000000006e0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
 Process swapper (pid: 0, threadinfo ffff880616b70000, task ffff880616b6cab0)
 Stack:
 ffff880028323c40 ffffffffa01c2582 ffff880614cfb020 0000000000000000
 <d> 0100000000000000 00000014383a6c44 ffff8804383c3880 ffff880614e93c00
 <d> ffff880614e93c00 0000000000000000 ffff8804632c4b00 ffff8804383c38b8
 Call Trace:
 <IRQ>
 [<ffffffffa01c2582>] ? sctp_rcv+0x492/0xa10 [sctp]
 [<ffffffff8148c559>] ? nf_iterate+0x69/0xb0
 [<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
 [<ffffffff8148c716>] ? nf_hook_slow+0x76/0x120
 [<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
 [<ffffffff8149757d>] ? ip_local_deliver_finish+0xdd/0x2d0
 [<ffffffff81497808>] ? ip_local_deliver+0x98/0xa0
 [<ffffffff81496ccd>] ? ip_rcv_finish+0x12d/0x440
 [<ffffffff81497255>] ? ip_rcv+0x275/0x350
 [<ffffffff8145cfeb>] ? __netif_receive_skb+0x4ab/0x750
 ...

With lockdep debugging:

 =====================================
 [ BUG: bad unlock balance detected! ]
 -------------------------------------
 CslRx/12087 is trying to release lock (slock-AF_INET) at:
 [<ffffffffa01bcae0>] sctp_generate_timeout_event+0x40/0xe0 [sctp]
 but there are no more locks to release!

 other info that might help us debug this:
 2 locks held by CslRx/12087:
 #0:  (&asoc->timers[i]){+.-...}, at: [<ffffffff8108ce1f>] run_timer_softirq+0x16f/0x3e0
 #1:  (slock-AF_INET){+.-...}, at: [<ffffffffa01bcac3>] sctp_generate_timeout_event+0x23/0xe0 [sctp]

Ensure the socket taken is also the same one that is released by
saving a copy of the socket before entering the timeout event
critical section.

Signed-off-by: Karl Heiss <kheiss@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 net/sctp/sm_sideeffect.c | 42 +++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 1a6eef39ab2f..ae66c9fe7c55 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -245,12 +245,13 @@ void sctp_generate_t3_rtx_event(unsigned long peer)
 	int error;
 	struct sctp_transport *transport = (struct sctp_transport *) peer;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 
 	/* Check whether a task is in the sock.  */
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		pr_debug("%s: sock is busy\n", __func__);
 
 		/* Try again later.  */
@@ -273,10 +274,10 @@ void sctp_generate_t3_rtx_event(unsigned long peer)
 			   transport, GFP_ATOMIC);
 
 	if (error)
-		asoc->base.sk->sk_err = -error;
+		sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_transport_put(transport);
 }
 
@@ -286,11 +287,12 @@ out_unlock:
 static void sctp_generate_timeout_event(struct sctp_association *asoc,
 					sctp_event_timeout_t timeout_type)
 {
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 	int error = 0;
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		pr_debug("%s: sock is busy: timer %d\n", __func__,
 			 timeout_type);
 
@@ -313,10 +315,10 @@ static void sctp_generate_timeout_event(struct sctp_association *asoc,
 			   (void *)timeout_type, GFP_ATOMIC);
 
 	if (error)
-		asoc->base.sk->sk_err = -error;
+		sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_association_put(asoc);
 }
 
@@ -366,10 +368,11 @@ void sctp_generate_heartbeat_event(unsigned long data)
 	int error = 0;
 	struct sctp_transport *transport = (struct sctp_transport *) data;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		pr_debug("%s: sock is busy\n", __func__);
 
 		/* Try again later.  */
@@ -390,10 +393,10 @@ void sctp_generate_heartbeat_event(unsigned long data)
 			   transport, GFP_ATOMIC);
 
 	 if (error)
-		 asoc->base.sk->sk_err = -error;
+		 sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_transport_put(transport);
 }
 
@@ -404,10 +407,11 @@ void sctp_generate_proto_unreach_event(unsigned long data)
 {
 	struct sctp_transport *transport = (struct sctp_transport *) data;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 	
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		pr_debug("%s: sock is busy\n", __func__);
 
 		/* Try again later.  */
@@ -428,7 +432,7 @@ void sctp_generate_proto_unreach_event(unsigned long data)
 		   asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC);
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_association_put(asoc);
 }
 
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] USB: quirks: Fix another ELAN touchscreen
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (5 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix race between read and revoke Jiri Slaby
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Adrien Vergé, Greg Kroah-Hartman, Oliver Neukum, Jiri Slaby

From: Adrien Vergé <adrienverge@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit df36c5bede207f734e4750beb2b14fb892050280 upstream.

Like other buggy models that had their fixes [1], the touchscreen with
id 04f3:21b8 from ELAN Microelectronics needs the device-qualifier
quirk. Otherwise, it fails to respond, blocks the boot for a random
amount of time and pollutes dmesg with:

[ 2887.373196] usb 1-5: new full-speed USB device number 41 using xhci_hcd
[ 2889.502000] usb 1-5: unable to read config index 0 descriptor/start: -71
[ 2889.502005] usb 1-5: can't read configurations, error -71
[ 2889.654571] usb 1-5: new full-speed USB device number 42 using xhci_hcd
[ 2891.783438] usb 1-5: unable to read config index 0 descriptor/start: -71
[ 2891.783443] usb 1-5: can't read configurations, error -71

[1]: See commits c68929f, 876af5d, d749947, a32c99e and dc703ec.

Tested-by: Adrien Vergé <adrienverge@gmail.com>
Signed-off-by: Adrien Vergé <adrienverge@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Oliver Neukum <ONeukum@suse.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/usb/core/quirks.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index a6956cd27334..9596d4f3e71a 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -125,6 +125,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x04f3, 0x016f), .driver_info =
 			USB_QUIRK_DEVICE_QUALIFIER },
 
+	{ USB_DEVICE(0x04f3, 0x21b8), .driver_info =
+			USB_QUIRK_DEVICE_QUALIFIER },
+
 	/* Roland SC-8820 */
 	{ USB_DEVICE(0x0582, 0x0007), .driver_info = USB_QUIRK_RESET_RESUME },
 
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] KEYS: Fix race between read and revoke
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (6 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] USB: quirks: Fix another ELAN touchscreen Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix keyring ref leak in join_session_keyring() Jiri Slaby
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: David Howells, James Morris, Jiri Slaby

From: David Howells <dhowells@redhat.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit b4a1b4f5047e4f54e194681125c74c0aa64d637d upstream.

This fixes CVE-2015-7550.

There's a race between keyctl_read() and keyctl_revoke().  If the revoke
happens between keyctl_read() checking the validity of a key and the key's
semaphore being taken, then the key type read method will see a revoked key.

This causes a problem for the user-defined key type because it assumes in
its read method that there will always be a payload in a non-revoked key
and doesn't check for a NULL pointer.

Fix this by making keyctl_read() check the validity of a key after taking
semaphore instead of before.

I think the bug was introduced with the original keyrings code.

This was discovered by a multithreaded test program generated by syzkaller
(http://github.com/google/syzkaller).  Here's a cleaned up version:

	#include <sys/types.h>
	#include <keyutils.h>
	#include <pthread.h>
	void *thr0(void *arg)
	{
		key_serial_t key = (unsigned long)arg;
		keyctl_revoke(key);
		return 0;
	}
	void *thr1(void *arg)
	{
		key_serial_t key = (unsigned long)arg;
		char buffer[16];
		keyctl_read(key, buffer, 16);
		return 0;
	}
	int main()
	{
		key_serial_t key = add_key("user", "%", "foo", 3, KEY_SPEC_USER_KEYRING);
		pthread_t th[5];
		pthread_create(&th[0], 0, thr0, (void *)(unsigned long)key);
		pthread_create(&th[1], 0, thr1, (void *)(unsigned long)key);
		pthread_create(&th[2], 0, thr0, (void *)(unsigned long)key);
		pthread_create(&th[3], 0, thr1, (void *)(unsigned long)key);
		pthread_join(th[0], 0);
		pthread_join(th[1], 0);
		pthread_join(th[2], 0);
		pthread_join(th[3], 0);
		return 0;
	}

Build as:

	cc -o keyctl-race keyctl-race.c -lkeyutils -lpthread

Run as:

	while keyctl-race; do :; done

as it may need several iterations to crash the kernel.  The crash can be
summarised as:

	BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
	IP: [<ffffffff81279b08>] user_read+0x56/0xa3
	...
	Call Trace:
	 [<ffffffff81276aa9>] keyctl_read_key+0xb6/0xd7
	 [<ffffffff81277815>] SyS_keyctl+0x83/0xe0
	 [<ffffffff815dbb97>] entry_SYSCALL_64_fastpath+0x12/0x6f

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 security/keys/keyctl.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
index 33cfd27b4de2..3242195bfa95 100644
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -744,16 +744,16 @@ long keyctl_read_key(key_serial_t keyid, char __user *buffer, size_t buflen)
 
 	/* the key is probably readable - now try to read it */
 can_read_key:
-	ret = key_validate(key);
-	if (ret == 0) {
-		ret = -EOPNOTSUPP;
-		if (key->type->read) {
-			/* read the data with the semaphore held (since we
-			 * might sleep) */
-			down_read(&key->sem);
+	ret = -EOPNOTSUPP;
+	if (key->type->read) {
+		/* Read the data with the semaphore held (since we might sleep)
+		 * to protect against the key being updated or revoked.
+		 */
+		down_read(&key->sem);
+		ret = key_validate(key);
+		if (ret == 0)
 			ret = key->type->read(key, buffer, buflen);
-			up_read(&key->sem);
-		}
+		up_read(&key->sem);
 	}
 
 error2:
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] KEYS: Fix keyring ref leak in join_session_keyring()
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (7 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix race between read and revoke Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] udp: properly support MSG_PEEK with truncated buffers Jiri Slaby
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Yevgeny Pats, David Howells, James Morris, Jiri Slaby

From: Yevgeny Pats <yevgeny@perception-point.io>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 23567fd052a9abb6d67fe8e7a9ccdd9800a540f2 upstream.

This fixes CVE-2016-0728.

If a thread is asked to join as a session keyring the keyring that's already
set as its session, we leak a keyring reference.

This can be tested with the following program:

	#include <stddef.h>
	#include <stdio.h>
	#include <sys/types.h>
	#include <keyutils.h>

	int main(int argc, const char *argv[])
	{
		int i = 0;
		key_serial_t serial;

		serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
				"leaked-keyring");
		if (serial < 0) {
			perror("keyctl");
			return -1;
		}

		if (keyctl(KEYCTL_SETPERM, serial,
			   KEY_POS_ALL | KEY_USR_ALL) < 0) {
			perror("keyctl");
			return -1;
		}

		for (i = 0; i < 100; i++) {
			serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
					"leaked-keyring");
			if (serial < 0) {
				perror("keyctl");
				return -1;
			}
		}

		return 0;
	}

If, after the program has run, there something like the following line in
/proc/keys:

3f3d898f I--Q---   100 perm 3f3f0000     0     0 keyring   leaked-keyring: empty

with a usage count of 100 * the number of times the program has been run,
then the kernel is malfunctioning.  If leaked-keyring has zero usages or
has been garbage collected, then the problem is fixed.

Reported-by: Yevgeny Pats <yevgeny@perception-point.io>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Don Zickus <dzickus@redhat.com>
Acked-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 security/keys/process_keys.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c
index 42defae1e161..cd871dc8b7c0 100644
--- a/security/keys/process_keys.c
+++ b/security/keys/process_keys.c
@@ -792,6 +792,7 @@ long join_session_keyring(const char *name)
 		ret = PTR_ERR(keyring);
 		goto error2;
 	} else if (keyring == new->session_keyring) {
+		key_put(keyring);
 		ret = 0;
 		goto error2;
 	}
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] udp: properly support MSG_PEEK with truncated buffers
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (8 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix keyring ref leak in join_session_keyring() Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/signal: Fix restart_syscall number for x32 tasks Jiri Slaby
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Eric Dumazet, David S . Miller, Jiri Slaby

From: Eric Dumazet <edumazet@google.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 197c949e7798fbf28cfadc69d9ca0c2abbf93191 upstream.

Backport of this upstream commit into stable kernels :
89c22d8c3b27 ("net: Fix skb csum races when peeking")
exposed a bug in udp stack vs MSG_PEEK support, when user provides
a buffer smaller than skb payload.

In this case,
skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr),
                                 msg->msg_iov);
returns -EFAULT.

This bug does not happen in upstream kernels since Al Viro did a great
job to replace this into :
skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg);
This variant is safe vs short buffers.

For the time being, instead reverting Herbert Xu patch and add back
skb->ip_summed invalid changes, simply store the result of
udp_lib_checksum_complete() so that we avoid computing the checksum a
second time, and avoid the problematic
skb_copy_and_csum_datagram_iovec() call.

This patch can be applied on recent kernels as it avoids a double
checksumming, then backported to stable kernels as a bug fix.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 net/ipv4/udp.c | 6 ++++--
 net/ipv6/udp.c | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 4908eaa1cdec..f8e304667108 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1210,6 +1210,7 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
 	int peeked, off = 0;
 	int err;
 	int is_udplite = IS_UDPLITE(sk);
+	bool checksum_valid = false;
 	bool slow;
 
 	if (flags & MSG_ERRQUEUE)
@@ -1235,11 +1236,12 @@ try_again:
 	 */
 
 	if (copied < ulen || UDP_SKB_CB(skb)->partial_cov) {
-		if (udp_lib_checksum_complete(skb))
+		checksum_valid = !udp_lib_checksum_complete(skb);
+		if (!checksum_valid)
 			goto csum_copy_err;
 	}
 
-	if (skb_csum_unnecessary(skb))
+	if (checksum_valid || skb_csum_unnecessary(skb))
 		err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
 					      msg->msg_iov, copied);
 	else {
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index a6c5ef5225ef..94ca4172b38e 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -371,6 +371,7 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
 	int peeked, off = 0;
 	int err;
 	int is_udplite = IS_UDPLITE(sk);
+	bool checksum_valid = false;
 	int is_udp4;
 	bool slow;
 
@@ -402,11 +403,12 @@ try_again:
 	 */
 
 	if (copied < ulen || UDP_SKB_CB(skb)->partial_cov) {
-		if (udp_lib_checksum_complete(skb))
+		checksum_valid = !udp_lib_checksum_complete(skb);
+		if (!checksum_valid)
 			goto csum_copy_err;
 	}
 
-	if (skb_csum_unnecessary(skb))
+	if (checksum_valid || skb_csum_unnecessary(skb))
 		err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr),
 					      msg->msg_iov, copied);
 	else {
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] x86/signal: Fix restart_syscall number for x32 tasks
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (9 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] udp: properly support MSG_PEEK with truncated buffers Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] xen/gntdev: Grant maps should not be subject to NUMA balancing Jiri Slaby
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Dmitry V. Levin, Elvira Khabirova, Thomas Gleixner, Jiri Slaby

From: "Dmitry V. Levin" <ldv@altlinux.org>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 22eab1108781eff09961ae7001704f7bd8fb1dce upstream.

When restarting a syscall with regs->ax == -ERESTART_RESTARTBLOCK,
regs->ax is assigned to a restart_syscall number.  For x32 tasks, this
syscall number must have __X32_SYSCALL_BIT set, otherwise it will be
an x86_64 syscall number instead of a valid x32 syscall number. This
issue has been there since the introduction of x32.

Reported-by: strace/tests/restart_syscall.test
Reported-and-tested-by: Elvira Khabirova <lineprinter0@gmail.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Cc: Elvira Khabirova <lineprinter0@gmail.com>
Link: http://lkml.kernel.org/r/20151130215436.GA25996@altlinux.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/x86/kernel/signal.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index b88fc86309bc..5d3e60156683 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -682,12 +682,15 @@ handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 	signal_setup_done(failed, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
-#ifdef CONFIG_X86_32
-#define NR_restart_syscall	__NR_restart_syscall
-#else /* !CONFIG_X86_32 */
-#define NR_restart_syscall	\
-	test_thread_flag(TIF_IA32) ? __NR_ia32_restart_syscall : __NR_restart_syscall
-#endif /* CONFIG_X86_32 */
+static inline unsigned long get_nr_restart_syscall(const struct pt_regs *regs)
+{
+#if defined(CONFIG_X86_32) || !defined(CONFIG_X86_64)
+	return __NR_restart_syscall;
+#else /* !CONFIG_X86_32 && CONFIG_X86_64 */
+	return test_thread_flag(TIF_IA32) ? __NR_ia32_restart_syscall :
+		__NR_restart_syscall | (regs->orig_ax & __X32_SYSCALL_BIT);
+#endif /* CONFIG_X86_32 || !CONFIG_X86_64 */
+}
 
 /*
  * Note that 'init' is a special process: it doesn't get signals it doesn't
@@ -716,7 +719,7 @@ static void do_signal(struct pt_regs *regs)
 			break;
 
 		case -ERESTART_RESTARTBLOCK:
-			regs->ax = NR_restart_syscall;
+			regs->ax = get_nr_restart_syscall(regs);
 			regs->ip -= 2;
 			break;
 		}
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] xen/gntdev: Grant maps should not be subject to NUMA balancing
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (10 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/signal: Fix restart_syscall number for x32 tasks Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/xen: don't reset vcpu_info on a cancelled suspend Jiri Slaby
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Boris Ostrovsky, David Vrabel, Jiri Slaby

From: Boris Ostrovsky <boris.ostrovsky@oracle.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 9c17d96500f78d7ecdb71ca6942830158bc75a2b upstream.

Doing so will cause the grant to be unmapped and then, during
fault handling, the fault to be mistakenly treated as NUMA hint
fault.

In addition, even if those maps could partcipate in NUMA
balancing, it wouldn't provide any benefit since we are unable
to determine physical page's node (even if/when VNUMA is
implemented).

Marking grant maps' VMAs as VM_IO will exclude them from being
part of NUMA balancing.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/xen/gntdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
index 0b5806995718..27accc4cc999 100644
--- a/drivers/xen/gntdev.c
+++ b/drivers/xen/gntdev.c
@@ -763,7 +763,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
 
 	vma->vm_ops = &gntdev_vmops;
 
-	vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
+	vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP | VM_IO;
 
 	if (use_ptemod)
 		vma->vm_flags |= VM_DONTCOPY;
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] x86/xen: don't reset vcpu_info on a cancelled suspend
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (11 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] xen/gntdev: Grant maps should not be subject to NUMA balancing Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] KVM: PPC: Book3S HV: Prohibit setting illegal transaction state in MSR Jiri Slaby
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Ouyang Zhaowei (Charles), David Vrabel, Jiri Slaby

From: "Ouyang Zhaowei (Charles)" <ouyangzhaowei@huawei.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 6a1f513776b78c994045287073e55bae44ed9f8c upstream.

On a cancelled suspend the vcpu_info location does not change (it's
still in the per-cpu area registered by xen_vcpu_setup()).  So do not
call xen_hvm_init_shared_info() which would make the kernel think its
back in the shared info.  With the wrong vcpu_info, events cannot be
received and the domain will hang after a cancelled suspend.

Signed-off-by: Charles Ouyang <ouyangzhaowei@huawei.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/x86/xen/suspend.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 45329c8c226e..39e12c10b931 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -30,7 +30,8 @@ void xen_arch_hvm_post_suspend(int suspend_cancelled)
 {
 #ifdef CONFIG_XEN_PVHVM
 	int cpu;
-	xen_hvm_init_shared_info();
+	if (!suspend_cancelled)
+	    xen_hvm_init_shared_info();
 	xen_callback_vector();
 	xen_unplug_emulated_devices();
 	if (xen_feature(XENFEAT_hvm_safe_pvclock)) {
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] KVM: PPC: Book3S HV: Prohibit setting illegal transaction state in MSR
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (12 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/xen: don't reset vcpu_info on a cancelled suspend Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] Jiri Slaby
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Paul Mackerras, Paul Mackerras, Jiri Slaby

From: Paul Mackerras <paulus@ozlabs.org>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit c20875a3e638e4a03e099b343ec798edd1af5cc6 upstream.

Currently it is possible for userspace (e.g. QEMU) to set a value
for the MSR for a guest VCPU which has both of the TS bits set,
which is an illegal combination.  The result of this is that when
we execute a hrfid (hypervisor return from interrupt doubleword)
instruction to enter the guest, the CPU will take a TM Bad Thing
type of program interrupt (vector 0x700).

Now, if PR KVM is configured in the kernel along with HV KVM, we
actually handle this without crashing the host or giving hypervisor
privilege to the guest; instead what happens is that we deliver a
program interrupt to the guest, with SRR0 reflecting the address
of the hrfid instruction and SRR1 containing the MSR value at that
point.  If PR KVM is not configured in the kernel, then we try to
run the host's program interrupt handler with the MMU set to the
guest context, which almost certainly causes a host crash.

This closes the hole by making kvmppc_set_msr_hv() check for the
illegal combination and force the TS field to a safe value (00,
meaning non-transactional).

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/powerpc/kvm/book3s_hv.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 211974a386d6..ed6e0be80b3b 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -160,6 +160,12 @@ void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu)
 
 void kvmppc_set_msr(struct kvm_vcpu *vcpu, u64 msr)
 {
+	/*
+	 * Check for illegal transactional state bit combination
+	 * and if we find it, force the TS field to a safe state.
+	 */
+	if ((msr & MSR_TS_MASK) == MSR_TS_MASK)
+		msr &= ~MSR_TS_MASK;
 	vcpu->arch.shregs.msr = msr;
 	kvmppc_end_cede(vcpu);
 }
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[]
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (13 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] KVM: PPC: Book3S HV: Prohibit setting illegal transaction state in MSR Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/boot: Double BOOT_HEAP_SIZE to 64KB Jiri Slaby
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable
  Cc: Mario Kleiner, Andy Lutomirski, Borislav Petkov, Brian Gerst,
	Dave Jones, Denys Vlasenko, H . Peter Anvin, Linus Torvalds,
	Peter Zijlstra, Thomas Gleixner, Ingo Molnar, Jiri Slaby

From: Mario Kleiner <mario.kleiner.de@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 2f0c0b2d96b1205efb14347009748d786c2d9ba5 upstream.

Without the reboot=pci method, the iMac 10,1 simply
hangs after printing "Restarting system" at the point
when it should reboot. This fixes it.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1450466646-26663-1-git-send-email-mario.kleiner.de@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/x86/kernel/reboot.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index cb74a04c56c8..8134735f98e4 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -180,6 +180,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"),
 		},
 	},
+	{	/* Handle problems with rebooting on the iMac10,1. */
+		.callback = set_pci_reboot,
+		.ident = "Apple iMac10,1",
+		.matches = {
+		    DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+		    DMI_MATCH(DMI_PRODUCT_NAME, "iMac10,1"),
+		},
+	},
 
 	/* ASRock */
 	{	/* Handle problems with rebooting on ASRock Q1900DC-ITX */
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] x86/boot: Double BOOT_HEAP_SIZE to 64KB
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (14 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] ipmi: move timer init to before irq is setup Jiri Slaby
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable
  Cc: H.J. Lu, Andy Lutomirski, Borislav Petkov, Brian Gerst,
	Denys Vlasenko, Linus Torvalds, Peter Zijlstra, Thomas Gleixner,
	linux-kernel, Ingo Molnar, Jiri Slaby

From: "H.J. Lu" <hjl.tools@gmail.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 8c31902cffc4d716450be549c66a67a8a3dd479c upstream.

When decompressing kernel image during x86 bootup, malloc memory
for ELF program headers may run out of heap space, which leads
to system halt.  This patch doubles BOOT_HEAP_SIZE to 64KB.

Tested with 32-bit kernel which failed to boot without this patch.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/x86/include/asm/boot.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
index 4fa687a47a62..6b8d6e8cd449 100644
--- a/arch/x86/include/asm/boot.h
+++ b/arch/x86/include/asm/boot.h
@@ -27,7 +27,7 @@
 #define BOOT_HEAP_SIZE             0x400000
 #else /* !CONFIG_KERNEL_BZIP2 */
 
-#define BOOT_HEAP_SIZE	0x8000
+#define BOOT_HEAP_SIZE	0x10000
 
 #endif /* !CONFIG_KERNEL_BZIP2 */
 
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] ipmi: move timer init to before irq is setup
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (15 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] x86/boot: Double BOOT_HEAP_SIZE to 64KB Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Add Intel Lewisburg device IDs Audio Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Apply pin fixup for HP ProBook 6550b Jiri Slaby
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Jan Stancek, linux-kernel, Tony Camuso, Corey Minyard, Jiri Slaby

From: Jan Stancek <jstancek@redhat.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 27f972d3e00b50639deb4cc1392afaeb08d3cecc upstream.

We encountered a panic on boot in ipmi_si on a dell per320 due to an
uninitialized timer as follows.

static int smi_start_processing(void       *send_info,
                                ipmi_smi_t intf)
{
        /* Try to claim any interrupts. */
        if (new_smi->irq_setup)
                new_smi->irq_setup(new_smi);

 --> IRQ arrives here and irq handler tries to modify uninitialized timer

    which triggers BUG_ON(!timer->function) in __mod_timer().

 Call Trace:
   <IRQ>
   [<ffffffffa0532617>] start_new_msg+0x47/0x80 [ipmi_si]
   [<ffffffffa053269e>] start_check_enables+0x4e/0x60 [ipmi_si]
   [<ffffffffa0532bd8>] smi_event_handler+0x1e8/0x640 [ipmi_si]
   [<ffffffff810f5584>] ? __rcu_process_callbacks+0x54/0x350
   [<ffffffffa053327c>] si_irq_handler+0x3c/0x60 [ipmi_si]
   [<ffffffff810efaf0>] handle_IRQ_event+0x60/0x170
   [<ffffffff810f245e>] handle_edge_irq+0xde/0x180
   [<ffffffff8100fc59>] handle_irq+0x49/0xa0
   [<ffffffff8154643c>] do_IRQ+0x6c/0xf0
   [<ffffffff8100ba53>] ret_from_intr+0x0/0x11

        /* Set up the timer that drives the interface. */
        setup_timer(&new_smi->si_timer, smi_timeout, (long)new_smi);

The following patch fixes the problem.

To: Openipmi-developer@lists.sourceforge.net
To: Corey Minyard <minyard@acm.org>
CC: linux-kernel@vger.kernel.org

Signed-off-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Tony Camuso <tcamuso@redhat.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 drivers/char/ipmi/ipmi_si_intf.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 25ed69ffd8dd..c16fd35bd640 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -1152,14 +1152,14 @@ static int smi_start_processing(void       *send_info,
 
 	new_smi->intf = intf;
 
-	/* Try to claim any interrupts. */
-	if (new_smi->irq_setup)
-		new_smi->irq_setup(new_smi);
-
 	/* Set up the timer that drives the interface. */
 	setup_timer(&new_smi->si_timer, smi_timeout, (long)new_smi);
 	smi_mod_timer(new_smi, jiffies + SI_TIMEOUT_JIFFIES);
 
+	/* Try to claim any interrupts. */
+	if (new_smi->irq_setup)
+		new_smi->irq_setup(new_smi);
+
 	/*
 	 * Check if the user forcefully enabled the daemon.
 	 */
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] ALSA: hda - Add Intel Lewisburg device IDs Audio
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (16 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] ipmi: move timer init to before irq is setup Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Apply pin fixup for HP ProBook 6550b Jiri Slaby
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Alexandra Yates, Takashi Iwai, Jiri Slaby

From: Alexandra Yates <alexandra.yates@linux.intel.com>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit 5cf92c8b3dc5da59e05dc81bdc069cedf6f38313 upstream.

Adding Intel codename Lewisburg platform device IDs for audio.

[rearranged the position by tiwai]

Signed-off-by: Alexandra Yates <alexandra.yates@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 sound/pci/hda/hda_intel.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index a7315298ee10..baf12f1a2820 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -4082,6 +4082,11 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
 	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
 	{ PCI_DEVICE(0x8086, 0x8d21),
 	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
+	/* Lewisburg */
+	{ PCI_DEVICE(0x8086, 0xa1f0),
+	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
+	{ PCI_DEVICE(0x8086, 0xa270),
+	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
 	/* Lynx Point-LP */
 	{ PCI_DEVICE(0x8086, 0x9c20),
 	  .driver_data = AZX_DRIVER_PCH | AZX_DCAPS_INTEL_PCH },
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [patch added to 3.12-stable] ALSA: hda - Apply pin fixup for HP ProBook 6550b
  2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
                   ` (17 preceding siblings ...)
  2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Add Intel Lewisburg device IDs Audio Jiri Slaby
@ 2016-01-25  9:33 ` Jiri Slaby
  18 siblings, 0 replies; 20+ messages in thread
From: Jiri Slaby @ 2016-01-25  9:33 UTC (permalink / raw)
  To: stable; +Cc: Takashi Iwai, Jiri Slaby

From: Takashi Iwai <tiwai@suse.de>

This patch has been added to the 3.12 stable tree. If you have any
objections, please let us know.

===============

commit c932b98c1e47312822d911c1bb76e81ef50e389c upstream.

HP ProBook 6550b needs the same pin fixup applied to other HP B-series
laptops with docks for making its headphone and dock headphone jacks
working properly.  We just need to add the codec SSID to the list.

Bugzilla: https://bugzilla.kernel.org/attachment.cgi?id=191971
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 sound/pci/hda/patch_sigmatel.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 984b75ef1190..d68f6af1da2b 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -712,6 +712,7 @@ static bool hp_bnb2011_with_dock(struct hda_codec *codec)
 static bool hp_blike_system(u32 subsystem_id)
 {
 	switch (subsystem_id) {
+	case 0x103c1473: /* HP ProBook 6550b */
 	case 0x103c1520:
 	case 0x103c1521:
 	case 0x103c1523:
-- 
2.7.0


^ permalink raw reply related	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-01-25  9:33 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-25  9:33 [patch added to 3.12-stable] staging/dgnc: fix info leak in ioctl Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] pm: use GFP_ATOMIC when pm core call this function Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] m32r: fix potential NULL-pointer dereference Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] m68k: handle pgtable_page_ctor() fail Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mm: Check for mm != NULL in do_page_fault() debug code Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] m68k/mac: Make SCC reset work more reliably Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] USB: quirks: Fix another ELAN touchscreen Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix race between read and revoke Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] KEYS: Fix keyring ref leak in join_session_keyring() Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] udp: properly support MSG_PEEK with truncated buffers Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] x86/signal: Fix restart_syscall number for x32 tasks Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] xen/gntdev: Grant maps should not be subject to NUMA balancing Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] x86/xen: don't reset vcpu_info on a cancelled suspend Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] KVM: PPC: Book3S HV: Prohibit setting illegal transaction state in MSR Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] x86/reboot/quirks: Add iMac10,1 to pci_reboot_dmi_table[] Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] x86/boot: Double BOOT_HEAP_SIZE to 64KB Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] ipmi: move timer init to before irq is setup Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Add Intel Lewisburg device IDs Audio Jiri Slaby
2016-01-25  9:33 ` [patch added to 3.12-stable] ALSA: hda - Apply pin fixup for HP ProBook 6550b Jiri Slaby

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.