* [PATCH] Critical ARC Fix for 3.12
@ 2013-11-02 12:17 Vineet Gupta
2013-11-02 12:17 ` [PATCH] ARC: Incorrect mm reference used in vmalloc fault handler Vineet Gupta
2013-11-03 10:29 ` [PATCH] Critical ARC Fix for 3.12 Geert Uytterhoeven
0 siblings, 2 replies; 5+ messages in thread
From: Vineet Gupta @ 2013-11-02 12:17 UTC (permalink / raw)
To: Linus Torvalds
Cc: lkml, Gilad Ben-Yossef, Noam Camus, Peter Hurley, Vineet Gupta
Hi Linus,
Sorry for this extemely late patch for 3.12 but it causes a SMP build of ARC
to panic in boot.
Greg, the patch as it is doesn't apply to 3.10 (but does to 3.11). So can you
please queue it up for 3.11 and I'll send a fixup for 3.10.
Thx,
-Vineet
Vineet Gupta (1):
ARC: Incorrect mm reference used in vmalloc fault handler
arch/arc/mm/fault.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--
1.8.1.2
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] ARC: Incorrect mm reference used in vmalloc fault handler
2013-11-02 12:17 [PATCH] Critical ARC Fix for 3.12 Vineet Gupta
@ 2013-11-02 12:17 ` Vineet Gupta
2013-11-03 10:29 ` [PATCH] Critical ARC Fix for 3.12 Geert Uytterhoeven
1 sibling, 0 replies; 5+ messages in thread
From: Vineet Gupta @ 2013-11-02 12:17 UTC (permalink / raw)
To: Linus Torvalds
Cc: lkml, Gilad Ben-Yossef, Noam Camus, Peter Hurley, Vineet Gupta,
stable
A vmalloc fault needs to sync up PGD/PTE entry from init_mm to current task's
"active_mm". ARC vmalloc fault handler however was using mm.
A vmalloc fault for non user task context (actually pre-userland, from
init thread's open for /dev/console) caused the handler to deref NULL mm
(for mm->pgd)
The reasons it worked so far is amazing:
1. By default (!SMP), vmalloc fault handler uses a cached value of PGD.
In SMP that MMU register is repurposed hence need for mm pointer deref.
2. In pre-3.12 SMP kernel, the problem triggering vmalloc didn't exist in
pre-userland code path - it was introduced with commit 20bafb3d23d108bc
"n_tty: Move buffers into n_tty_data"
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Gilad Ben-Yossef <gilad@benyossef.com>
Cc: Noam Camus <noamc@ezchip.com>
Cc: stable@vger.kernel.org #3.10 and 3.11
Cc: Peter Hurley <peter@hurleysoftware.com>
Cc: linux-kernel@vger.kernel.org
---
arch/arc/mm/fault.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c
index 81554ded1260..9c69552350c4 100644
--- a/arch/arc/mm/fault.c
+++ b/arch/arc/mm/fault.c
@@ -17,7 +17,7 @@
#include <asm/pgalloc.h>
#include <asm/mmu.h>
-static int handle_vmalloc_fault(struct mm_struct *mm, unsigned long address)
+static int handle_vmalloc_fault(unsigned long address)
{
/*
* Synchronize this task's top level page-table
@@ -27,7 +27,7 @@ static int handle_vmalloc_fault(struct mm_struct *mm, unsigned long address)
pud_t *pud, *pud_k;
pmd_t *pmd, *pmd_k;
- pgd = pgd_offset_fast(mm, address);
+ pgd = pgd_offset_fast(current->active_mm, address);
pgd_k = pgd_offset_k(address);
if (!pgd_present(*pgd_k))
@@ -72,7 +72,7 @@ void do_page_fault(unsigned long address, struct pt_regs *regs)
* nothing more.
*/
if (address >= VMALLOC_START && address <= VMALLOC_END) {
- ret = handle_vmalloc_fault(mm, address);
+ ret = handle_vmalloc_fault(address);
if (unlikely(ret))
goto bad_area_nosemaphore;
else
--
1.8.1.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] Critical ARC Fix for 3.12
2013-11-02 12:17 [PATCH] Critical ARC Fix for 3.12 Vineet Gupta
2013-11-02 12:17 ` [PATCH] ARC: Incorrect mm reference used in vmalloc fault handler Vineet Gupta
@ 2013-11-03 10:29 ` Geert Uytterhoeven
2013-11-05 7:03 ` Vineet Gupta
2013-11-09 5:29 ` Greg KH
1 sibling, 2 replies; 5+ messages in thread
From: Geert Uytterhoeven @ 2013-11-03 10:29 UTC (permalink / raw)
To: Vineet Gupta
Cc: Linus Torvalds, lkml, Gilad Ben-Yossef, Noam Camus, Peter Hurley,
stable
Added CC stable, so Greg will see it.
Added commit 9c41f4eeb9d51f3ece20428d35a3ea32cf3b5622, so Greg knows
what to cherry-pick.
On Sat, Nov 2, 2013 at 1:17 PM, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> Hi Linus,
>
> Sorry for this extemely late patch for 3.12 but it causes a SMP build of ARC
> to panic in boot.
>
> Greg, the patch as it is doesn't apply to 3.10 (but does to 3.11). So can you
> please queue it up for 3.11 and I'll send a fixup for 3.10.
>
> Thx,
> -Vineet
>
>
> Vineet Gupta (1):
> ARC: Incorrect mm reference used in vmalloc fault handler
>
> arch/arc/mm/fault.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Critical ARC Fix for 3.12
2013-11-03 10:29 ` [PATCH] Critical ARC Fix for 3.12 Geert Uytterhoeven
@ 2013-11-05 7:03 ` Vineet Gupta
2013-11-09 5:29 ` Greg KH
1 sibling, 0 replies; 5+ messages in thread
From: Vineet Gupta @ 2013-11-05 7:03 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: lkml, Gilad Ben-Yossef, Noam Camus, greg Kroah-Hartman, stable
On 11/03/2013 03:59 PM, Geert Uytterhoeven wrote:
> Added CC stable, so Greg will see it.
> Added commit 9c41f4eeb9d51f3ece20428d35a3ea32cf3b5622, so Greg knows
> what to cherry-pick.
Thanks Geert. While cover-letter was not, the patch itself was CC'ed to stable -
this cover letter, with PATCH prefix has caused enough confusion already :-(
Greg, I have verified that patch builds fine with 3.10 and 3.11. Please take it.
-Vineet
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Critical ARC Fix for 3.12
2013-11-03 10:29 ` [PATCH] Critical ARC Fix for 3.12 Geert Uytterhoeven
2013-11-05 7:03 ` Vineet Gupta
@ 2013-11-09 5:29 ` Greg KH
1 sibling, 0 replies; 5+ messages in thread
From: Greg KH @ 2013-11-09 5:29 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Vineet Gupta, Linus Torvalds, lkml, Gilad Ben-Yossef, Noam Camus,
Peter Hurley, stable
On Sun, Nov 03, 2013 at 11:29:54AM +0100, Geert Uytterhoeven wrote:
> Added CC stable, so Greg will see it.
> Added commit 9c41f4eeb9d51f3ece20428d35a3ea32cf3b5622, so Greg knows
> what to cherry-pick.
It was already tagged with a cc: stable marking, so all is good.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-11-09 5:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-02 12:17 [PATCH] Critical ARC Fix for 3.12 Vineet Gupta
2013-11-02 12:17 ` [PATCH] ARC: Incorrect mm reference used in vmalloc fault handler Vineet Gupta
2013-11-03 10:29 ` [PATCH] Critical ARC Fix for 3.12 Geert Uytterhoeven
2013-11-05 7:03 ` Vineet Gupta
2013-11-09 5:29 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox