1. 03 Dec, 2015 3 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 2873d32f
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A collection of fixes from this series.  The most important here is a
        regression fix for an issue that some folks would hit in blk-merge.c,
        and the NVMe queue depth limit for the screwed up Apple "nvme"
        controller.
      
        In more detail, this pull request contains:
      
         - a set of fixes for null_blk, including a fix for a few corner cases
           where we could hang the device.  From Arianna and Paolo.
      
         - lightnvm:
              - A build improvement from Keith.
              - Update the qemu pci id detection from Matias.
              - Error handling fixes for leaks and other little fixes from
                Sudip and Wenwei.
      
         - fix from Eric where BLKRRPART would not return EBUSY for whole
           device mounts, only when partitions were mounted.
      
         - fix from Jan Kara, where EOF O_DIRECT reads would return
           negatively.
      
         - remove check for rq_mergeable() when checking limits for cloned
           requests.  The check doesn't make any sense.  It's assuming that
           since NOMERGE is set on the request that we don't have to
           recalculate limits since the request didn't change, but that's not
           true if the request has been redirected.  From Hannes.
      
         - correctly get the bio front segment value set for single segment
           bio's, fixing a BUG() in blk-merge.  From Ming"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        nvme: temporary fix for Apple controller reset
        null_blk: change type of completion_nsec to unsigned long
        null_blk: guarantee device restart in all irq modes
        null_blk: set a separate timer for each command
        blk-merge: fix computing bio->bi_seg_front_size in case of single segment
        direct-io: Fix negative return from dio read beyond eof
        block: Always check queue limits for cloned requests
        lightnvm: missing nvm_lock acquire
        lightnvm: unconverted ppa returned in get_bb_tbl
        lightnvm: refactor and change vendor id for qemu
        lightnvm: do device max sectors boundary check first
        lightnvm: fix ioctl memory leaks
        lightnvm: free memory when gennvm register fails
        lightnvm: Simplify config when disabled
        Return EBUSY from BLKRRPART for mounted whole-dev fs
      2873d32f
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · c041f087
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "During the merge window I added a new file that is used to filter
        trace events on pids.  It filters all events where only tasks with
        their pid in that file exists.  It also handles the sched_switch and
        sched_wakeup trace events where the current task does not have its pid
        in the file, but the task either being switched to or awaken does.
      
        Unfortunately, I forgot about sched_wakeup_new and sched_waking.  Both
        of these tracepoints use the same class as the sched_wakeup
        tracepoint, and they too should be included in what gets filtered by
        the set_event_pid file"
      
      * tag 'trace-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Add sched_wakeup_new and sched_waking tracepoints for pid filter
      c041f087
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · e69be8c2
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "There's one fix for the core here, we weren't reinitialising the
        actual transferred length in messages when they get reused which meant
        that we'd just keep adding to the length if a message is reused.  This
        has limited impact since it's only used in error handling cases but
        will really mess anything that tries to use it up when it triggers.
      
        As ever there's a small collection of driver specific fixes too"
      
      * tag 'spi-fix-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: bugfix: spi_message.transfer_length does not get reset
        spi: pl022: handle EPROBE_DEFER for dma
        spi: bcm63xx: use correct format string for printing a resource
        spi: mediatek: single device does not require cs_gpios
        spi: Add missing kerneldoc description for parameter
      e69be8c2
  2. 02 Dec, 2015 4 commits
  3. 01 Dec, 2015 8 commits
    • Steven Rostedt (Red Hat)'s avatar
      tracing: Add sched_wakeup_new and sched_waking tracepoints for pid filter · 0f72e37e
      Steven Rostedt (Red Hat) authored
      
      
      The set_event_pid filter relies on attaching to the sched_switch and
      sched_wakeup tracepoints to see if it should filter the tracing on schedule
      tracepoints. By adding the callbacks to sched_wakeup, pids in the
      set_event_pid file will trace the wakeups of those tasks with those pids.
      
      But sched_wakeup_new and sched_waking were missed. These two should also be
      traced. Luckily, these tracepoints share the same class as sched_wakeup
      which means they can use the same pre and post callbacks as sched_wakeup
      does.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      0f72e37e
    • Stephan Günther's avatar
      nvme: temporary fix for Apple controller reset · 1f390c1f
      Stephan Günther authored
      
      
      Recent patches added basic support for the Apple NVMe controller but
      still cause resets and data corruption on that particular controller
      when a specific pattern of read/flush commands occurs. Limiting the
      queue depth to 2 works around that issue.
      
      This patch enforces that limit only for the Apple controller and is
      considered a temporary fix until we find the root source of that
      problem.
      Signed-off-by: default avatarStephan Günther <guenther@tum.de>
      Signed-off-by: default avatarMaurice Leclaire <leclaire@in.tum.de>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      1f390c1f
    • Arianna Avanzini's avatar
      null_blk: change type of completion_nsec to unsigned long · dbac1175
      Arianna Avanzini authored
      
      
      This commit at least doubles the maximum value for
      completion_nsec. This helps in special cases where one wants/needs to
      emulate an extremely slow I/O (for example to spot bugs).
      Signed-off-by: default avatarPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: default avatarArianna Avanzini <avanzini@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      dbac1175
    • Arianna Avanzini's avatar
      null_blk: guarantee device restart in all irq modes · cf8ecc5a
      Arianna Avanzini authored
      
      
      In single-queue (block layer) mode,the function null_rq_prep_fn stops
      the device if alloc_cmd fails. Then, once stopped, the device must be
      restarted on the next command completion, so that the request(s) for
      which alloc_cmd failed can be requeued. Otherwise the device hangs.
      
      Unfortunately, device restart is currently performed only for delayed
      completions, i.e., in irqmode==2. This fact causes hangs, for the
      above reasons, with the other irqmodes in combination with single-queue
      block layer.
      
      This commits addresses this issue by making sure that, if stopped, the
      device is properly restarted for all irqmodes on completions.
      Signed-off-by: default avatarPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: default avatarArianna AVanzini <avanzini@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      cf8ecc5a
    • Paolo Valente's avatar
      null_blk: set a separate timer for each command · 3c395a96
      Paolo Valente authored
      
      
      For the Timer IRQ mode (i.e., when command completions are delayed),
      there is one timer for each CPU. Each of these timers
      . has a completion queue associated with it, containing all the
        command completions to be executed when the timer fires;
      . is set, and a new completion-to-execute is inserted into its
        completion queue, every time the dispatch code for a new command
        happens to be executed on the CPU related to the timer.
      
      This implies that, if the dispatch of a new command happens to be
      executed on a CPU whose timer has already been set, but has not yet
      fired, then the timer is set again, to the completion time of the
      newly arrived command. When the timer eventually fires, all its queued
      completions are executed.
      
      This way of handling delayed command completions entails the following
      problem: if more than one command completion is inserted into the
      queue of a timer before the timer fires, then the expiration time for
      the timer is moved forward every time each of these completions is
      enqueued. As a consequence, only the last completion enqueued enjoys a
      correct execution time, while all previous completions are unjustly
      delayed until the last completion is executed (and at that time they
      are executed all together).
      
      Specifically, if all the above completions are enqueued almost at the
      same time, then the problem is negligible. On the opposite end, if
      every completion is enqueued a while after the previous completion was
      enqueued (in the extreme case, it is enqueued only right before the
      timer would have expired), then every enqueued completion, except for
      the last one, experiences an inflated delay, proportional to the number
      of completions enqueued after it. In the end, commands, and thus I/O
      requests, may be completed at an arbitrarily lower rate than the
      desired one.
      
      This commit addresses this issue by replacing per-CPU timers with
      per-command timers, i.e., by associating an individual timer with each
      command.
      Signed-off-by: default avatarPaolo Valente <paolo.valente@unimore.it>
      Signed-off-by: default avatarArianna Avanzini <avanzini@google.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      3c395a96
    • Linus Torvalds's avatar
      Merge tag 'remoteproc-4.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc · 6a24e72d
      Linus Torvalds authored
      Pull remoteproc fixes from Ohad Ben-Cohen:
       "Two one-liners coming from Suman and Arnd"
      
      * tag 'remoteproc-4.4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc:
        remoteproc: fix memory leak of remoteproc ida cache layers
        remoteproc: avoid stack overflow in debugfs file
      6a24e72d
    • Geert Uytterhoeven's avatar
      pinctrl: sh-pfc: sh7734: Add missing cfg macro parameter to fix build · 48111b79
      Geert Uytterhoeven authored
      When building for SH7734:
      
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:586:1: error: macro "_GP_DATA" passed 5 arguments, but takes just 4
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:586:2: error: '_GP_DATA' undeclared here (not in a function)
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:586:1: error: macro "_GP_DATA" passed 5 arguments, but takes just 4
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:586:1: error: macro "_GP_DATA" passed 5 arguments, but takes just 4
          ...
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2389:1: error: macro "_GP_INOUTSEL" passed 5 arguments, but takes just 4
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2389:53: error: '_GP_INOUTSEL' undeclared here (not in a function)
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2389:2: warning: initialization makes integer from pointer without a cast [enabled by default]
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2389:2: warning: (near initialization for '(anonymous)[0]') [enabled by default]
          ...
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2416:1: error: macro "_GP_INDT" passed 5 arguments, but takes just 4
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2416:47: error: '_GP_INDT' undeclared here (not in a function)
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2416:2: warning: initialization makes integer from pointer without a cast [enabled by default]
          drivers/pinctrl/sh-pfc/pfc-sh7734.c:2416:2: warning: (near initialization for '(anonymous)[0]') [enabled by default]
          ...
      
      Add the missing "cfg" macro parameters to the sh7734-specific
      _GP_DATA(), _GP_INOUTSEL(), and _GP_INDT() macros to fix this.
      
      Fixes: 22768fc6
      
       ("pinctrl: sh-pfc: Add macros defining GP ports with config flags")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      48111b79
    • Linus Torvalds's avatar
      Merge tag 'mn10300-for-linus-v4.4-rc4' of... · 2255702d
      Linus Torvalds authored
      Merge tag 'mn10300-for-linus-v4.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull mn10300 fix from Guenter Roeck:
       "A single patch to fix mn10300 build failures"
      
      * tag 'mn10300-for-linus-v4.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        mn10300: Select CONFIG_HAVE_UID16 to fix build failure
      2255702d
  4. 30 Nov, 2015 13 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 9e5d25e8
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "I found two minor bugs while doing development on the ring buffer
        code.
      
        The first is something that's been there since its creation.  If a
        reader reads a page out of the ring buffer before there's any events
        on it, it can get an out of date timestamp for that event.  It may be
        off by a few microseconds, more if the first event gets discarded.
        The fix was to only update the reader time stamp when it actually sees
        an event on the page, instead of just reading the timestamp from the
        page even if it has no events on it.  That timestamp is still volatile
        until an event is present.
      
        The second bug is more recent.  Instead of passing around parameters a
        descriptor was made and the parameters are passed via a single
        descriptor.  This simplified the code a bit.  But there was one place
        that expected the parameter to be passed by value not reference (which
        a descriptor now does).  And it added to the length of the event,
        which may be ignored later, but the length should not have been
        increased.  The only real problem with this bug is that it may
        allocate more than was needed for the event"
      
      * tag 'trace-v4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ring-buffer: Put back the length if crossed page with add_timestamp
        ring-buffer: Update read stamp with first real commit on page
      9e5d25e8
    • Ming Lei's avatar
      blk-merge: fix computing bio->bi_seg_front_size in case of single segment · a88d32af
      Ming Lei authored
      When bio has only one physical segment, we should set bio's
      bi_seg_front_size as the real(final) size of the single segment.
      
      Fixes: 02e70742
      
      (blk-merge: fix blk_bio_segment_split)
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Tested-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      a88d32af
    • Jan Kara's avatar
      direct-io: Fix negative return from dio read beyond eof · 74cedf9b
      Jan Kara authored
      
      
      Assume a filesystem with 4KB blocks. When a file has size 1000 bytes and
      we issue direct IO read at offset 1024, blockdev_direct_IO() reads the
      tail of the last block and the logic for handling short DIO reads in
      dio_complete() results in a return value -24 (1000 - 1024) which
      obviously confuses userspace.
      
      Fix the problem by bailing out early once we sample i_size and can
      reliably check that direct IO read starts beyond i_size.
      Reported-by: default avatarAvi Kivity <avi@scylladb.com>
      Fixes: 9fe55eea
      
      
      CC: stable@vger.kernel.org
      CC: Steven Whitehouse <swhiteho@redhat.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      74cedf9b
    • Guenter Roeck's avatar
      mn10300: Select CONFIG_HAVE_UID16 to fix build failure · c86576ea
      Guenter Roeck authored
      mn10300 builds fail with
      
      fs/stat.c: In function 'cp_old_stat':
      fs/stat.c:163:2: error: 'old_uid_t' undeclared
      
      ipc/util.c: In function 'ipc64_perm_to_ipc_perm':
      ipc/util.c:540:2: error: 'old_uid_t' undeclared
      
      Select CONFIG_HAVE_UID16 and remove local definition of CONFIG_UID16
      to fix the problem.
      
      Fixes: fbc416ff
      
       ("arm64: fix building without CONFIG_UID16")
      Cc: Arnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarAcked-by: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      c86576ea
    • Grygorii Strashko's avatar
      gpio: omap: drop omap1 mpuio specific irq_mask/unmask callbacks · 000255b7
      Grygorii Strashko authored
      Originally OMAP MPUIO GPIO irqchip was implemented using Generic irq
      chip, but after set of reworks Generic irq chip code was replaced by
      common OMAP GPIO implementation and finally removed by
      commit d2d05c65 ("gpio: omap: Fix regression for MPUIO interrupts").
      Unfortunately, above commit left .irq_mask/unmask callbacks assigned
      as below for MPUIO GPIO case:
      	irqc->irq_mask = irq_gc_mask_set_bit;
      	irqc->irq_unmask = irq_gc_mask_clr_bit;
      
      This now causes boot failure on OMAP1 platforms, after
      commit 450fa54c ("gpio: omap: convert to use generic irq handler")
      which forces these callbacks to be called during GPIO IRQs mapping
      from gpiochip_irq_map:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = c0004000
      [00000000] *pgd=00000000
      Internal error: Oops: 75 [#1] ARM
      Modules linked in:
      CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.0-rc1-e3-los_afe0c+-00002-g25379c0-dirty #1
      Hardware name: Amstrad E3 (Delta)
      task: c1836000 ti: c1838000 task.ti: c1838000
      PC is at irq_gc_mask_set_bit+0x1c/0x60
      LR is at __irq_do_set_handler+0x118/0x15c
      pc : [<c004848c>]    lr : [<c0047d4c>]    psr: 600000d3
      sp : c1839c90  ip : c1862c64  fp : c1839c9c
      r10: 00000000  r9 : c0411950  r8 : c0411bbc
      r7 : 00000000  r6 : c185c310  r5 : c00444e8  r4 : c185c300
      r3 : c1854b50  r2 : 00000000  r1 : 00000000  r0 : c185c310
      Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
      Control: 0000317f  Table: 10004000  DAC: 00000057
      Process swapper (pid: 1, stack limit = 0xc1838190)
      Stack: (0xc1839c90 to 0xc183a000)
      
      [...]
      
      Backtrace:
      [<c0048470>] (irq_gc_mask_set_bit) from [<c0047d4c>] (__irq_do_set_handler+0x118/0x15c)
      [<c0047c34>] (__irq_do_set_handler) from [<c0047dd4>] (__irq_set_handler+0x44/0x5c)
       r6:00000000 r5:c00444e8 r4:c185c300
      [<c0047d90>] (__irq_set_handler) from [<c0047e1c>] (irq_set_chip_and_handler_name+0x30/0x34)
       r7:00000050 r6:00000000 r5:c00444e8 r4:00000050
      [<c0047dec>] (irq_set_chip_and_handler_name) from [<c01b345c>] (gpiochip_irq_map+0x3c/0x8c)
       r7:00000050 r6:00000000 r5:00000050 r4:c1862c64
      [<c01b3420>] (gpiochip_irq_map) from [<c0049670>] (irq_domain_associate+0x7c/0x1c4)
       r5:c185c310 r4:c185cb00
      [<c00495f4>] (irq_domain_associate) from [<c0049894>] (irq_domain_add_simple+0x98/0xc0)
       r8:c0411bbc r7:c185cb00 r6:00000050 r5:00000010 r4:00000001
      [<c00497fc>] (irq_domain_add_simple) from [<c01b3328>] (_gpiochip_irqchip_add+0x64/0x10c)
       r7:c1862c64 r6:c0419280 r5:c1862c64 r4:c1854b50
      [<c01b32c4>] (_gpiochip_irqchip_add) from [<c01b79f4>] (omap_gpio_probe+0x2fc/0x63c)
       r5:c1854b50 r4:c1862c10
      [<c01b76f8>] (omap_gpio_probe) from [<c01fcf58>] (platform_drv_probe+0x2c/0x64)
       r10:00000000 r9:c03e45e8 r8:00000000 r7:c0419294 r6:c0411984 r5:c0419294
       r4:c0411950
      [<c01fcf2c>] (platform_drv_probe) from [<c01fb668>] (really_probe+0x160/0x29c)
      
      Hence, fix it by remove obsolete callbacks assignment. After this
      change 	omap_gpio_mask_irq()/omap_gpio_unmask_irq() will be used
      for MPUIO IRQs masking, but this now happens anyway from
      omap_gpio_irq_startup/shutdown().
      
      Cc: Tony Lindgren <tony@atomide.com>
      Fixes: commit d2d05c65
      
       ("gpio: omap: Fix regression for MPUIO interrupts")
      Reported-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: default avatarSantosh Shilimkar <ssantosh@kernel.org>
      Tested-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      000255b7
    • Mark Brown's avatar
      Merge remote-tracking branches 'spi/fix/bcm63xx', 'spi/fix/doc',... · a057d737
      Mark Brown authored
      Merge remote-tracking branches 'spi/fix/bcm63xx', 'spi/fix/doc', 'spi/fix/mediatek' and 'spi/fix/pl022' into spi-linus
      a057d737
    • Mark Brown's avatar
      9f28b3c6
    • Linus Torvalds's avatar
      Linux 4.4-rc3 · 31ade3b8
      Linus Torvalds authored
      31ade3b8
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · c5bc1c93
      Linus Torvalds authored
      Pull nouveau and radeon fixes from Dave Airlie:
       "Just some nouveau and radeon/amdgpu fixes.
      
        The nouveau fixes look large as the firmware context files are
        regenerated, but the actual change is quite small"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon: make some dpm errors debug only
        drm/nouveau/volt/pwm/gk104: fix an off-by-one resulting in the voltage not being set
        drm/nouveau/nvif: allow userspace access to its own client object
        drm/nouveau/gr/gf100-: fix oops when calling zbc methods
        drm/nouveau/gr/gf117-: assume no PPC if NV_PGRAPH_GPC_GPM_PD_PES_TPC_ID_MASK is zero
        drm/nouveau/gr/gf117-: read NV_PGRAPH_GPC_GPM_PD_PES_TPC_ID_MASK from correct GPC
        drm/nouveau/gr/gf100-: split out per-gpc address calculation macro
        drm/nouveau/bios: return actual size of the buffer retrieved via _ROM
        drm/nouveau/instmem: protect instobj list with a spinlock
        drm/nouveau/pci: enable c800 magic for some unknown Samsung laptop
        drm/nouveau/pci: enable c800 magic for Clevo P157SM
        drm/radeon: make rv770_set_sw_state failures non-fatal
        drm/amdgpu: move dependency handling out of atomic section v2
        drm/amdgpu: optimize scheduler fence handling
        drm/amdgpu: remove vm->mutex
        drm/amdgpu: add mutex for ba_va->valids/invalids
        drm/amdgpu: adapt vce session create interface changes
        drm/amdgpu: vce use multiple cache surface starting from stoney
        drm/amdgpu: reset vce trap interrupt flag
      c5bc1c93
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 818aba30
      Linus Torvalds authored
      Pull RTC fixes from Alexandre Belloni:
       "Two fixes for the ds1307 alarm and wakeup"
      
      * tag 'rtc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
        rtc: ds1307: fix alarm reading at probe time
        rtc: ds1307: fix kernel splat due to wakeup irq handling
      818aba30
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 00fd6a71
      Linus Torvalds authored
      Pull MIPS fix from Ralf Baechle:
       "Just a fix for empty loops that may be removed by non-antique GCC"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Fix delay loops which may be removed by GCC.
      00fd6a71
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · d72aee78
      Linus Torvalds authored
      Pull m68k fixes from Geert Uytterhoeven:
       "Summary:
      
         - Add missing initialization of max_pfn, which is needed to make
           selftests/vm/mlock2-tests succeed,
      
         - Wire up new mlock2 syscall"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Wire up mlock2
        m68knommu: Add missing initialization of max_pfn and {min,max}_low_pfn
        m68k/mm: sun3 - Add missing initialization of max_pfn and {min,max}_low_pfn
        m68k/mm: m54xx - Add missing initialization of max_pfn
        m68k/mm: motorola - Add missing initialization of max_pfn
      d72aee78
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 04527fda
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Just two changes this time around:
      
         - wire up the new mlock2 syscall added during the last merge window
      
         - fix a build problem with certain configurations provoked by making
           CONFIG_OF user selectable"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8454/1: OF implies OF_FLATTREE
        ARM: wire up mlock2 syscall
      04527fda
  5. 29 Nov, 2015 12 commits
    • Hannes Reinecke's avatar
      block: Always check queue limits for cloned requests · bf4e6b4e
      Hannes Reinecke authored
      
      
      When a cloned request is retried on other queues it always needs
      to be checked against the queue limits of that queue.
      Otherwise the calculations for nr_phys_segments might be wrong,
      leading to a crash in scsi_init_sgtable().
      
      To clarify this the patch renames blk_rq_check_limits()
      to blk_cloned_rq_check_limits() and removes the symbol
      export, as the new function should only be used for
      cloned requests and never exported.
      
      Cc: Mike Snitzer <snitzer@redhat.com>
      Cc: Ewan Milne <emilne@redhat.com>
      Cc: Jeff Moyer <jmoyer@redhat.com>
      Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
      Fixes: e2a60da7
      
       ("block: Clean up special command handling logic")
      Cc: stable@vger.kernel.org # 3.7+
      Acked-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      bf4e6b4e
    • Wenwei Tao's avatar
      lightnvm: missing nvm_lock acquire · d0a712ce
      Wenwei Tao authored
      
      
      To avoid race conditions, traverse dev, media manager,
      and target lists and also register, unregister entries
      to/from them, should be always under the nvm_lock control.
      Signed-off-by: default avatarWenwei Tao <ww.tao0320@gmail.com>
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      d0a712ce
    • Matias Bjørling's avatar
      lightnvm: unconverted ppa returned in get_bb_tbl · 08236c6b
      Matias Bjørling authored
      
      
      The get_bb_tbl function takes ppa as a generic address, which is
      converted to the ppa device address within the device driver. When
      the update_bbtbl callback is called from get_bb_tbl, the device
      specific ppa is used, instead of the generic ppa.
      
      Make sure to pass the generic ppa.
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      08236c6b
    • Matias Bjørling's avatar
      lightnvm: refactor and change vendor id for qemu · 09f2e716
      Matias Bjørling authored
      
      
      The QEMU NVMe implementation uses Intel vendor, Intel device id, and the
      first vendor specific byte to identify a LightNVM compatible nvme
      instance.
      
      Instead of using the Intel specific, use a preallocated from CNEX Labs
      instead. This lets us uniquely identify a QEMU lightnvm device without
      breaking other vendor specific work in the qemu device driver.
      Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      09f2e716
    • Wenwei Tao's avatar
      lightnvm: do device max sectors boundary check first · d160147b
      Wenwei Tao authored
      
      
      do device max_phys_sect boundary check first, otherwise
      we will allocate dma_pools for devices whose max sectors
      are beyond lightnvm support and register them.
      Signed-off-by: default avatarWenwei Tao <ww.tao0320@gmail.com>
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      d160147b
    • Sudip Mukherjee's avatar
      lightnvm: fix ioctl memory leaks · 76e25081
      Sudip Mukherjee authored
      
      
      If copy_to_user() fails we returned error but we missed releasing
      devices.
      Signed-off-by: default avatarSudip Mukherjee <sudip@vectorindia.org>
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      76e25081
    • Wenwei Tao's avatar
      lightnvm: free memory when gennvm register fails · 8261bd48
      Wenwei Tao authored
      
      
      free allocated nvm block and gennvm lun structures when
      gennvm register fails, otherwise it will cause memory leak.
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      8261bd48
    • Keith Busch's avatar
      lightnvm: Simplify config when disabled · c4699e70
      Keith Busch authored
      
      
      We shouldn't compile an object file to get empty implementations;
      conforms to linux coding style on conditional compilation.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      c4699e70
    • Vladimir Zapolskiy's avatar
      gpiolib: fix oops, if gpio name is NULL · d06165b3
      Vladimir Zapolskiy authored
      Commit c0017ed7
      
       ("gpio: Introduce gpio descriptor 'name'") causes
      OOPS on boot on LPC32xx boards:
      
          Unable to handle kernel NULL pointer dereference at virtual address 00000000
          CPU: 0 PID: 1 Comm: swapper Not tainted 4.3.0+ #707
          Hardware name: LPC32XX SoC (Flattened Device Tree)
          task: c381baa0 ti: c381e000 task.ti: c381e000
          PC is at strcmp+0x10/0x40
          LR is at gpiochip_add+0x3d0/0x4d4
          pc : [<>]    lr : [<>]    psr: a0000093
          sp : c381fd60  ip : c381fd70  fp : c381fd6c
      
          [snip]
      
          Backtrace:
          [<>] (strcmp) from [<>] (gpiochip_add+0x3d0/0x4d4)
          [<>] (gpiochip_add) from [<>] (lpc32xx_gpio_probe+0x44/0x60)
          [<>] (lpc32xx_gpio_probe) from [<>] (platform_drv_probe+0x40/0x8c)
          [<>] (platform_drv_probe) from [<>] (driver_probe_device+0x110/0x294)
          [<>] (driver_probe_device) from [<>] (__driver_attach+0x70/0x94)
          [<>] (__driver_attach) from [<>] (bus_for_each_dev+0x74/0x98)
          [<>] (bus_for_each_dev) from [<>] (driver_attach+0x20/0x28)
          [<>] (driver_attach) from [<>] (bus_add_driver+0xd4/0x1f0)
          [<>] (bus_add_driver) from [<>] (driver_register+0xa4/0xe8)
          [<>] (driver_register) from [<>] (__platform_driver_register+0x38/0x4c)
          [<>] (__platform_driver_register) from [<>] (lpc32xx_gpio_driver_init+0x18/0x20)
          [<>] (lpc32xx_gpio_driver_init) from [<>] (do_one_initcall+0x108/0x1c8)
          [<>] (do_one_initcall) from [<>] (kernel_init_freeable+0x10c/0x1d4)
          [<>] (kernel_init_freeable) from [<>] (kernel_init+0x10/0xec)
          [<>] (kernel_init) from [<>] (ret_from_fork+0x14/0x24)
      
      This is caused by the fact that at the moment some GPIO names are set
      to NULL, there is a hole in linear representation of one GPI bank, see
      drivers/gpio/gpio-lpc32xx.c / gpi_p3_names[] for details.
      
      The same problem most probably affects also gpio-cs5535.c, see
      cs5535_gpio_names[].
      Signed-off-by: default avatarVladimir Zapolskiy <vz@mleia.com>
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      d06165b3
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 36511e86
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       - fix tcm-user backend driver expired cmd time processing (agrover)
       - eliminate kref_put_spinlock_irqsave() for I/O completion (bart)
       - fix iscsi login kthread failure case hung task regression (nab)
       - fix COMPARE_AND_WRITE completion use-after-free race (nab)
       - fix COMPARE_AND_WRITE with SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC non zero
         SGL offset data corruption.  (Jan + Doug)
       - fix >= v4.4-rc1 regression for tcm_qla2xxx enable configfs attribute
         (Himanshu + HCH)
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        target/stat: print full t10_wwn.model buffer
        target: fix COMPARE_AND_WRITE non zero SGL offset data corruption
        qla2xxx: Fix regression introduced by target configFS changes
        kref: Remove kref_put_spinlock_irqsave()
        target: Invoke release_cmd() callback without holding a spinlock
        target: Fix race for SCF_COMPARE_AND_WRITE_POST checking
        iscsi-target: Fix rx_login_comp hang after login failure
        iscsi-target: return -ENOMEM instead of -1 in case of failed kmalloc()
        target/user: Do not set unused fields in tcmu_ops
        target/user: Fix time calc in expired cmd processing
      36511e86
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 75a29ec1
      Linus Torvalds authored
      Pull thermal management fixes from Zhang Rui:
       "Specifics:
      
       - several fixes and cleanups on Rockchip thermal drivers.
      
       - add the missing support of RK3368 SoCs in Rockchip driver.
      
       - small fixes on of-thermal, power_allocator, rcar driver, IMX, and
         QCOM drivers, and also compilation fixes, on thermal.h, when thermal
         is not selected"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        imx: thermal: use CPU temperature grade info for thresholds
        thermal: fix thermal_zone_bind_cooling_device prototype
        Revert "thermal: qcom_spmi: allow compile test"
        thermal: rcar_thermal: remove redundant operation
        thermal: of-thermal: Reduce log level for message when can't fine thermal zone
        thermal: power_allocator: Use temperature reading from tz
        thermal: rockchip: Support the RK3368 SoCs in thermal driver
        thermal: rockchip: consistently use int for temperatures
        thermal: rockchip: Add the sort mode for adc value increment or decrement
        thermal: rockchip: improve the conversion function
        thermal: rockchip: trivial: fix typo in commit
        thermal: rockchip: better to compatible the driver for different SoCs
        dt-bindings: rockchip-thermal: Support the RK3368 SoCs compatible
      75a29ec1
    • David Disseldorp's avatar
      target/stat: print full t10_wwn.model buffer · 8f903539
      David Disseldorp authored
      
      
      Cut 'n paste error saw it only process sizeof(t10_wwn.vendor) characters.
      Signed-off-by: default avatarDavid Disseldorp <ddiss@suse.de>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      8f903539