1. 22 Jul, 2015 1 commit
  2. 21 Jul, 2015 4 commits
    • Linus Torvalds's avatar
      Revert "fsnotify: fix oops in fsnotify_clear_marks_by_group_flags()" · d725e66c
      Linus Torvalds authored
      This reverts commit a2673b6e.
      
      Kinglong Mee reports a memory leak with that patch, and Jan Kara confirms:
      
       "Thanks for report! You are right that my patch introduces a race
        between fsnotify kthread and fsnotify_destroy_group() which can result
        in leaking inotify event on group destruction.
      
        I haven't yet decided whether the right fix is not to queue events for
        dying notification group (as that is pointless anyway) or whether we
        should just fix the original problem differently...  Whenever I look
        at fsnotify code mark handling I get lost in the maze of locks, lists,
        and subtle differences between how different notification systems
        handle notification marks :( I'll think about it over night"
      
      and after thinking about it, Jan says:
      
       "OK, I have looked into the code some more and I found another
        relatively simple way of fixing the original oops.  It will be IMHO
        better than trying to fixup this issue which has more potential for
        breakage.  I'll ask Linus to revert the fsnotify fix he already merged
        and send a new fix"
      Reported-by: default avatarKinglong Mee <kinglongmee@gmail.com>
      Requested-by: default avatarJan Kara <jack@suse.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d725e66c
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 71ebd1af
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Here are some overly ripe pin control fixes for the v4.2 series.
      
        They got delayed because of various crap commits and having to clean
        and rinse the patch stack a few times.  Now they are however looking
        good.
      
         - some dead defines dropped from the Samsung driver, was targeted for
           -rc2 but got delayed
         - drop the strict mode from abx500, this was too strict
         - fix the R-Car sparse IRQs code to work as intended
         - fix the IRQ code for the pinctrl-single GPIO backend to not enforce
           threaded IRQs
         - clear the latched events/IRQs for the Broadcom BCM2835 driver
         - fix up debugfs for the Freescale imx1 driver
         - fix a typo bug in the Schmitt Trigger setup in the LPC18xx driver"
      
      * tag 'pinctrl-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: lpc18xx: fix schmitt trigger setup
        Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback
        pinctrl: bcm2835: Clear the event latch register when disabling interrupts
        pinctrl: single: ensure pcs irq will not be forced threaded
        sh-pfc: fix sparse GPIOs for R-Car SoCs
        pinctrl: abx500: remove strict mode
        pinctrl: samsung: Remove old unused defines
      71ebd1af
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 8426fb30
      Linus Torvalds authored
      Pull UDF fix from Jan Kara:
       "A fix for UDF corruption when certain disk-format feature is enabled"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Don't corrupt unalloc spacetable when writing it
      8426fb30
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.2-rc2-fix2' of... · 1ad474de
      Linus Torvalds authored
      Merge tag 'trace-v4.2-rc2-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing sample code fix from Steven Rostedt:
       "He Kuang noticed that the sample code using the trace_event helper
        function __get_dynamic_array_len() is broken.
      
        This only changes the sample code, and I'm pushing this now instead of
        later because I don't want others using the broken code as an example
        when using it for real"
      
      * tag 'trace-v4.2-rc2-fix2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix sample output of dynamic arrays
      1ad474de
  3. 20 Jul, 2015 10 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 9d634c41
      Linus Torvalds authored
      Pull s390 fix from Martin Schwidefsky:
       "Fast path fix for the thread_struct breakage"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: adapt entry.S to the move of thread_struct
      9d634c41
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 · d7f430d4
      Linus Torvalds authored
      Pull AVR32 update from Hans-Christian Egtvedt.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
        AVR32/time: Migrate to new 'set-state' interface
      d7f430d4
    • Martin Schwidefsky's avatar
      s390: adapt entry.S to the move of thread_struct · 3827ec3d
      Martin Schwidefsky authored
      git commit 0c8c0f03
      "x86/fpu, sched: Dynamically allocate 'struct fpu'"
      moved the thread_struct to the end of the task_struct.
      
      This causes some of the offsets used in entry.S to overflow their
      instruction operand field. To fix this  use aghi to create a
      dedicated pointer for the thread_struct.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      3827ec3d
    • Viresh Kumar's avatar
      AVR32/time: Migrate to new 'set-state' interface · 09adcdf2
      Viresh Kumar authored
      Migrate avr32 driver to the new 'set-state' interface provided by
      clockevents core, the earlier 'set-mode' interface is marked obsolete
      now.
      
      This also enables us to implement callbacks for new states of clockevent
      devices, for example: ONESHOT_STOPPED.
      
      We want to call cpu_idle_poll_ctrl() in shutdown only if we were in
      oneshot or resume state earlier. Create another variable to save this
      information and check that in shutdown callback.
      
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Acked-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
      09adcdf2
    • Joachim Eastwood's avatar
      pinctrl: lpc18xx: fix schmitt trigger setup · 681ccdcc
      Joachim Eastwood authored
      The param_val variable is what determines if schmitt
      trigger is enabled on a pin or not. A typo here mean
      that schmitt trigger was always enabled for standard
      and i2c pins.
      Signed-off-by: default avatarJoachim Eastwood <manabian@gmail.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      681ccdcc
    • Uwe Kleine-König's avatar
      Subject: pinctrl: imx1-core: Fix debug output in .pin_config_set callback · 9571b25d
      Uwe Kleine-König authored
      imx1_pinconf_set assumes that the array of pins in struct
      imx1_pinctrl_soc_info can be indexed by pin id to get the
      pinctrl_pin_desc for a pin. This used to be correct up to commit
      607af165 which removed some entries from the array and so made it
      wrong to access the array by pin id.
      
      The result of this bug is a wrong pin name in the output for small pin
      ids and an oops for the bigger ones.
      
      This patch is the result of a discussion that includes patches by Markus
      Pargmann and Chris Ruehl.
      
      Fixes: 607af165 ("pinctrl: i.MX27: Remove nonexistent pad definitions")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarChris Ruehl <chris.ruehl@gtsys.com.hk>
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Reviewed-by: default avatarMarkus Pargmann <mpa@pengutronix.de>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      9571b25d
    • Jonathan Bell's avatar
      pinctrl: bcm2835: Clear the event latch register when disabling interrupts · 714b1dd8
      Jonathan Bell authored
      It's possible to hit a race condition if interrupts are generated on a GPIO
      pin when the IRQ line in question is being disabled.
      
      If the interrupt is freed, bcm2835_gpio_irq_disable() is called which
      disables the event generation sources (edge, level). If an event occurred
      between the last disabling of hard IRQs and the write to the event
      source registers, a bit would be set in the GPIO event detect register
      (GPEDSn) which goes unacknowledged by bcm2835_gpio_irq_handler()
      so Linux complains loudly.
      
      There is no per-GPIO mask register, so when disabling GPIO interrupts
      write 1 to the relevant bit in GPEDSn to clear out any stale events.
      Signed-off-by: default avatarJonathan Bell <jonathan@raspberrypi.org>
      Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      714b1dd8
    • Grygorii Strashko's avatar
      pinctrl: single: ensure pcs irq will not be forced threaded · c10372e6
      Grygorii Strashko authored
      The PSC IRQ is requested using request_irq() API and as result it can
      be forced to be threaded IRQ in RT-Kernel if PCS_QUIRK_HAS_SHARED_IRQ
      is enabled for pinctrl domain.
      
      As result, following 'possible irq lock inversion dependency' report
      can be seen:
      =========================================================
      [ INFO: possible irq lock inversion dependency detected ]
      3.14.43-rt42-00360-g96ff499-dirty #24 Not tainted
      ---------------------------------------------------------
      irq/369-pinctrl/927 just changed the state of lock:
       (&pcs->lock){+.....}, at: [<c0375b54>] pcs_irq_handle+0x48/0x9c
      but this lock was taken by another, HARDIRQ-safe lock in the past:
       (&irq_desc_lock_class){-.....}
      
      and interrupts could create inverse lock ordering between them.
      
      other info that might help us debug this:
       Possible interrupt unsafe locking scenario:
      
             CPU0                    CPU1
             ----                    ----
        lock(&pcs->lock);
                                     local_irq_disable();
                                     lock(&irq_desc_lock_class);
                                     lock(&pcs->lock);
        <Interrupt>
          lock(&irq_desc_lock_class);
      
       *** DEADLOCK ***
      
      no locks held by irq/369-pinctrl/927.
      
      the shortest dependencies between 2nd lock and 1st lock:
        -> (&irq_desc_lock_class){-.....} ops: 58724 {
           IN-HARDIRQ-W at:
                             [<c0090040>] lock_acquire+0x9c/0x158
                             [<c07065c8>] _raw_spin_lock+0x48/0x58
                             [<c009edac>] handle_fasteoi_irq+0x24/0x15c
                             [<c009abb0>] generic_handle_irq+0x3c/0x4c
                             [<c000f83c>] handle_IRQ+0x50/0xa0
                             [<c0008674>] gic_handle_irq+0x3c/0x6c
                             [<c0707a04>] __irq_svc+0x44/0x8c
                             [<c000fc44>] arch_cpu_idle+0x40/0x4c
                             [<c009aadc>] cpu_startup_entry+0x270/0x2e0
                             [<c06fcbf8>] rest_init+0xd4/0xe4
                             [<c0a44bfc>] start_kernel+0x3d0/0x3dc
                             [<80008084>] 0x80008084
           INITIAL USE at:
                            [<c0090040>] lock_acquire+0x9c/0x158
                            [<c070674c>] _raw_spin_lock_irqsave+0x54/0x68
                            [<c009aff8>] __irq_get_desc_lock+0x64/0xa4
                            [<c009e38c>] irq_set_chip+0x30/0x78
                            [<c009ec30>] irq_set_chip_and_handler_name+0x24/0x3c
                            [<c036ca10>] gic_irq_domain_map+0x48/0xb4
                            [<c00a0a80>] irq_domain_associate+0x84/0x1d4
                            [<c00a1154>] irq_create_mapping+0x80/0x11c
                            [<c00a1270>] irq_create_of_mapping+0x80/0x120
                            [<c05cdaa8>] irq_of_parse_and_map+0x34/0x3c
                            [<c0a4ea24>] omap_dm_timer_init_one+0x90/0x30c
                            [<c0a4eef0>] omap5_realtime_timer_init+0x8c/0x48c
                            [<c0a486b0>] time_init+0x28/0x38
                            [<c0a44a6c>] start_kernel+0x240/0x3dc
                            [<80008084>] 0x80008084
         }
         ... key      at: [<c1049ce0>] irq_desc_lock_class+0x0/0x8
         ... acquired at:
         [<c07065c8>] _raw_spin_lock+0x48/0x58
         [<c0375a90>] pcs_irq_unmask+0x58/0xa0
         [<c009ea48>] irq_enable+0x38/0x48
         [<c009ead0>] irq_startup+0x78/0x7c
         [<c009d440>] __setup_irq+0x4a8/0x4f4
         [<c009d5dc>] request_threaded_irq+0xb8/0x138
         [<c0415a5c>] omap_8250_startup+0x4c/0x148
         [<c041276c>] serial8250_startup+0x24/0x30
         [<c040d0ec>] uart_startup.part.9+0x5c/0x1b4
         [<c040dbcc>] uart_open+0xf4/0x16c
         [<c03f0540>] tty_open+0x170/0x61c
         [<c0157028>] chrdev_open+0xbc/0x1b4
         [<c0150494>] do_dentry_open+0x1e8/0x2bc
         [<c0150a84>] finish_open+0x44/0x5c
         [<c0160d50>] do_last.isra.47+0x710/0xca0
         [<c01613a4>] path_openat+0xc4/0x640
         [<c0162904>] do_filp_open+0x3c/0x98
         [<c0151bdc>] do_sys_open+0x114/0x1d8
         [<c0151cc8>] SyS_open+0x28/0x2c
         [<c0a44d70>] kernel_init_freeable+0x168/0x1e4
         [<c06fcc24>] kernel_init+0x1c/0xf8
         [<c000eee8>] ret_from_fork+0x14/0x20
      
      -> (&pcs->lock){+.....} ops: 65 {
         HARDIRQ-ON-W at:
                          [<c0090040>] lock_acquire+0x9c/0x158
                          [<c07065c8>] _raw_spin_lock+0x48/0x58
                          [<c0375b54>] pcs_irq_handle+0x48/0x9c
                          [<c0375c5c>] pcs_irq_handler+0x1c/0x28
                          [<c009c458>] irq_forced_thread_fn+0x30/0x74
                          [<c009c784>] irq_thread+0x158/0x1c4
                          [<c0063fc4>] kthread+0xd4/0xe8
                          [<c000eee8>] ret_from_fork+0x14/0x20
         INITIAL USE at:
                         [<c0090040>] lock_acquire+0x9c/0x158
                         [<c070674c>] _raw_spin_lock_irqsave+0x54/0x68
                         [<c0375344>] pcs_enable+0x7c/0xe8
                         [<c0372a44>] pinmux_enable_setting+0x178/0x220
                         [<c036fecc>] pinctrl_select_state+0x110/0x194
                         [<c04732dc>] pinctrl_bind_pins+0x7c/0x108
                         [<c045853c>] driver_probe_device+0x70/0x254
                         [<c0458810>] __driver_attach+0x9c/0xa0
                         [<c045674c>] bus_for_each_dev+0x78/0xac
                         [<c0458030>] driver_attach+0x2c/0x30
                         [<c0457c78>] bus_add_driver+0x15c/0x204
                         [<c0458ee0>] driver_register+0x88/0x108
                         [<c045a168>] __platform_driver_register+0x64/0x6c
                         [<c0a8170c>] omap_hsmmc_driver_init+0x1c/0x20
                         [<c0008a94>] do_one_initcall+0x110/0x170
                         [<c0a44d48>] kernel_init_freeable+0x140/0x1e4
                         [<c06fcc24>] kernel_init+0x1c/0xf8
                         [<c000eee8>] ret_from_fork+0x14/0x20
       }
       ... key      at: [<c1088a8c>] __key.18572+0x0/0x8
       ... acquired at:
         [<c008cdd4>] mark_lock+0x388/0x76c
         [<c008df40>] __lock_acquire+0x6d0/0x1f98
         [<c0090040>] lock_acquire+0x9c/0x158
         [<c07065c8>] _raw_spin_lock+0x48/0x58
         [<c0375b54>] pcs_irq_handle+0x48/0x9c
         [<c0375c5c>] pcs_irq_handler+0x1c/0x28
         [<c009c458>] irq_forced_thread_fn+0x30/0x74
         [<c009c784>] irq_thread+0x158/0x1c4
         [<c0063fc4>] kthread+0xd4/0xe8
         [<c000eee8>] ret_from_fork+0x14/0x20
      
      stack backtrace:
      CPU: 1 PID: 927 Comm: irq/369-pinctrl Not tainted 3.14.43-rt42-00360-g96ff499-dirty #24
      [<c00177e0>] (unwind_backtrace) from [<c00130b0>] (show_stack+0x20/0x24)
      [<c00130b0>] (show_stack) from [<c0702958>] (dump_stack+0x84/0xd0)
      [<c0702958>] (dump_stack) from [<c008bcfc>] (print_irq_inversion_bug+0x1d0/0x21c)
      [<c008bcfc>] (print_irq_inversion_bug) from [<c008bf18>] (check_usage_backwards+0xb4/0x11c)
      [<c008bf18>] (check_usage_backwards) from [<c008cdd4>] (mark_lock+0x388/0x76c)
      [<c008cdd4>] (mark_lock) from [<c008df40>] (__lock_acquire+0x6d0/0x1f98)
      [<c008df40>] (__lock_acquire) from [<c0090040>] (lock_acquire+0x9c/0x158)
      [<c0090040>] (lock_acquire) from [<c07065c8>] (_raw_spin_lock+0x48/0x58)
      [<c07065c8>] (_raw_spin_lock) from [<c0375b54>] (pcs_irq_handle+0x48/0x9c)
      [<c0375b54>] (pcs_irq_handle) from [<c0375c5c>] (pcs_irq_handler+0x1c/0x28)
      [<c0375c5c>] (pcs_irq_handler) from [<c009c458>] (irq_forced_thread_fn+0x30/0x74)
      [<c009c458>] (irq_forced_thread_fn) from [<c009c784>] (irq_thread+0x158/0x1c4)
      [<c009c784>] (irq_thread) from [<c0063fc4>] (kthread+0xd4/0xe8)
      [<c0063fc4>] (kthread) from [<c000eee8>] (ret_from_fork+0x14/0x20)
      
      To fix it use IRQF_NO_THREAD to ensure that pcs irq will not be forced threaded.
      
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      c10372e6
    • Sergei Shtylyov's avatar
      sh-pfc: fix sparse GPIOs for R-Car SoCs · 61bb3aef
      Sergei Shtylyov authored
      The PFC driver causes the kernel to hang on the R-Car gen2 SoC based  boards
      when the CPU_ALL_PORT() macro is fixed to reflect the reality, i.e. when the
      GPIO space becomes actually sparse.  This happens because the _GP_GPIO() macro
      includes  an indexed initializer which causes the "holes" (array entries filled
      with all 0s) between the groups  of the existing GPIOs; and the driver can't
      cope with that.  There seems to  be no reason to use the indexed initializer,
      so we can remove the index specifier and so avoid the "holes".
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      61bb3aef
    • Linus Walleij's avatar
      pinctrl: abx500: remove strict mode · 27aa2e3a
      Linus Walleij authored
      Commit a21763a0
      "pinctrl: nomadik: activate strict mux mode"
      put all Nomadik pin controllers to strict mode. This was
      not good on the Snowball platform: the muxing of GPIOs to
      different pins is done with hogs in the DTS file, and then
      these GPIOs are used by offset, relying on hogs to mux the
      pins. Since that means the pin controller "owns" the pins
      and at the same time we have a GPIO user, this pin controller
      is by definition not strict.
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      27aa2e3a
  4. 19 Jul, 2015 8 commits
  5. 18 Jul, 2015 12 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 9d37e667
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "A small set of ARM fixes for -rc3, most of them not far off
        one-liners, with the exception of fixing the V7 cache invalidation for
        incoming SMP processors which was causing problems for SoCFPGA
        devices"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: fix __virt_to_idmap build error on !MMU
        ARM: invalidate L1 before enabling coherency
        ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check
        ARM: 8402/1: perf: Don't use of_node after putting it
        ARM: 8400/1: use virt_to_idmap to get phys_reset address
      9d37e667
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0e1dbccd
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two families of fixes:
      
         - Fix an FPU context related boot crash on newer x86 hardware with
           larger context sizes than what most people test.  To fix this
           without ugly kludges or extensive reverts we had to touch core task
           allocator, to allow x86 to determine the task size dynamically, at
           boot time.
      
           I've tested it on a number of x86 platforms, and I cross-built it
           to a handful of architectures:
      
                                              (warns)               (warns)
             testing     x86-64:  -git:  pass (    0),  -tip:  pass (    0)
             testing     x86-32:  -git:  pass (    0),  -tip:  pass (    0)
             testing        arm:  -git:  pass ( 1359),  -tip:  pass ( 1359)
             testing       cris:  -git:  pass ( 1031),  -tip:  pass ( 1031)
             testing       m32r:  -git:  pass ( 1135),  -tip:  pass ( 1135)
             testing       m68k:  -git:  pass ( 1471),  -tip:  pass ( 1471)
             testing       mips:  -git:  pass ( 1162),  -tip:  pass ( 1162)
             testing    mn10300:  -git:  pass ( 1058),  -tip:  pass ( 1058)
             testing     parisc:  -git:  pass ( 1846),  -tip:  pass ( 1846)
             testing      sparc:  -git:  pass ( 1185),  -tip:  pass ( 1185)
      
           ... so I hope the cross-arch impact 'none', as intended.
      
           (by Dave Hansen)
      
         - Fix various NMI handling related bugs unearthed by the big asm code
           rewrite and generally make the NMI code more robust and more
           maintainable while at it.  These changes are a bit late in the
           cycle, I hope they are still acceptable.
      
           (by Andy Lutomirski)"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86
        x86/fpu, sched: Dynamically allocate 'struct fpu'
        x86/entry/64, x86/nmi/64: Add CONFIG_DEBUG_ENTRY NMI testing code
        x86/nmi/64: Make the "NMI executing" variable more consistent
        x86/nmi/64: Minor asm simplification
        x86/nmi/64: Use DF to avoid userspace RSP confusing nested NMI detection
        x86/nmi/64: Reorder nested NMI checks
        x86/nmi/64: Improve nested NMI comments
        x86/nmi/64: Switch stacks on userspace NMI entry
        x86/nmi/64: Remove asm code that saves CR2
        x86/nmi: Enable nested do_nmi() handling for 64-bit kernels
      0e1dbccd
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dae57fb6
      Linus Torvalds authored
      Pull timer fix from Ingo Molnar:
       "Fix for a misplaced export that can cause build failures in certain
        (rare) Kconfig situations"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick: Move the export of tick_broadcast_oneshot_control to the proper place
      dae57fb6
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d65b78f5
      Linus Torvalds authored
      Pull scheduler fix from Ingo Molnar:
       "A oneliner rq throttling fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Test list head instead of list entry in throttle_cfs_rq()
      d65b78f5
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f79a17bf
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Mostly tooling fixes, plus a static key fix fixing /sys/devices/cpu/rdpmc"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tools: Really allow to specify custom CC, AR or LD
        perf auxtrace: Fix misplaced check for HAVE_SYNC_COMPARE_AND_SWAP_SUPPORT
        perf hists browser: Take the --comm, --dsos, etc filters into account
        perf symbols: Store if there is a filter in place
        x86, perf: Fix static_key bug in load_mm_cr4()
        tools: Copy lib/hweight.c from the kernel sources
        perf tools: Fix the detached tarball wrt rbtree copy
        perf thread_map: Fix the sizeof() calculation for map entries
        tools lib: Improve clean target
        perf stat: Fix shadow declaration of close
        perf tools: Fix lockup using 32-bit compat vdso
      f79a17bf
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 59ee7621
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "Misc irq fixes:
      
         - two driver fixes
         - a Xen regression fix
         - a nested irq thread crash fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gicv3-its: Fix mapping of LPIs to collections
        genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD
        genirq: Revert sparse irq locking around __cpu_up() and move it to x86 for now
        gpio/davinci: Fix race in installing chained irq handler
      59ee7621
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 3a26a5b1
      Linus Torvalds authored
      Merge fixes from Andrew Morton:
       "25 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (25 commits)
        lib/decompress: set the compressor name to NULL on error
        mm/cma_debug: correct size input to bitmap function
        mm/cma_debug: fix debugging alloc/free interface
        mm/page_owner: set correct gfp_mask on page_owner
        mm/page_owner: fix possible access violation
        fsnotify: fix oops in fsnotify_clear_marks_by_group_flags()
        /proc/$PID/cmdline: fixup empty ARGV case
        dma-debug: skip debug_dma_assert_idle() when disabled
        hexdump: fix for non-aligned buffers
        checkpatch: fix long line messages about patch context
        mm: clean up per architecture MM hook header files
        MAINTAINERS: uclinux-h8-devel is moderated for non-subscribers
        mailmap: update Sudeep Holla's email id
        Update Viresh Kumar's email address
        mm, meminit: suppress unused memory variable warning
        configfs: fix kernel infoleak through user-controlled format string
        include, lib: add __printf attributes to several function prototypes
        s390/hugetlb: add hugepages_supported define
        mm: hugetlb: allow hugepages_supported to be architecture specific
        revert "s390/mm: make hugepages_supported a boot time decision"
        ...
      3a26a5b1
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 8be57013
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "These are all from Filipe, and cover a few problems we've had reported
        on the list recently (along with ones he found on his own)"
      
      * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix file corruption after cloning inline extents
        Btrfs: fix order by which delayed references are run
        Btrfs: fix list transaction->pending_ordered corruption
        Btrfs: fix memory leak in the extent_same ioctl
        Btrfs: fix shrinking truncate when the no_holes feature is enabled
      8be57013
    • Linus Torvalds's avatar
      Merge tag 'rtc-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · dfe91c97
      Linus Torvalds authored
      Pull rtc fixes from Alexandre Belloni:
       "A few fixes for the RTC susbsystem for 4.2.
      
        The mt6397 driver was introduce in 4.2 so it is worth fixing before
        the final release.  I though the compilation warning for armada38x was
        fixed by akpm in commit f98b733e ("rtc-armada38x.c: remove unused
        local `flags'") but he actually missed some occurrences of the
        variables.  Since I received 4 patches for that, I think we can
        include it now.
      
        Summary:
         - fix mt6397 wakealarm creation
         - remove a compilation warning for armada38x that was forgotten"
      
      * tag 'rtc-v4.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
        rtc: armada38x: Remove unused variable from armada38x_rtc_set_time()
        rtc: mt6397: enable wakeup before registering rtc device
      dfe91c97
    • Linus Torvalds's avatar
      Merge tag 'dm-4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 3f8476fe
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
      
       - revert a request-based DM core change that caused IO latency to
         increase and adversely impact both throughput and system load
      
       - fix for a use after free bug in DM core's device cleanup
      
       - a couple DM btree removal fixes (used by dm-thinp)
      
       - a DM thinp fix for order-5 allocation failure
      
       - a DM thinp fix to not degrade to read-only metadata mode when in
         out-of-data-space mode for longer than the 'no_space_timeout'
      
       - fix a long-standing oversight in both dm-thinp and dm-cache by now
         exporting 'needs_check' in status if it was set in metadata
      
       - fix an embarrassing dm-cache busy-loop that caused worker threads to
         eat cpu even if no IO was actively being issued to the cache device
      
      * tag 'dm-4.2-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm cache: avoid calls to prealloc_free_structs() if possible
        dm cache: avoid preallocation if no work in writeback_some_dirty_blocks()
        dm cache: do not wake_worker() in free_migration()
        dm cache: display 'needs_check' in status if it is set
        dm thin: display 'needs_check' in status if it is set
        dm thin: stay in out-of-data-space mode once no_space_timeout expires
        dm: fix use after free crash due to incorrect cleanup sequence
        Revert "dm: only run the queue on completion if congested or no requests pending"
        dm btree: silence lockdep lock inversion in dm_btree_del()
        dm thin: allocate the cell_sort_array dynamically
        dm btree remove: fix bug in redistribute3
      3f8476fe
    • Ingo Molnar's avatar
      x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 · 5aaeb5c0
      Ingo Molnar authored
      Don't burden architectures without dynamic task_struct sizing
      with the overhead of dynamic sizing.
      
      Also optimize the x86 code a bit by caching task_struct_size.
      Acked-and-Tested-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Dave Hansen <dave@sr71.net>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1437128892-9831-3-git-send-email-mingo@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      5aaeb5c0
    • Dave Hansen's avatar
      x86/fpu, sched: Dynamically allocate 'struct fpu' · 0c8c0f03
      Dave Hansen authored
      The FPU rewrite removed the dynamic allocations of 'struct fpu'.
      But, this potentially wastes massive amounts of memory (2k per
      task on systems that do not have AVX-512 for instance).
      
      Instead of having a separate slab, this patch just appends the
      space that we need to the 'task_struct' which we dynamically
      allocate already.  This saves from doing an extra slab
      allocation at fork().
      
      The only real downside here is that we have to stick everything
      and the end of the task_struct.  But, I think the
      BUILD_BUG_ON()s I stuck in there should keep that from being too
      fragile.
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Dave Hansen <dave@sr71.net>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/1437128892-9831-2-git-send-email-mingo@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      0c8c0f03
  6. 17 Jul, 2015 5 commits