<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git, branch v3.16.54</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.16.54</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.16.54'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2018-02-13T18:42:38+00:00</updated>
<entry>
<title>Linux 3.16.54</title>
<updated>2018-02-13T18:42:38+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2018-02-13T18:42:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0b9f4cdd4d75131d8886b919bbf6e0c98906d36e'/>
<id>urn:sha1:0b9f4cdd4d75131d8886b919bbf6e0c98906d36e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kaiser: Set _PAGE_NX only if supported</title>
<updated>2018-02-13T18:42:35+00:00</updated>
<author>
<name>Lepton Wu</name>
<email>ytht.net@gmail.com</email>
</author>
<published>2018-01-16T14:19:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=748165213beda6f96381357327ad461f70c7b881'/>
<id>urn:sha1:748165213beda6f96381357327ad461f70c7b881</id>
<content type='text'>
This finally resolve crash if loaded under qemu + haxm. Haitao Shan pointed
out that the reason of that crash is that NX bit get set for page tables.
It seems we missed checking if _PAGE_NX is supported in kaiser_add_user_map

Link: https://www.spinics.net/lists/kernel/msg2689835.html

Reviewed-by: Guenter Roeck &lt;groeck@chromium.org&gt;
Signed-off-by: Lepton Wu &lt;ytht.net@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
(backported from Greg K-H's 4.4 stable-queue)
Signed-off-by: Juerg Haefliger &lt;juerg.haefliger@canonical.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>kaiser: Set _PAGE_NX only if supported</title>
<updated>2018-02-13T18:42:35+00:00</updated>
<author>
<name>Guenter Roeck</name>
<email>groeck@chromium.org</email>
</author>
<published>2018-01-16T14:19:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8c88582f4d3c3052f03e394c3d1b4af6744ed8d8'/>
<id>urn:sha1:8c88582f4d3c3052f03e394c3d1b4af6744ed8d8</id>
<content type='text'>
This resolves a crash if loaded under qemu + haxm under windows.
See https://www.spinics.net/lists/kernel/msg2689835.html for details.
Here is a boot log (the log is from chromeos-4.4, but Tao Wu says that
the same log is also seen with vanilla v4.4.110-rc1).

[    0.712750] Freeing unused kernel memory: 552K
[    0.721821] init: Corrupted page table at address 57b029b332e0
[    0.722761] PGD 80000000bb238067 PUD bc36a067 PMD bc369067 PTE 45d2067
[    0.722761] Bad pagetable: 000b [#1] PREEMPT SMP
[    0.722761] Modules linked in:
[    0.722761] CPU: 1 PID: 1 Comm: init Not tainted 4.4.96 #31
[    0.722761] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
[    0.722761] task: ffff8800bc290000 ti: ffff8800bc28c000 task.ti: ffff8800bc28c000
[    0.722761] RIP: 0010:[&lt;ffffffff83f4129e&gt;]  [&lt;ffffffff83f4129e&gt;] __clear_user+0x42/0x67
[    0.722761] RSP: 0000:ffff8800bc28fcf8  EFLAGS: 00010202
[    0.722761] RAX: 0000000000000000 RBX: 00000000000001a4 RCX: 00000000000001a4
[    0.722761] RDX: 0000000000000000 RSI: 0000000000000008 RDI: 000057b029b332e0
[    0.722761] RBP: ffff8800bc28fd08 R08: ffff8800bc290000 R09: ffff8800bb2f4000
[    0.722761] R10: ffff8800bc290000 R11: ffff8800bb2f4000 R12: 000057b029b332e0
[    0.722761] R13: 0000000000000000 R14: 000057b029b33340 R15: ffff8800bb1e2a00
[    0.722761] FS:  0000000000000000(0000) GS:ffff8800bfb00000(0000) knlGS:0000000000000000
[    0.722761] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[    0.722761] CR2: 000057b029b332e0 CR3: 00000000bb2f8000 CR4: 00000000000006e0
[    0.722761] Stack:
[    0.722761]  000057b029b332e0 ffff8800bb95fa80 ffff8800bc28fd18 ffffffff83f4120c
[    0.722761]  ffff8800bc28fe18 ffffffff83e9e7a1 ffff8800bc28fd68 0000000000000000
[    0.722761]  ffff8800bc290000 ffff8800bc290000 ffff8800bc290000 ffff8800bc290000
[    0.722761] Call Trace:
[    0.722761]  [&lt;ffffffff83f4120c&gt;] clear_user+0x2e/0x30
[    0.722761]  [&lt;ffffffff83e9e7a1&gt;] load_elf_binary+0xa7f/0x18f7
[    0.722761]  [&lt;ffffffff83de2088&gt;] search_binary_handler+0x86/0x19c
[    0.722761]  [&lt;ffffffff83de389e&gt;] do_execveat_common.isra.26+0x909/0xf98
[    0.722761]  [&lt;ffffffff844febe0&gt;] ? rest_init+0x87/0x87
[    0.722761]  [&lt;ffffffff83de40be&gt;] do_execve+0x23/0x25
[    0.722761]  [&lt;ffffffff83c002e3&gt;] run_init_process+0x2b/0x2d
[    0.722761]  [&lt;ffffffff844fec4d&gt;] kernel_init+0x6d/0xda
[    0.722761]  [&lt;ffffffff84505b2f&gt;] ret_from_fork+0x3f/0x70
[    0.722761]  [&lt;ffffffff844febe0&gt;] ? rest_init+0x87/0x87
[    0.722761] Code: 86 84 be 12 00 00 00 e8 87 0d e8 ff 66 66 90 48 89 d8 48 c1
eb 03 4c 89 e7 83 e0 07 48 89 d9 be 08 00 00 00 31 d2 48 85 c9 74 0a &lt;48&gt; 89 17
48 01 f7 ff c9 75 f6 48 89 c1 85 c9 74 09 88 17 48 ff
[    0.722761] RIP  [&lt;ffffffff83f4129e&gt;] __clear_user+0x42/0x67
[    0.722761]  RSP &lt;ffff8800bc28fcf8&gt;
[    0.722761] ---[ end trace def703879b4ff090 ]---
[    0.722761] BUG: sleeping function called from invalid context at /mnt/host/source/src/third_party/kernel/v4.4/kernel/locking/rwsem.c:21
[    0.722761] in_atomic(): 0, irqs_disabled(): 1, pid: 1, name: init
[    0.722761] CPU: 1 PID: 1 Comm: init Tainted: G      D         4.4.96 #31
[    0.722761] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
[    0.722761]  0000000000000086 dcb5d76098c89836 ffff8800bc28fa30 ffffffff83f34004
[    0.722761]  ffffffff84839dc2 0000000000000015 ffff8800bc28fa40 ffffffff83d57dc9
[    0.722761]  ffff8800bc28fa68 ffffffff83d57e6a ffffffff84a53640 0000000000000000
[    0.722761] Call Trace:
[    0.722761]  [&lt;ffffffff83f34004&gt;] dump_stack+0x4d/0x63
[    0.722761]  [&lt;ffffffff83d57dc9&gt;] ___might_sleep+0x13a/0x13c
[    0.722761]  [&lt;ffffffff83d57e6a&gt;] __might_sleep+0x9f/0xa6
[    0.722761]  [&lt;ffffffff84502788&gt;] down_read+0x20/0x31
[    0.722761]  [&lt;ffffffff83cc5d9b&gt;] __blocking_notifier_call_chain+0x35/0x63
[    0.722761]  [&lt;ffffffff83cc5ddd&gt;] blocking_notifier_call_chain+0x14/0x16
[    0.800374] usb 1-1: new full-speed USB device number 2 using uhci_hcd
[    0.722761]  [&lt;ffffffff83cefe97&gt;] profile_task_exit+0x1a/0x1c
[    0.802309]  [&lt;ffffffff83cac84e&gt;] do_exit+0x39/0xe7f
[    0.802309]  [&lt;ffffffff83ce5938&gt;] ? vprintk_default+0x1d/0x1f
[    0.802309]  [&lt;ffffffff83d7bb95&gt;] ? printk+0x57/0x73
[    0.802309]  [&lt;ffffffff83c46e25&gt;] oops_end+0x80/0x85
[    0.802309]  [&lt;ffffffff83c7b747&gt;] pgtable_bad+0x8a/0x95
[    0.802309]  [&lt;ffffffff83ca7f4a&gt;] __do_page_fault+0x8c/0x352
[    0.802309]  [&lt;ffffffff83eefba5&gt;] ? file_has_perm+0xc4/0xe5
[    0.802309]  [&lt;ffffffff83ca821c&gt;] do_page_fault+0xc/0xe
[    0.802309]  [&lt;ffffffff84507682&gt;] page_fault+0x22/0x30
[    0.802309]  [&lt;ffffffff83f4129e&gt;] ? __clear_user+0x42/0x67
[    0.802309]  [&lt;ffffffff83f4127f&gt;] ? __clear_user+0x23/0x67
[    0.802309]  [&lt;ffffffff83f4120c&gt;] clear_user+0x2e/0x30
[    0.802309]  [&lt;ffffffff83e9e7a1&gt;] load_elf_binary+0xa7f/0x18f7
[    0.802309]  [&lt;ffffffff83de2088&gt;] search_binary_handler+0x86/0x19c
[    0.802309]  [&lt;ffffffff83de389e&gt;] do_execveat_common.isra.26+0x909/0xf98
[    0.802309]  [&lt;ffffffff844febe0&gt;] ? rest_init+0x87/0x87
[    0.802309]  [&lt;ffffffff83de40be&gt;] do_execve+0x23/0x25
[    0.802309]  [&lt;ffffffff83c002e3&gt;] run_init_process+0x2b/0x2d
[    0.802309]  [&lt;ffffffff844fec4d&gt;] kernel_init+0x6d/0xda
[    0.802309]  [&lt;ffffffff84505b2f&gt;] ret_from_fork+0x3f/0x70
[    0.802309]  [&lt;ffffffff844febe0&gt;] ? rest_init+0x87/0x87
[    0.830559] Kernel panic - not syncing: Attempted to kill init!  exitcode=0x00000009
[    0.830559]
[    0.831305] Kernel Offset: 0x2c00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[    0.831305] ---[ end Kernel panic - not syncing: Attempted to kill init!  exitcode=0x00000009

The crash part of this problem may be solved with the following patch
(thanks to Hugh for the hint). There is still another problem, though -
with this patch applied, the qemu session aborts with "VCPU Shutdown
request", whatever that means.

Cc: lepton &lt;ytht.net@gmail.com&gt;
Signed-off-by: Guenter Roeck &lt;groeck@chromium.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
(cherry picked from commit b33c3c64c4786cd724ccde6fa97c87ada49f6a73 linux-4.4.y)
Signed-off-by: Juerg Haefliger &lt;juerg.haefliger@canonical.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86/vdso: Remove pvclock fixmap machinery</title>
<updated>2018-02-13T18:42:35+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@kernel.org</email>
</author>
<published>2015-12-11T03:20:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e1c86644e072231e67109185a7134bc5b4eb4c99'/>
<id>urn:sha1:e1c86644e072231e67109185a7134bc5b4eb4c99</id>
<content type='text'>
commit cc1e24fdb064d3126a494716f22ad4fc39306742 upstream.

Signed-off-by: Andy Lutomirski &lt;luto@kernel.org&gt;
Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/4933029991103ae44672c82b97a20035f5c1fe4f.1449702533.git.luto@kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
[bwh: Backported to 3.16: adjust filenames, context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86/platform/uv: Include clocksource.h for clocksource_touch_watchdog()</title>
<updated>2018-02-13T18:42:35+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@kernel.org</email>
</author>
<published>2015-12-11T08:01:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f74b0dbbfcf37abf719d2695308abf4946c5dc07'/>
<id>urn:sha1:f74b0dbbfcf37abf719d2695308abf4946c5dc07</id>
<content type='text'>
commit d51953b0873358d13b189996e6976dfa12a9b59d upstream.

This build failure triggers on 64-bit allmodconfig:

  arch/x86/platform/uv/uv_nmi.c:493:2: error: implicit declaration of function ‘clocksource_touch_watchdog’ [-Werror=implicit-function-declaration]

which is caused by recent changes exposing a missing clocksource.h include
in uv_nmi.c:

  cc1e24fdb064 x86/vdso: Remove pvclock fixmap machinery

this file got clocksource.h indirectly via fixmap.h - that stealth route
of header inclusion is now gone.

Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>Revert "x86: kvmclock: Disable use from vDSO if KPTI is enabled"</title>
<updated>2018-02-13T18:42:34+00:00</updated>
<author>
<name>Juerg Haefliger</name>
<email>juerg.haefliger@canonical.com</email>
</author>
<published>2018-01-17T16:22:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=957a3d249cb16292a199f73b7138d23ee44ca433'/>
<id>urn:sha1:957a3d249cb16292a199f73b7138d23ee44ca433</id>
<content type='text'>
This reverts commit abe3029e4febfa18e4a9562a792465182b3992a0.

Signed-off-by: Juerg Haefliger &lt;juerg.haefliger@canonical.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86/vdso: Get pvclock data from the vvar VMA instead of the fixmap</title>
<updated>2018-02-13T18:42:34+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@kernel.org</email>
</author>
<published>2015-12-11T03:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9f1cf17b701702325fbdd505325562cb79e6d429'/>
<id>urn:sha1:9f1cf17b701702325fbdd505325562cb79e6d429</id>
<content type='text'>
commit dac16fba6fc590fa7239676b35ed75dae4c4cd2b upstream.

Signed-off-by: Andy Lutomirski &lt;luto@kernel.org&gt;
Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/9d37826fdc7e2d2809efe31d5345f97186859284.1449702533.git.luto@kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
[bwh: Backported to 3.16: adjust filenames]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86, vdso, pvclock: Simplify and speed up the vdso pvclock reader</title>
<updated>2018-02-13T18:42:34+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@amacapital.net</email>
</author>
<published>2015-12-11T03:20:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=99478423f5dc9ac3eb8525255ca2dfd74af329ef'/>
<id>urn:sha1:99478423f5dc9ac3eb8525255ca2dfd74af329ef</id>
<content type='text'>
commit 6b078f5de7fc0851af4102493c7b5bb07e49c4cb upstream.

The pvclock vdso code was too abstracted to understand easily
and excessively paranoid.  Simplify it for a huge speedup.

This opens the door for additional simplifications, as the vdso
no longer accesses the pvti for any vcpu other than vcpu 0.

Before, vclock_gettime using kvm-clock took about 45ns on my
machine. With this change, it takes 29ns, which is almost as
fast as the pure TSC implementation.

Signed-off-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Reviewed-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/6b51dcc41f1b101f963945c5ec7093d72bdac429.1449702533.git.luto@kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
[bwh: Backported to 3.16:
 - Open-code rdtsc_ordered()
 - Adjust filename]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86: pvclock: Really remove the sched notifier for cross-cpu migrations</title>
<updated>2018-02-13T18:42:34+00:00</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2015-04-23T11:20:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4070ed709318608f7beb23d93956fc32d7bf841e'/>
<id>urn:sha1:4070ed709318608f7beb23d93956fc32d7bf841e</id>
<content type='text'>
commit 73459e2a1ada09a68c02cc5b73f3116fc8194b3d upstream.

This reverts commits 0a4e6be9ca17c54817cf814b4b5aa60478c6df27
and 80f7fdb1c7f0f9266421f823964fd1962681f6ce.

The task migration notifier was originally introduced in order to support
the pvclock vsyscall with non-synchronized TSC, but KVM only supports it
with synchronized TSC.  Hence, on KVM the race condition is only needed
due to a bad implementation on the host side, and even then it's so rare
that it's mostly theoretical.

As far as KVM is concerned it's possible to fix the host, avoiding the
additional complexity in the vDSO and the (re)introduction of the task
migration notifier.

Xen, on the other hand, hasn't yet implemented vsyscall support at
all, so we do not care about its plans for non-synchronized TSC.

Reported-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Suggested-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>x86, vdso: Move the vvar area before the vdso text</title>
<updated>2018-02-13T18:42:33+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@amacapital.net</email>
</author>
<published>2014-07-11T01:13:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7dd297f6f8c233a9b47cbe36837491e8cde74624'/>
<id>urn:sha1:7dd297f6f8c233a9b47cbe36837491e8cde74624</id>
<content type='text'>
commit e6577a7ce99a506b587bcd1d2cd803cb45119557 upstream.

Putting the vvar area after the vdso text is rather complicated: it
only works of the total length of the vdso text mapping is known at
vdso link time, and the linker doesn't allow symbol addresses to
depend on the sizes of non-allocatable data after the PT_LOAD
segment.

Moving the vvar area before the vdso text will allow is to safely
map non-allocatable data after the vdso text, which is a nice
simplification.

Signed-off-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Link: http://lkml.kernel.org/r/156c78c0d93144ff1055a66493783b9e56813983.1405040914.git.luto@amacapital.net
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
</feed>
