https://github.com/torvalds/linux

sort by:
Revision Author Date Message Commit Date
0865b29 Merge pull request #34 from alexandrasandulescu/tracer-assignment Add tracer assignment 16 March 2018, 12:16:19 UTC
2e95ab8 tracer_assignment: add checker and tracer skel 15 March 2018, 22:31:13 UTC
ed00a31 Merge pull request #33 from valx90/lab04-fix-wrong-todo-numbers lab04: exercises: Fix TODO numbers. 13 March 2018, 14:00:05 UTC
7568811 lab04: exercises: Fix TODO numbers. 13 March 2018, 13:06:12 UTC
ed8e26a Merge pull request #30 from dbaluta/master Documentation: lectures: Add draft 'Interrupts' lecture 13 March 2018, 11:16:23 UTC
cfffb16 Documentation: lectures: Add draft 'Interrupts' lecture Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 12 March 2018, 20:52:23 UTC
bd169a7 Merge pull request #28 from andanicolae/lab03-update-exercises lab03: kernel_api: update exercises requirements 11 March 2018, 05:32:51 UTC
70d5636 lab03: kernel_api: fixes * removed links to lxr kernel API * used :c:type:``, :c:data:``, :c:func:``, etc in all lab, when appropriate * reformulated documentation when needed * added missing list evolution image Signed-off-by: Anda Nicolae <nicolae.anda@gmail.com> 10 March 2018, 22:24:47 UTC
b00025c Merge pull request #26 from ramele1907/master teaching: labs: introduction: Fix typos 07 March 2018, 08:04:59 UTC
babf653 lab03: kernel_api: update exercises requirements * update links to point to 4.15.7 kernel API * use c constructs (:c:type:``, :c:macro:`` etc) to highlight structures, macros etc Signed-off-by: Anda Nicolae <nicolae.anda@gmail.com> 06 March 2018, 20:23:00 UTC
6d1bf51 Merge branch 'master' of https://github.com/ramele1907/linux 06 March 2018, 12:26:09 UTC
2b3cbe9 Corect typos 06 March 2018, 12:15:30 UTC
815b8cb Merge pull request #25 from rbaronescu/master Documentation: teaching: lectures: syscalls.rst: Corrected minor typos 06 March 2018, 09:19:07 UTC
0f9c0c5 Documentation: teaching: lectures: syscalls.rst: Corrected minor typos Signed-off-by: Robert Baronescu <baronescu.robert@gmail.com> 05 March 2018, 22:08:44 UTC
a47f8fb Merge pull request #20 from andanicolae/lab02-kernel-modules lab 02 nitpicking and broken links fix 05 March 2018, 06:33:48 UTC
28eabf8 Merge pull request #21 from valx90/lab02-add-missing-dyndbg-skel-dir Lab 2: Add missing dyndbg exercise. 05 March 2018, 06:32:59 UTC
e23b879 Merge pull request #19 from Sergiu121/master Lecture typo fixes and cscope optimization 04 March 2018, 19:56:40 UTC
3e37246 Fix typos in syscalls lecture 04 March 2018, 19:51:52 UTC
5955a65 Fix typos in intro lecture 04 March 2018, 19:51:50 UTC
24e8f4a Add cscope COMPILE_SOURCE paragraph 04 March 2018, 19:51:43 UTC
8ccd1c0 labs: kernel_modules: Add dyndbg exercise 04 March 2018, 18:39:20 UTC
0c157a7 lab 02 nitpicking and broken links fix Signed-off-by: Anda Nicolae <nicolae.anda@gmail.com> 04 March 2018, 16:05:04 UTC
bf831fd Merge pull request #18 from dbaluta/master Add kernel API assignment 02 March 2018, 19:53:53 UTC
7b77a3d assignment: kernel-api: Add checker Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> 01 March 2018, 21:35:33 UTC
c28ef35 assignment: kernel-api: Add initial list skeleton file Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> 01 March 2018, 21:35:21 UTC
9621a92 Merge pull request #11 from alexandrasandulescu/hello Add hello assignment in skels 28 February 2018, 13:46:57 UTC
55d91c1 Merge pull request #16 from rbaronescu/master Documentation: teaching: lectures: intro.rst: Corrected minor typos 27 February 2018, 23:27:52 UTC
0b2c9ac Documentation: teaching: lectures: intro.rst: Corrected minor typos Signed-off-by: Robert Baronescu <baronescu.robert@gmail.com> 27 February 2018, 21:29:11 UTC
11584a0 Merge pull request #15 from tavip/lktp-syscalls-fixes Documentation: teaching: syscall lecture: fix slide to fit 27 February 2018, 15:52:06 UTC
be0e9d8 Documentation: teaching: syscall lecture: fix slide to fit Fix the "System Call Flow Summary" slide to fit by rephrasing some bullets which should also hopefully make some points more clear. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 14:09:26 UTC
1c634de Merge pull request #13 from tavip/lktp-syscalls Add system calls lecture 27 February 2018, 13:11:38 UTC
d49ac51 Merge pull request #14 from alex-mocanu/master Corrected minor typos in intro lecture 27 February 2018, 13:11:16 UTC
bdb7300 Documentation: teaching: add system calls lecture Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 12:45:12 UTC
aa64318 Corrected formulation in intro lecture 27 February 2018, 11:23:38 UTC
b277d87 Corrected minor typos in intro lecture 27 February 2018, 11:09:45 UTC
0f38c30 tools: labs: install gdb scripts Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:47 UTC
3689baa Documentation: teaching: conf.py: add non breakable space substitution Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:46 UTC
4cdab6d Documentation: ditaa: stop on errors Don't catch ditaa errors, let the user see them so that it is easier to understand the root cause of failures. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:46 UTC
9260360 Documentation: add asciicast directive Add asciicast directive that allows inserting asciinema "asciicasts" in docs. The directive accepts a single mandatory parameter which is the filename that stores the asciicast: .. asciicast:: ascii.cast Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:46 UTC
8a4b0a4 Documentation: conf.py: use add_stylesheet instead of html_context As noted in Sphinx #2442 new CSS added by extensions are rendered innefective if html_context its changed. So, instead, use add_stylesheet to add theme_overridesc.css Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:45 UTC
1c39ca7 Documentation: teaching: intro lecture: fix list unindent Fixes the following warning: Documentation/teaching/lectures/intro.rst:737: WARNING: Bullet list ends without a blank line; unexpected unindent Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 27 February 2018, 04:31:45 UTC
d5010c7 hello_assignment: remove unnecessary files; fix coding style 26 February 2018, 16:12:42 UTC
e38813b hello_assignment: checker asks for module path 26 February 2018, 15:35:51 UTC
f9e2546 hello_assignment: move sources from elf repo and configure build 26 February 2018, 15:17:29 UTC
a16e12f Documentation: teaching: convert TABS to spaces in ditaa directives This makes it easier to edit ditaa directives since insertion will always move the rest of the row by one. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 26 February 2018, 02:15:54 UTC
e8ca6da Merge pull request #10 from andanicolae/lab1-introduction-docs labs: add introduction lab 25 February 2018, 21:01:46 UTC
77180a9 labs: add introduction lab Introduction lab presents few ways to navigate the kernel source code (LXR and cscope) and how to perform static and dynamic kernel analysis using gdb, vmlinux and /proc/kcore. 25 February 2018, 12:14:19 UTC
24cfdef Merge pull request #8 from tavip/lktp-3 Documentation: move teaching/labs/conf.py to teaching/ 24 February 2018, 16:51:29 UTC
77def8f Documentation: fix common substitutions The conf.py needs to be at the top of the namespace directory so move it where it belongs. And since we now have multiple subdirectories and includes are relative to current file directory, the common substitution will not longer work for all files. To fix this, just move the contents of subst.hrst directly to rst_epilog in conf.py. Fixes the following errors: deferred_work.rst:721: ERROR: Undefined substitution referenced: "LXR". deferred_work.rst:721: ERROR: Unknown target name: "lxr". interrupts.rst:688: ERROR: Undefined substitution referenced: "LXR". interrupts.rst:688: ERROR: Unknown target name: "lxr". kernel_api.rst:739: ERROR: Unexpected indentation. kernel_api.rst:582: ERROR: Undefined substitution referenced: "LXR". kernel_api.rst:582: ERROR: Unknown target name: "lxr". kernel_modules.rst:810: ERROR: Undefined substitution referenced: "LXR". kernel_modules.rst:939: ERROR: Undefined substitution referenced: "LXR". kernel_modules.rst:810: ERROR: Unknown target name: "lxr". kernel_modules.rst:939: ERROR: Unknown target name: "lxr". Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 23 February 2018, 23:52:44 UTC
3cb002d Merge pull request #6 from tavip/lktp-ci Add docs building and publishing support via Circle CI 22 February 2018, 03:50:51 UTC
10cf683 .circleci: add initial build configuration Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 22 February 2018, 03:47:42 UTC
414c483 Merge pull request #5 from tavip/lklabs-lectures-intro Lklabs lectures intro 20 February 2018, 15:31:38 UTC
ca5465b Documentation: teaching: add intro lecture This is split into two parts: one the is specific to cs.pub.ro and another one that is generic. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 15:14:42 UTC
8002421 tools: labs: add requirements.txt Add reqirements.txt and run pip in the doc target to make sure we have all required sphinx dependencies. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:44 UTC
5f89d7b Documentation: sphinx: ditaa: fix relative image names Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:44 UTC
58e2976 Documentation: add ditaa sphinx directive This is based on the psphinxcontrib.ditaa pip package and we add it localy since we need some fixes to properly render images in hieroglpyh slides. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:43 UTC
0f59b21 tools: labs: build slides Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:43 UTC
fbfab0e Documentation: add support for slides Enable hieroglyph extension if it is installed on the host and add a slides documentation target. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:42 UTC
ac75ef3 Documentation: move from labs to teaching/labs Since we are going to add lectures change the top level directory name from labs to teaching/labs. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> 20 February 2018, 14:54:42 UTC
bdc7674 Merge pull request #4 from dbaluta/kernel-labs-v4.15 Kernel labs v4.15 11 February 2018, 17:15:50 UTC
dd1229f labs: add device model lab Add documentationa and templates for the Linux device module lab which focuses on understanding the main Linux abstraction that deals with devices: devices, buses, drivers, subsystems and classes. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
4c5580e labs: add memory mapping lab Add documentation and templates for the memory mapping lab which focuses on: understanding the address space mapping mechanism; learn about the most important structures related to memory mapping. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
e59056d labs: add deferred work lab Add documentation and templates for the deffered work lab which focuses on: understanding deffered work; implementation of common tasks that use deferred work; understanding the peculiarities of synchronization for deferred work. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
ce41d39 labs: add I/O access and interrupts lab Add documentation and templates for the I/O access and interrupts lab which focuses on: communication with pheripheral devices; implementing interrupt handlers; synchronizing interrupts with process context. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
c8f2815 labs: add device drivers lab Add documentation and templates for the device drivers labs which focuses on: understanding the concepts behind character device drivers; understading the various operations that can be performed on character device drivers; working with waiting queues. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
6c98f7c labs: add kernel api lab Add the documentation and templates for the kernel modules lab which focuses on: familiarizing with the basic Linux kernel API, describing memory allocation and locking mechanism. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
cda9ea5 labs: add kernel modules lab Add the documentation and templates for the kernel modules lab which focuses on: creating simple modules; describing the process of kernel module compilation; presenting how a module can be used with a kernel; simple kernel debugging methods Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
605d223 labs: add lab infrastructure and documentation The Linux kernel labs documentation is a collection of "labs" for various device driver topics. For each topic there are two parts: a walk-through which explain the basic concepts and a hands-on part which contains a few exercises. This commit also adds the labs infrastructure which allows us to build and test kernel modules in a qemu environment. Signed-off-by: Octavian Purdila <tavi@cs.pub.ro> Signed-off-by: Daniel Baluta <daniel.baluta@gmail.com> 11 February 2018, 16:43:27 UTC
d8a5b80 Linux 4.15 28 January 2018, 21:20:33 UTC
24b1ccc Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 retpoline fixlet from Thomas Gleixner: "Remove the ESP/RSP thunks for retpoline as they cannot ever work. Get rid of them before they show up in a release" * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/retpoline: Remove the esp/rsp thunk 28 January 2018, 20:24:36 UTC
32c6cdf Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Thomas Gleixner: "A set of small fixes for 4.15: - Fix vmapped stack synchronization on systems with 4-level paging and a large amount of memory caused by a missing 5-level folding which made the pgd synchronization logic to fail and causing double faults. - Add a missing sanity check in the vmalloc_fault() logic on 5-level paging systems. - Bring back protection against accessing a freed initrd in the microcode loader which was lost by a wrong merge conflict resolution. - Extend the Broadwell micro code loading sanity check. - Add a missing ENDPROC annotation in ftrace assembly code which makes ORC unhappy. - Prevent loading the AMD power module on !AMD platforms. The load itself is uncritical, but an unload attempt results in a kernel crash. - Update Peter Anvins role in the MAINTAINERS file" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/ftrace: Add one more ENDPROC annotation x86: Mark hpa as a "Designated Reviewer" for the time being x86/mm/64: Tighten up vmalloc_fault() sanity checks on 5-level kernels x86/mm/64: Fix vmapped stack syncing on very-large-memory 4-level systems x86/microcode: Fix again accessing initrd after having been freed x86/microcode/intel: Extend BDW late-loading further with LLC size check perf/x86/amd/power: Do not load AMD power module on !AMD platforms 28 January 2018, 20:19:23 UTC
07b0137 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fix from Thomas Gleixner: "A single fix for a ~10 years old problem which causes high resolution timers to stop after a CPU unplug/plug cycle due to a stale flag in the per CPU hrtimer base struct. Paul McKenney was hunting this for about a year, but the heisenbug nature made it resistant against debug attempts for quite some time" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: hrtimer: Reset hrtimer cpu base proper on CPU hotplug 28 January 2018, 20:17:35 UTC
6244419 Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull scheduler fix from Thomas Gleixner: "A single bug fix to prevent a subtle deadlock in the scheduler core code vs cpu hotplug" * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/core: Fix cpu.max vs. cpuhotplug deadlock 28 January 2018, 19:51:45 UTC
39e3836 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Thomas Gleixner: "Four patches which all address lock inversions and deadlocks in the perf core code and the Intel debug store" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86: Fix perf,x86,cpuhp deadlock perf/core: Fix ctx::mutex deadlock perf/core: Fix another perf,trace,cpuhp lock inversion perf/core: Fix lock inversion between perf,trace,cpuhp 28 January 2018, 19:48:25 UTC
8c76e31 Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull locking fixes from Thomas Gleixner: "Two final locking fixes for 4.15: - Repair the OWNER_DIED logic in the futex code which got wreckaged with the recent fix for a subtle race condition. - Prevent the hard lockup detector from triggering when dumping all held locks in the system" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/lockdep: Avoid triggering hardlockup from debug_show_all_locks() futex: Fix OWNER_DEAD fixup 28 January 2018, 19:20:35 UTC
dd08516 x86/ftrace: Add one more ENDPROC annotation When ORC support was added for the ftrace_64.S code, an ENDPROC for function_hook() was missed. This results in the following warning: arch/x86/kernel/ftrace_64.o: warning: objtool: .entry.text+0x0: unreachable instruction Fixes: e2ac83d74a4d ("x86/ftrace: Fix ORC unwinding from ftrace handlers") Reported-by: Steven Rostedt <rostedt@goodmis.org> Reported-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lkml.kernel.org/r/20180128022150.dqierscqmt3uwwsr@treble 28 January 2018, 08:19:12 UTC
d5421ea hrtimer: Reset hrtimer cpu base proper on CPU hotplug The hrtimer interrupt code contains a hang detection and mitigation mechanism, which prevents that a long delayed hrtimer interrupt causes a continous retriggering of interrupts which prevent the system from making progress. If a hang is detected then the timer hardware is programmed with a certain delay into the future and a flag is set in the hrtimer cpu base which prevents newly enqueued timers from reprogramming the timer hardware prior to the chosen delay. The subsequent hrtimer interrupt after the delay clears the flag and resumes normal operation. If such a hang happens in the last hrtimer interrupt before a CPU is unplugged then the hang_detected flag is set and stays that way when the CPU is plugged in again. At that point the timer hardware is not armed and it cannot be armed because the hang_detected flag is still active, so nothing clears that flag. As a consequence the CPU does not receive hrtimer interrupts and no timers expire on that CPU which results in RCU stalls and other malfunctions. Clear the flag along with some other less critical members of the hrtimer cpu base to ensure starting from a clean state when a CPU is plugged in. Thanks to Paul, Sebastian and Anna-Maria for their help to get down to the root cause of that hard to reproduce heisenbug. Once understood it's trivial and certainly justifies a brown paperbag. Fixes: 41d2e4949377 ("hrtimer: Tune hrtimer_interrupt hang logic") Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sebastian Sewior <bigeasy@linutronix.de> Cc: Anna-Maria Gleixner <anna-maria@linutronix.de> Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/alpine.DEB.2.20.1801261447590.2067@nanos 27 January 2018, 14:12:22 UTC
8a95b74 x86: Mark hpa as a "Designated Reviewer" for the time being Due to some unfortunate events, I have not been directly involved in the x86 kernel patch flow for a while now. I have also not been able to ramp back up by now like I had hoped to, and after reviewing what I will need to work on both internally at Intel and elsewhere in the near term, it is clear that I am not going to be able to ramp back up until late 2018 at the very earliest. It is not acceptable to not recognize that this load is currently taken by Ingo and Thomas without my direct participation, so I mark myself as R: (designated reviewer) rather than M: (maintainer) until further notice. This is in fact recognizing the de facto situation for the past few years. I have obviously no intention of going away, and I will do everything within my power to improve Linux on x86 and x86 for Linux. This, however, puts credit where it is due and reflects a change of focus. This patch also removes stale entries for portions of the x86 architecture which have not been maintained separately from arch/x86 for a long time. If there is a reason to re-introduce them then that can happen later. Signed-off-by: H. Peter Anvin <h.peter.anvin@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Bruce Schlobohm <bruce.schlobohm@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/20180125195934.5253-1-hpa@zytor.com Signed-off-by: Ingo Molnar <mingo@kernel.org> 27 January 2018, 09:11:00 UTC
c4e0ca7 Merge tag 'riscv-for-linus-4.15-maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux Pull RISC-V update from Palmer Dabbelt: "RISC-V: We have a new mailing list and git repo! Sorry to send something essentially as late as possible (Friday after an rc9), but we managed to get a mailing list for the RISC-V Linux port. We've been using patches@groups.riscv.org for a while, but that list has some problems (it's Google Groups and it's shared over all RISC-V software projects). The new infaread.org list is much better. We just got it on Wednesday but I used it a bit on Thursday to shake out all the configuration problems and it appears to be in working order. When I updated the mailing list I noticed that the MAINTAINERS file was pointing to our github repo, but now that we have a kernel.org repo I'd like to point to that instead so I changed that as well. We'll be centralizing all RISC-V Linux related development here as that seems to be the saner way to go about it. I can understand if it's too late to get this into 4.15, but given that it's not a code change I was hoping it'd still be OK. It would be nice to have the new mailing list and git repo in the release tarballs so when people start to find bugs they'll get to the right place" * tag 'riscv-for-linus-4.15-maintainers' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: Update the RISC-V MAINTAINERS file 26 January 2018, 23:10:50 UTC
ba804bb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) The per-network-namespace loopback device, and thus its namespace, can have its teardown deferred for a long time if a kernel created TCP socket closes and the namespace is exiting meanwhile. The kernel keeps trying to finish the close sequence until it times out (which takes quite some time). Fix this by forcing the socket closed in this situation, from Dan Streetman. 2) Fix regression where we're trying to invoke the update_pmtu method on route types (in this case metadata tunnel routes) that don't implement the dst_ops method. Fix from Nicolas Dichtel. 3) Fix long standing memory corruption issues in r8169 driver by performing the chip statistics DMA programming more correctly. From Francois Romieu. 4) Handle local broadcast sends over VRF routes properly, from David Ahern. 5) Don't refire the DCCP CCID2 timer endlessly, otherwise the socket can never be released. From Alexey Kodanev. 6) Set poll flags properly in VSOCK protocol layer, from Stefan Hajnoczi. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: VSOCK: set POLLOUT | POLLWRNORM for TCP_CLOSING dccp: don't restart ccid2_hc_tx_rto_expire() if sk in closed state net: vrf: Add support for sends to local broadcast address r8169: fix memory corruption on retrieval of hardware statistics. net: don't call update_pmtu unconditionally net: tcp: close sock if net namespace is exiting 26 January 2018, 17:03:16 UTC
db21854 Merge tag 'drm-fixes-for-v4.15-rc10-2' of git://people.freedesktop.org/~airlied/linux Pull drm fixes from Dave Airlie: "A fairly urgent nouveau regression fix for broken irqs across suspend/resume came in. This was broken before but a patch in 4.15 has made it much more obviously broken and now s/r fails a lot more often. The fix removes freeing the irq across s/r which never should have been done anyways. Also two vc4 fixes for a NULL deference and some misrendering / flickering on screen" * tag 'drm-fixes-for-v4.15-rc10-2' of git://people.freedesktop.org/~airlied/linux: drm/nouveau: Move irq setup/teardown to pci ctor/dtor drm/vc4: Fix NULL pointer dereference in vc4_save_hang_state() drm/vc4: Flush the caches before the bin jobs, as well. 26 January 2018, 16:59:57 UTC
ba3169f VSOCK: set POLLOUT | POLLWRNORM for TCP_CLOSING select(2) with wfds but no rfds must return when the socket is shut down by the peer. This way userspace notices socket activity and gets -EPIPE from the next write(2). Currently select(2) does not return for virtio-vsock when a SEND+RCV shutdown packet is received. This is because vsock_poll() only sets POLLOUT | POLLWRNORM for TCP_CLOSE, not the TCP_CLOSING state that the socket is in when the shutdown is received. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> 26 January 2018, 16:16:27 UTC
dd5684e dccp: don't restart ccid2_hc_tx_rto_expire() if sk in closed state ccid2_hc_tx_rto_expire() timer callback always restarts the timer again and can run indefinitely (unless it is stopped outside), and after commit 120e9dabaf55 ("dccp: defer ccid_hc_tx_delete() at dismantle time"), which moved ccid_hc_tx_delete() (also includes sk_stop_timer()) from dccp_destroy_sock() to sk_destruct(), this started to happen quite often. The timer prevents releasing the socket, as a result, sk_destruct() won't be called. Found with LTP/dccp_ipsec tests running on the bonding device, which later couldn't be unloaded after the tests were completed: unregister_netdevice: waiting for bond0 to become free. Usage count = 148 Fixes: 2a91aa396739 ("[DCCP] CCID2: Initial CCID2 (TCP-Like) implementation") Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> 26 January 2018, 16:15:00 UTC
6572cc2 Update the RISC-V MAINTAINERS file Now that we're upstream in Linux we've been able to make some infrastructure changes so our port works a bit more like other ports. Specifically: * We now have a mailing list specific to the RISC-V Linux port, hosted at lists.infreadead.org. * We now have a kernel.org git tree where work on our port is coordinated. This patch changes the RISC-V maintainers entry to reflect these new bits of infrastructure. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Palmer Dabbelt <palmer@sifive.com> 26 January 2018, 16:01:24 UTC
36b3a77 x86/mm/64: Tighten up vmalloc_fault() sanity checks on 5-level kernels On a 5-level kernel, if a non-init mm has a top-level entry, it needs to match init_mm's, but the vmalloc_fault() code skipped over the BUG_ON() that would have checked it. While we're at it, get rid of the rather confusing 4-level folded "pgd" logic. Cleans-up: b50858ce3e2a ("x86/mm/vmalloc: Add 5-level paging support") Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Neil Berrington <neil.berrington@datacore.com> Link: https://lkml.kernel.org/r/2ae598f8c279b0a29baf75df207e6f2fdddc0a1b.1516914529.git.luto@kernel.org 26 January 2018, 14:56:23 UTC
5beda7d x86/mm/64: Fix vmapped stack syncing on very-large-memory 4-level systems Neil Berrington reported a double-fault on a VM with 768GB of RAM that uses large amounts of vmalloc space with PTI enabled. The cause is that load_new_mm_cr3() was never fixed to take the 5-level pgd folding code into account, so, on a 4-level kernel, the pgd synchronization logic compiles away to exactly nothing. Interestingly, the problem doesn't trigger with nopti. I assume this is because the kernel is mapped with global pages if we boot with nopti. The sequence of operations when we create a new task is that we first load its mm while still running on the old stack (which crashes if the old stack is unmapped in the new mm unless the TLB saves us), then we call prepare_switch_to(), and then we switch to the new stack. prepare_switch_to() pokes the new stack directly, which will populate the mapping through vmalloc_fault(). I assume that we're getting lucky on non-PTI systems -- the old stack's TLB entry stays alive long enough to make it all the way through prepare_switch_to() and switch_to() so that we make it to a valid stack. Fixes: b50858ce3e2a ("x86/mm/vmalloc: Add 5-level paging support") Reported-and-tested-by: Neil Berrington <neil.berrington@datacore.com> Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Cc: stable@vger.kernel.org Cc: Dave Hansen <dave.hansen@intel.com> Cc: Borislav Petkov <bp@alien8.de> Link: https://lkml.kernel.org/r/346541c56caed61abbe693d7d2742b4a380c5001.1516914529.git.luto@kernel.org 26 January 2018, 14:56:23 UTC
baa35cc Merge branch 'linux-4.15' of git://github.com/skeggsb/linux into drm-fixes Single irq regression fix * 'linux-4.15' of git://github.com/skeggsb/linux: drm/nouveau: Move irq setup/teardown to pci ctor/dtor 26 January 2018, 05:27:07 UTC
1e19c4d net: vrf: Add support for sends to local broadcast address Sukumar reported that sends to the local broadcast address (255.255.255.255) are broken. Check for the address in vrf driver and do not redirect to the VRF device - similar to multicast packets. With this change sockets can use SO_BINDTODEVICE to specify an egress interface and receive responses. Note: the egress interface can not be a VRF device but needs to be the enslaved device. https://bugzilla.kernel.org/show_bug.cgi?id=198521 Reported-by: Sukumar Gopalakrishnan <sukumarg1973@gmail.com> Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> 26 January 2018, 02:51:03 UTC
a78e936 r8169: fix memory corruption on retrieval of hardware statistics. Hardware statistics retrieval hurts in tight invocation loops. Avoid extraneous write and enforce strict ordering of writes targeted to the tally counters dump area address registers. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Tested-by: Oliver Freyermuth <o.freyermuth@googlemail.com> Signed-off-by: David S. Miller <davem@davemloft.net> 26 January 2018, 02:34:04 UTC
993ca20 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input fixes from Dmitry Torokhov: "The main item is that we try to better handle the newer trackpoints on Lenovo devices that are now being produced by Elan/ALPS/NXP and only implement a small subset of the original IBM trackpoint controls" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01" Input: trackpoint - only expose supported controls for Elan, ALPS and NXP Input: trackpoint - force 3 buttons if 0 button is reported Input: xpad - add support for PDP Xbox One controllers Input: stmfts,s6sy671 - add SPDX identifier 26 January 2018, 01:30:47 UTC
6793f1c orangefs: fix deadlock; do not write i_size in read_iter After do_readv_writev, the inode cache is invalidated anyway, so i_size will never be read. It will be fetched from the server which will also know about updates from other machines. Fixes deadlock on 32-bit SMP. See https://marc.info/?l=linux-fsdevel&m=151268557427760&w=2 Signed-off-by: Martin Brandenburg <martin@omnibond.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Mike Marshall <hubcap@omnibond.com> Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> 26 January 2018, 01:26:24 UTC
0fd189a drm/nouveau: Move irq setup/teardown to pci ctor/dtor For a while we've been having issues with seemingly random interrupts coming from nvidia cards when resuming them. Originally the fix for this was thought to be just re-arming the MSI interrupt registers right after re-allocating our IRQs, however it seems a lot of what we do is both wrong and not even nessecary. This was made apparent by what appeared to be a regression in the mainline kernel that started introducing suspend/resume issues for nouveau: a0c9259dc4e1 (irq/matrix: Spread interrupts on allocation) After this commit was introduced, we started getting interrupts from the GPU before we actually re-allocated our own IRQ (see references below) and assigned the IRQ handler. Investigating this turned out that the problem was not with the commit, but the fact that nouveau even free/allocates it's irqs before and after suspend/resume. For starters: drivers in the linux kernel haven't had to handle freeing/re-allocating their IRQs during suspend/resume cycles for quite a while now. Nouveau seems to be one of the few drivers left that still does this, despite the fact there's no reason we actually need to since disabling interrupts from the device side should be enough, as the kernel is already smart enough to know to disable host-side interrupts for us before going into suspend. Since we were tearing down our IRQs by hand however, that means there was a short period during resume where interrupts could be received before we re-allocated our IRQ which would lead to us getting an unhandled IRQ. Since we never handle said IRQ and re-arm the interrupt registers, this would cause us to miss all of the interrupts from the GPU and cause our init process to start timing out on anything requiring interrupts. So, since this whole setup/teardown every suspend/resume cycle is useless anyway, move irq setup/teardown into the pci subdev's ctor/dtor functions instead so they're only called at driver load and driver unload. This should fix most of the issues with pending interrupts on resume, along with getting suspend/resume for nouveau to work again. As well, this probably means we can also just remove the msi rearm call inside nvkm_pci_init(). But since our main focus here is to fix suspend/resume before 4.15, we'll save that for a later patch. Signed-off-by: Lyude Paul <lyude@redhat.com> Cc: Karol Herbst <kherbst@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Mike Galbraith <efault@gmx.de> Cc: stable@vger.kernel.org Signed-off-by: Ben Skeggs <bskeggs@redhat.com> 25 January 2018, 23:44:39 UTC
f15ca72 net: don't call update_pmtu unconditionally Some dst_ops (e.g. md_dst_ops)) doesn't set this handler. It may result to: "BUG: unable to handle kernel NULL pointer dereference at (null)" Let's add a helper to check if update_pmtu is available before calling it. Fixes: 52a589d51f10 ("geneve: update skb dst pmtu on tx path") Fixes: a93bf0ff4490 ("vxlan: update skb dst pmtu on tx path") CC: Roman Kapl <code@rkapl.cz> CC: Xin Long <lucien.xin@gmail.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net> 25 January 2018, 21:27:34 UTC
6e20630 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Radim Krčmář: "Fix races and a potential use after free in the s390 cmma migration code" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: s390: add proper locking for CMMA migration bitmap 25 January 2018, 17:32:10 UTC
525273f Merge tag 'for-4.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fix from David Sterba: "It's been reported recently that readdir can list stale entries under some conditions. Fix it." * tag 'for-4.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: Btrfs: fix stale entries in readdir 25 January 2018, 17:03:10 UTC
4ee806d net: tcp: close sock if net namespace is exiting When a tcp socket is closed, if it detects that its net namespace is exiting, close immediately and do not wait for FIN sequence. For normal sockets, a reference is taken to their net namespace, so it will never exit while the socket is open. However, kernel sockets do not take a reference to their net namespace, so it may begin exiting while the kernel socket is still open. In this case if the kernel socket is a tcp socket, it will stay open trying to complete its close sequence. The sock's dst(s) hold a reference to their interface, which are all transferred to the namespace's loopback interface when the real interfaces are taken down. When the namespace tries to take down its loopback interface, it hangs waiting for all references to the loopback interface to release, which results in messages like: unregister_netdevice: waiting for lo to become free. Usage count = 1 These messages continue until the socket finally times out and closes. Since the net namespace cleanup holds the net_mutex while calling its registered pernet callbacks, any new net namespace initialization is blocked until the current net namespace finishes exiting. After this change, the tcp socket notices the exiting net namespace, and closes immediately, releasing its dst(s) and their reference to the loopback interface, which lets the net namespace continue exiting. Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1711407 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=97811 Signed-off-by: Dan Streetman <ddstreet@canonical.com> Signed-off-by: David S. Miller <davem@davemloft.net> 25 January 2018, 15:56:45 UTC
efe951d perf/x86: Fix perf,x86,cpuhp deadlock More lockdep gifts, a 5-way lockup race: perf_event_create_kernel_counter() perf_event_alloc() perf_try_init_event() x86_pmu_event_init() __x86_pmu_event_init() x86_reserve_hardware() #0 mutex_lock(&pmc_reserve_mutex); reserve_ds_buffer() #1 get_online_cpus() perf_event_release_kernel() _free_event() hw_perf_event_destroy() x86_release_hardware() #0 mutex_lock(&pmc_reserve_mutex) release_ds_buffer() #1 get_online_cpus() #1 do_cpu_up() perf_event_init_cpu() #2 mutex_lock(&pmus_lock) #3 mutex_lock(&ctx->mutex) sys_perf_event_open() mutex_lock_double() #3 mutex_lock(ctx->mutex) #4 mutex_lock_nested(ctx->mutex, 1); perf_try_init_event() #4 mutex_lock_nested(ctx->mutex, 1) x86_pmu_event_init() intel_pmu_hw_config() x86_add_exclusive() #0 mutex_lock(&pmc_reserve_mutex) Fix it by using ordering constructs instead of locking. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org> 25 January 2018, 13:48:30 UTC
0c7296c perf/core: Fix ctx::mutex deadlock Lockdep noticed the following 3-way lockup scenario: sys_perf_event_open() perf_event_alloc() perf_try_init_event() #0 ctx = perf_event_ctx_lock_nested(1) perf_swevent_init() swevent_hlist_get() #1 mutex_lock(&pmus_lock) perf_event_init_cpu() #1 mutex_lock(&pmus_lock) #2 mutex_lock(&ctx->mutex) sys_perf_event_open() mutex_lock_double() #2 mutex_lock() #0 mutex_lock_nested() And while we need that perf_event_ctx_lock_nested() for HW PMUs such that they can iterate the sibling list, trying to match it to the available counters, the software PMUs need do no such thing. Exclude them. In particular the swevent triggers the above invertion, while the tpevent PMU triggers a more elaborate one through their event_mutex. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org> 25 January 2018, 13:48:30 UTC
43fa87f perf/core: Fix another perf,trace,cpuhp lock inversion Lockdep noticed the following 3-way lockup race: perf_trace_init() #0 mutex_lock(&event_mutex) perf_trace_event_init() perf_trace_event_reg() tp_event->class->reg() := tracepoint_probe_register #1 mutex_lock(&tracepoints_mutex) trace_point_add_func() #2 static_key_enable() #2 do_cpu_up() perf_event_init_cpu() #3 mutex_lock(&pmus_lock) #4 mutex_lock(&ctx->mutex) perf_ioctl() #4 ctx = perf_event_ctx_lock() _perf_iotcl() ftrace_profile_set_filter() #0 mutex_lock(&event_mutex) Fudge it for now by noting that the tracepoint state does not depend on the event <-> context relation. Ugly though :/ Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> 25 January 2018, 13:48:30 UTC
82d9485 perf/core: Fix lock inversion between perf,trace,cpuhp Lockdep gifted us with noticing the following 4-way lockup scenario: perf_trace_init() #0 mutex_lock(&event_mutex) perf_trace_event_init() perf_trace_event_reg() tp_event->class->reg() := tracepoint_probe_register #1 mutex_lock(&tracepoints_mutex) trace_point_add_func() #2 static_key_enable() #2 do_cpu_up() perf_event_init_cpu() #3 mutex_lock(&pmus_lock) #4 mutex_lock(&ctx->mutex) perf_event_task_disable() mutex_lock(&current->perf_event_mutex) #4 ctx = perf_event_ctx_lock() #5 perf_event_for_each_child() do_exit() task_work_run() __fput() perf_release() perf_event_release_kernel() #4 mutex_lock(&ctx->mutex) #5 mutex_lock(&event->child_mutex) free_event() _free_event() event->destroy() := perf_trace_destroy #0 mutex_lock(&event_mutex); Fix that by moving the free_event() out from under the locks. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org> 25 January 2018, 13:48:29 UTC
back to top