commit 1f3d0f528ecf863b11a0e594207ea925736cb791
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Wed Jun 15 09:29:33 2016 +0200

    Linux 3.12.61

commit b85483c524e3f8dda532b5c13b1fb22a5404554c
Author: Loic Poulain <loic.poulain@intel.com>
Date:   Mon Apr 4 10:48:13 2016 +0200

    Bluetooth: hci_ldisc: Fix null pointer derefence in case of early data
    
    commit 84cb3df02aea4b00405521e67c4c67c2d525c364 upstream.
    
    HCI_UART_PROTO_SET flag is set before hci_uart_set_proto call. If we
    receive data from tty layer during this procedure, proto pointer may
    not be assigned yet, leading to null pointer dereference in rx method
    hci_uart_tty_receive.
    
    This patch fixes this issue by introducing HCI_UART_PROTO_READY flag in
    order to avoid any proto operation before proto opening and assignment.
    
    Signed-off-by: Loic Poulain <loic.poulain@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 94e3230bf179f9700e160c0f4a05305cc5299a62
Author: Wei-Ning Huang <wnhuang@chromium.org>
Date:   Tue Mar 8 11:40:06 2016 +0800

    Bluetooth: btmrvl_sdio: fix firmware activation failure
    
    commit 9a01242dc7fc4d5fe3f722afbf35b33aa414cd2f upstream.
    
    In some case, the btmrvl_sdio firmware would fail to active within the
    polling time. Increase the polling interval to 100 msec to fix the
    issue.
    
    Signed-off-by: Wei-Ning Huang <wnhuang@chromium.org>
    Signed-off-by: Wei-Ning Huang <wnhuang@google.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 480268431f91855d05c419807793dd8b25ee4168
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sat Feb 27 14:52:22 2016 +0000

    pch_phub: return -ENODATA if ROM can't be mapped
    
    commit a75fa128236bc2fdaa5e412145cbd577e42e14c2 upstream.
    
    The error return err is not initialized for the case when pci_map_rom
    fails and no ROM can me mapped.  Fix this by setting ret to -ENODATA;
    (this is the same error value that is returned if the ROM data is
    successfully mapped but does not match the expected ROM signature.).
    
    Issue found from static code analysis using CoverityScan.
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 174c1dfbfc54facaa6fd45c28f7ae9adfe6d0f78
Author: Dan Bogdan Nechita <dan.bogdan.nechita@gmail.com>
Date:   Tue Feb 23 11:48:45 2016 +0200

    misc: ad525x_dpot: Fix the enabling of the "otpXen" attributes
    
    commit 1bb850a1b7f68b66361e658e334f9fdf8231f17d upstream.
    
    Currently writing the attributes with "echo" will result in comparing:
    "enabled\n" with "enabled\0" and attribute is always set to false.
    
    Use the sysfs_streq() instead because it treats both NUL and
    new-line-then-NUL as equivalent string terminations.
    
    Signed-off-by: Dan Bogdan Nechita <dan.bogdan.nechita@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 77b3964ccf07da318dcdec09d6d211ca2e793813
Author: Dave Chinner <dchinner@redhat.com>
Date:   Wed May 18 13:54:23 2016 +1000

    xfs: skip stale inodes in xfs_iflush_cluster
    
    commit 7d3aa7fe970791f1a674b14572a411accf2f4d4e upstream.
    
    We don't write back stale inodes so we should skip them in
    xfs_iflush_cluster, too.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 44597cbfb6b6c3a8429ccbadc1bc57c9a2691ba9
Author: Dave Chinner <dchinner@redhat.com>
Date:   Wed May 18 13:54:22 2016 +1000

    xfs: fix inode validity check in xfs_iflush_cluster
    
    commit 51b07f30a71c27405259a0248206ed4e22adbee2 upstream.
    
    Some careless idiot(*) wrote crap code in commit 1a3e8f3 ("xfs:
    convert inode cache lookups to use RCU locking") back in late 2010,
    and so xfs_iflush_cluster checks the wrong inode for whether it is
    still valid under RCU protection. Fix it to lock and check the
    correct inode.
    
    (*) Careless-idiot: Dave Chinner <dchinner@redhat.com>
    
    Discovered-by: Brain Foster <bfoster@redhat.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b431dee1be65181e09dd5f9e03366eebc1ab66d9
Author: Dave Chinner <dchinner@redhat.com>
Date:   Wed May 18 13:53:42 2016 +1000

    xfs: xfs_iflush_cluster fails to abort on error
    
    commit b1438f477934f5a4d5a44df26f3079a7575d5946 upstream.
    
    When a failure due to an inode buffer occurs, the error handling
    fails to abort the inode writeback correctly. This can result in the
    inode being reclaimed whilst still in the AIL, leading to
    use-after-free situations as well as filesystems that cannot be
    unmounted as the inode log items left in the AIL never get removed.
    
    Fix this by ensuring fatal errors from xfs_imap_to_bp() result in
    the inode flush being aborted correctly.
    
    [js] 3.12 needs EAGAIN, not -EAGAIN
    
    Reported-by: Shyam Kaushik <shyam@zadarastorage.com>
    Diagnosed-by: Shyam Kaushik <shyam@zadarastorage.com>
    Tested-by: Shyam Kaushik <shyam@zadarastorage.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 1b3466c61da00edf9736b94fc0c1eef1891b91ea
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu May 26 15:16:25 2016 -0700

    dma-debug: avoid spinlock recursion when disabling dma-debug
    
    commit 3017cd63f26fc655d56875aaf497153ba60e9edf upstream.
    
    With netconsole (at least) the pr_err("...  disablingn") call can
    recurse back into the dma-debug code, where it'll try to grab
    free_entries_lock again.  Avoid the problem by doing the printk after
    dropping the lock.
    
    Link: http://lkml.kernel.org/r/1463678421-18683-1-git-send-email-ville.syrjala@linux.intel.com
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e7551ef53f24b82b7bfd4fe38b156499025e6010
Author: Nicolai Stange <nicstange@gmail.com>
Date:   Thu May 5 19:46:19 2016 -0400

    ext4: silence UBSAN in ext4_mb_init()
    
    commit 935244cd54b86ca46e69bc6604d2adfb1aec2d42 upstream.
    
    Currently, in ext4_mb_init(), there's a loop like the following:
    
      do {
        ...
        offset += 1 << (sb->s_blocksize_bits - i);
        i++;
      } while (i <= sb->s_blocksize_bits + 1);
    
    Note that the updated offset is used in the loop's next iteration only.
    
    However, at the last iteration, that is at i == sb->s_blocksize_bits + 1,
    the shift count becomes equal to (unsigned)-1 > 31 (c.f. C99 6.5.7(3))
    and UBSAN reports
    
      UBSAN: Undefined behaviour in fs/ext4/mballoc.c:2621:15
      shift exponent 4294967295 is too large for 32-bit type 'int'
      [...]
      Call Trace:
       [<ffffffff818c4d25>] dump_stack+0xbc/0x117
       [<ffffffff818c4c69>] ? _atomic_dec_and_lock+0x169/0x169
       [<ffffffff819411ab>] ubsan_epilogue+0xd/0x4e
       [<ffffffff81941cac>] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254
       [<ffffffff81941ab1>] ? __ubsan_handle_load_invalid_value+0x158/0x158
       [<ffffffff814b6dc1>] ? kmem_cache_alloc+0x101/0x390
       [<ffffffff816fc13b>] ? ext4_mb_init+0x13b/0xfd0
       [<ffffffff814293c7>] ? create_cache+0x57/0x1f0
       [<ffffffff8142948a>] ? create_cache+0x11a/0x1f0
       [<ffffffff821c2168>] ? mutex_lock+0x38/0x60
       [<ffffffff821c23ab>] ? mutex_unlock+0x1b/0x50
       [<ffffffff814c26ab>] ? put_online_mems+0x5b/0xc0
       [<ffffffff81429677>] ? kmem_cache_create+0x117/0x2c0
       [<ffffffff816fcc49>] ext4_mb_init+0xc49/0xfd0
       [...]
    
    Observe that the mentioned shift exponent, 4294967295, equals (unsigned)-1.
    
    Unless compilers start to do some fancy transformations (which at least
    GCC 6.0.0 doesn't currently do), the issue is of cosmetic nature only: the
    such calculated value of offset is never used again.
    
    Silence UBSAN by introducing another variable, offset_incr, holding the
    next increment to apply to offset and adjust that one by right shifting it
    by one position per loop iteration.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=114701
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112161
    
    Signed-off-by: Nicolai Stange <nicstange@gmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit f20120a5dec561a22c86ae63950e693aa477b347
Author: Nicolai Stange <nicstange@gmail.com>
Date:   Thu May 5 17:38:03 2016 -0400

    ext4: address UBSAN warning in mb_find_order_for_block()
    
    commit b5cb316cdf3a3f5f6125412b0f6065185240cfdc upstream.
    
    Currently, in mb_find_order_for_block(), there's a loop like the following:
    
      while (order <= e4b->bd_blkbits + 1) {
        ...
        bb += 1 << (e4b->bd_blkbits - order);
      }
    
    Note that the updated bb is used in the loop's next iteration only.
    
    However, at the last iteration, that is at order == e4b->bd_blkbits + 1,
    the shift count becomes negative (c.f. C99 6.5.7(3)) and UBSAN reports
    
      UBSAN: Undefined behaviour in fs/ext4/mballoc.c:1281:11
      shift exponent -1 is negative
      [...]
      Call Trace:
       [<ffffffff818c4d35>] dump_stack+0xbc/0x117
       [<ffffffff818c4c79>] ? _atomic_dec_and_lock+0x169/0x169
       [<ffffffff819411bb>] ubsan_epilogue+0xd/0x4e
       [<ffffffff81941cbc>] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254
       [<ffffffff81941ac1>] ? __ubsan_handle_load_invalid_value+0x158/0x158
       [<ffffffff816e93a0>] ? ext4_mb_generate_from_pa+0x590/0x590
       [<ffffffff816502c8>] ? ext4_read_block_bitmap_nowait+0x598/0xe80
       [<ffffffff816e7b7e>] mb_find_order_for_block+0x1ce/0x240
       [...]
    
    Unless compilers start to do some fancy transformations (which at least
    GCC 6.0.0 doesn't currently do), the issue is of cosmetic nature only: the
    such calculated value of bb is never used again.
    
    Silence UBSAN by introducing another variable, bb_incr, holding the next
    increment to apply to bb and adjust that one by right shifting it by one
    position per loop iteration.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=114701
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112161
    
    Signed-off-by: Nicolai Stange <nicstange@gmail.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 57a19e65fc1deed7d5ee5dae5bb42239e31a0f1a
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Apr 30 00:48:54 2016 -0400

    ext4: fix hang when processing corrupted orphaned inode list
    
    commit c9eb13a9105e2e418f72e46a2b6da3f49e696902 upstream.
    
    If the orphaned inode list contains inode #5, ext4_iget() returns a
    bad inode (since the bootloader inode should never be referenced
    directly).  Because of the bad inode, we end up processing the inode
    repeatedly and this hangs the machine.
    
    This can be reproduced via:
    
       mke2fs -t ext4 /tmp/foo.img 100
       debugfs -w -R "ssv last_orphan 5" /tmp/foo.img
       mount -o loop /tmp/foo.img /mnt
    
    (But don't do this if you are using an unpatched kernel if you care
    about the system staying functional.  :-)
    
    This bug was found by the port of American Fuzzy Lop into the kernel
    to find file system problems[1].  (Since it *only* happens if inode #5
    shows up on the orphan list --- 3, 7, 8, etc. won't do it, it's not
    surprising that AFL needed two hours before it found it.)
    
    [1] http://events.linuxfoundation.org/sites/events/files/slides/AFL%20filesystem%20fuzzing%2C%20Vault%202016_0.pdf
    
    Reported by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2408770d2b5cad295e386333a22dcf10ad3a546f
Author: Lyude <cpaul@redhat.com>
Date:   Thu May 12 10:56:59 2016 -0400

    drm/fb_helper: Fix references to dev->mode_config.num_connector
    
    commit 255f0e7c418ad95a4baeda017ae6182ba9b3c423 upstream.
    
    During boot, MST hotplugs are generally expected (even if no physical
    hotplugging occurs) and result in DRM's connector topology changing.
    This means that using num_connector from the current mode configuration
    can lead to the number of connectors changing under us. This can lead to
    some nasty scenarios in fbcon:
    
    - We allocate an array to the size of dev->mode_config.num_connectors.
    - MST hotplug occurs, dev->mode_config.num_connectors gets incremented.
    - We try to loop through each element in the array using the new value
      of dev->mode_config.num_connectors, and end up going out of bounds
      since dev->mode_config.num_connectors is now larger then the array we
      allocated.
    
    fb_helper->connector_count however, will always remain consistent while
    we do a modeset in fb_helper.
    
    Note: This is just polish for 4.7, Dave Airlie's drm_connector
    refcounting fixed these bugs for real. But it's good enough duct-tape
    for stable kernel backporting, since backporting the refcounting
    changes is way too invasive.
    
    Signed-off-by: Lyude <cpaul@redhat.com>
    [danvet: Clarify why we need this. Also remove the now unused "dev"
    local variable to appease gcc.]
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/1463065021-18280-3-git-send-email-cpaul@redhat.com
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ab548aa85b0d2d9a7339f745aca979b2852d49fc
Author: Itai Handler <itai_handler@hotmail.com>
Date:   Tue Nov 3 00:20:56 2015 +0200

    drm/gma500: Fix possible out of bounds read
    
    commit 7ccca1d5bf69fdd1d3c5fcf84faf1659a6e0ad11 upstream.
    
    Fix possible out of bounds read, by adding missing comma.
    The code may read pass the end of the dsi_errors array
    when the most significant bit (bit #31) in the intr_stat register
    is set.
    This bug has been detected using CppCheck (static analysis tool).
    
    Signed-off-by: Itai Handler <itai_handler@hotmail.com>
    Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit ed93bd2a7c53a1d131e8fe9df743bc0278221569
Author: Tomáš Trnka <ttrnka@mail.muni.cz>
Date:   Fri May 20 16:41:10 2016 +0200

    sunrpc: fix stripping of padded MIC tokens
    
    commit c0cb8bf3a8e4bd82e640862cdd8891400405cb89 upstream.
    
    The length of the GSS MIC token need not be a multiple of four bytes.
    It is then padded by XDR to a multiple of 4 B, but unwrap_integ_data()
    would previously only trim mic.len + 4 B. The remaining up to three
    bytes would then trigger a check in nfs4svc_decode_compoundargs(),
    leading to a "garbage args" error and mount failure:
    
    nfs4svc_decode_compoundargs: compound not properly padded!
    nfsd: failed to decode arguments!
    
    This would prevent older clients using the pre-RFC 4121 MIC format
    (37-byte MIC including a 9-byte OID) from mounting exports from v3.9+
    servers using krb5i.
    
    The trimming was introduced by commit 4c190e2f913f ("sunrpc: trim off
    trailing checksum before returning decrypted or integrity authenticated
    buffer").
    
    Fixes: 4c190e2f913f "unrpc: trim off trailing checksum..."
    Signed-off-by: Tomáš Trnka <ttrnka@mail.muni.cz>
    Acked-by: Jeff Layton <jlayton@poochiereds.net>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 5d2a92ec2be6ff6b3d3bc9fc7333dfd982b9fbb6
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Tue May 10 16:11:00 2016 +0100

    xen/events: Don't move disabled irqs
    
    commit f0f393877c71ad227d36705d61d1e4062bc29cf5 upstream.
    
    Commit ff1e22e7a638 ("xen/events: Mask a moving irq") open-coded
    irq_move_irq() but left out checking if the IRQ is disabled. This broke
    resuming from suspend since it tries to move a (disabled) irq without
    holding the IRQ's desc->lock. Fix it by adding in a check for disabled
    IRQs.
    
    The resulting stacktrace was:
    kernel BUG at /build/linux-UbQGH5/linux-4.4.0/kernel/irq/migration.c:31!
    invalid opcode: 0000 [#1] SMP
    Modules linked in: xenfs xen_privcmd ...
    CPU: 0 PID: 9 Comm: migration/0 Not tainted 4.4.0-22-generic #39-Ubuntu
    Hardware name: Xen HVM domU, BIOS 4.6.1-xs125180 05/04/2016
    task: ffff88003d75ee00 ti: ffff88003d7bc000 task.ti: ffff88003d7bc000
    RIP: 0010:[<ffffffff810e26e2>]  [<ffffffff810e26e2>] irq_move_masked_irq+0xd2/0xe0
    RSP: 0018:ffff88003d7bfc50  EFLAGS: 00010046
    RAX: 0000000000000000 RBX: ffff88003d40ba00 RCX: 0000000000000001
    RDX: 0000000000000001 RSI: 0000000000000100 RDI: ffff88003d40bad8
    RBP: ffff88003d7bfc68 R08: 0000000000000000 R09: ffff88003d000000
    R10: 0000000000000000 R11: 000000000000023c R12: ffff88003d40bad0
    R13: ffffffff81f3a4a0 R14: 0000000000000010 R15: 00000000ffffffff
    FS:  0000000000000000(0000) GS:ffff88003da00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fd4264de624 CR3: 0000000037922000 CR4: 00000000003406f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Stack:
     ffff88003d40ba38 0000000000000024 0000000000000000 ffff88003d7bfca0
     ffffffff814c8d92 00000010813ef89d 00000000805ea732 0000000000000009
     0000000000000024 ffff88003cc39b80 ffff88003d7bfce0 ffffffff814c8f66
    Call Trace:
     [<ffffffff814c8d92>] eoi_pirq+0xb2/0xf0
     [<ffffffff814c8f66>] __startup_pirq+0xe6/0x150
     [<ffffffff814ca659>] xen_irq_resume+0x319/0x360
     [<ffffffff814c7e75>] xen_suspend+0xb5/0x180
     [<ffffffff81120155>] multi_cpu_stop+0xb5/0xe0
     [<ffffffff811200a0>] ? cpu_stop_queue_work+0x80/0x80
     [<ffffffff811203d0>] cpu_stopper_thread+0xb0/0x140
     [<ffffffff810a94e6>] ? finish_task_switch+0x76/0x220
     [<ffffffff810ca731>] ? __raw_callee_save___pv_queued_spin_unlock+0x11/0x20
     [<ffffffff810a3935>] smpboot_thread_fn+0x105/0x160
     [<ffffffff810a3830>] ? sort_range+0x30/0x30
     [<ffffffff810a0588>] kthread+0xd8/0xf0
     [<ffffffff810a04b0>] ? kthread_create_on_node+0x1e0/0x1e0
     [<ffffffff8182568f>] ret_from_fork+0x3f/0x70
     [<ffffffff810a04b0>] ? kthread_create_on_node+0x1e0/0x1e0
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 39eb02366dc30cc0a6c0ccb4a6748042c6cdf943
Author: Hari Bathini <hbathini@linux.vnet.ibm.com>
Date:   Fri Apr 15 22:48:02 2016 +1000

    powerpc/book3s64: Fix branching to OOL handlers in relocatable kernel
    
    commit 8ed8ab40047a570fdd8043a40c104a57248dd3fd upstream.
    
    Some of the interrupt vectors on 64-bit POWER server processors are only
    32 bytes long (8 instructions), which is not enough for the full
    first-level interrupt handler. For these we need to branch to an
    out-of-line (OOL) handler. But when we are running a relocatable kernel,
    interrupt vectors till __end_interrupts marker are copied down to real
    address 0x100. So, branching to labels (ie. OOL handlers) outside this
    section must be handled differently (see LOAD_HANDLER()), considering
    relocatable kernel, which would need at least 4 instructions.
    
    However, branching from interrupt vector means that we corrupt the
    CFAR (come-from address register) on POWER7 and later processors as
    mentioned in commit 1707dd16. So, EXCEPTION_PROLOG_0 (6 instructions)
    that contains the part up to the point where the CFAR is saved in the
    PACA should be part of the short interrupt vectors before we branch out
    to OOL handlers.
    
    But as mentioned already, there are interrupt vectors on 64-bit POWER
    server processors that are only 32 bytes long (like vectors 0x4f00,
    0x4f20, etc.), which cannot accomodate the above two cases at the same
    time owing to space constraint. Currently, in these interrupt vectors,
    we simply branch out to OOL handlers, without using LOAD_HANDLER(),
    which leaves us vulnerable when running a relocatable kernel (eg. kdump
    case). While this has been the case for sometime now and kdump is used
    widely, we were fortunate not to see any problems so far, for three
    reasons:
    
      1. In almost all cases, production kernel (relocatable) is used for
         kdump as well, which would mean that crashed kernel's OOL handler
         would be at the same place where we end up branching to, from short
         interrupt vector of kdump kernel.
      2. Also, OOL handler was unlikely the reason for crash in almost all
         the kdump scenarios, which meant we had a sane OOL handler from
         crashed kernel that we branched to.
      3. On most 64-bit POWER server processors, page size is large enough
         that marking interrupt vector code as executable (see commit
         429d2e83) leads to marking OOL handler code from crashed kernel,
         that sits right below interrupt vector code from kdump kernel, as
         executable as well.
    
    Let us fix this by moving the __end_interrupts marker down past OOL
    handlers to make sure that we also copy OOL handlers to real address
    0x100 when running a relocatable kernel.
    
    This fix has been tested successfully in kdump scenario, on an LPAR with
    4K page size by using different default/production kernel and kdump
    kernel.
    
    Also tested by manually corrupting the OOL handlers in the first kernel
    and then kdump'ing, and then causing the OOL handlers to fire - mpe.
    
    Fixes: c1fb6816fb1b ("powerpc: Add relocation on exception vector handlers")
    Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com>
    Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 64c4199c926840cdfc306a64b11185db6d085fda
Author: wang yanqing <udknight@gmail.com>
Date:   Tue May 3 00:38:36 2016 +0800

    rtlwifi: Fix logic error in enter/exit power-save mode
    
    commit 873ffe154ae074c46ed2d72dbd9a2a99f06f55b4 upstream.
    
    In commit a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and
    rtl_lps_enter() to use work queue"), the tests for enter/exit
    power-save mode were inverted. With this change applied, the
    wifi connection becomes much more stable.
    
    Fixes: a269913c52ad ("rtlwifi: Rework rtl_lps_leave() and rtl_lps_enter() to use work queue")
    Signed-off-by: Wang YanQing <udknight@gmail.com>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit bf3e97df48ad789bff6b011969bdd4da06a7aec8
Author: Prarit Bhargava <prarit@redhat.com>
Date:   Wed May 11 12:27:16 2016 -0400

    PCI: Disable all BAR sizing for devices with non-compliant BARs
    
    commit ad67b437f187ea818b2860524d10f878fadfdd99 upstream.
    
    b84106b4e229 ("PCI: Disable IO/MEM decoding for devices with non-compliant
    BARs") disabled BAR sizing for BARs 0-5 of devices that don't comply with
    the PCI spec.  But it didn't do anything for expansion ROM BARs, so we
    still try to size them, resulting in warnings like this on Broadwell-EP:
    
      pci 0000:ff:12.0: BAR 6: failed to assign [mem size 0x00000001 pref]
    
    Move the non-compliant BAR check from __pci_read_base() up to
    pci_read_bases() so it applies to the expansion ROM BAR as well as
    to BARs 0-5.
    
    Note that direct callers of __pci_read_base(), like sriov_init(), will now
    bypass this check.  We haven't had reports of devices with broken SR-IOV
    BARs yet.
    
    [bhelgaas: changelog]
    Fixes: b84106b4e229 ("PCI: Disable IO/MEM decoding for devices with non-compliant BARs")
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    CC: Thomas Gleixner <tglx@linutronix.de>
    CC: Ingo Molnar <mingo@redhat.com>
    CC: "H. Peter Anvin" <hpa@zytor.com>
    CC: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 611a300c2d1ed9b9c6cf78e8bdb7f740e5ddd90b
Author: Dave Gerlach <d-gerlach@ti.com>
Date:   Tue Apr 5 14:05:38 2016 -0500

    cpuidle: Indicate when a device has been unregistered
    
    commit c998c07836f985b24361629dc98506ec7893e7a0 upstream.
    
    Currently the 'registered' member of the cpuidle_device struct is set
    to 1 during cpuidle_register_device. In this same function there are
    checks to see if the device is already registered to prevent duplicate
    calls to register the device, but this value is never set to 0 even on
    unregister of the device. Because of this, any attempt to call
    cpuidle_register_device after a call to cpuidle_unregister_device will
    fail which shouldn't be the case.
    
    To prevent this, set registered to 0 when the device is unregistered.
    
    Fixes: c878a52d3c7c (cpuidle: Check if device is already registered)
    Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
    Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4c65ba338bd3b6cea461cfbe3f000323bc22105c
Author: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Date:   Mon Apr 25 23:31:57 2016 -0700

    aacraid: Fix for aac_command_thread hang
    
    commit fc4bf75ea300a5e62a2419f89dd0e22189dd7ab7 upstream.
    
    Typically under error conditions, it is possible for aac_command_thread()
    to miss the wakeup from kthread_stop() and go back to sleep, causing it
    to hang aac_shutdown.
    
    In the observed scenario, the adapter is not functioning correctly and so
    aac_fib_send() never completes (or time-outs depending on how it was
    called). Shortly after aac_command_thread() starts it performs
    aac_fib_send(SendHostTime) which hangs. When aac_probe_one
    /aac_get_adapter_info send time outs, kthread_stop is called which breaks
    the command thread out of it's hang.
    
    The code will still go back to sleep in schedule_timeout() without
    checking kthread_should_stop() so it causes aac_probe_one to hang until
    the schedule_timeout() which is 30 minutes.
    
    Fixed by: Adding another kthread_should_stop() before schedule_timeout()
    Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 43ca60457b15da343097c28d53eb6178bd7dd14c
Author: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
Date:   Mon Apr 25 23:31:26 2016 -0700

    aacraid: Relinquish CPU during timeout wait
    
    commit 07beca2be24cc710461c0b131832524c9ee08910 upstream.
    
    aac_fib_send has a special function case for initial commands during
    driver initialization using wait < 0(pseudo sync mode). In this case,
    the command does not sleep but rather spins checking for timeout.This
    loop is calls cpu_relax() in an attempt to allow other processes/threads
    to use the CPU, but this function does not relinquish the CPU and so the
    command will hog the processor. This was observed in a KDUMP
    "crashkernel" and that prevented the "command thread" (which is
    responsible for completing the command from being timed out) from
    starting because it could not get the CPU.
    
    Fixed by replacing "cpu_relax()" call with "schedule()"
    Signed-off-by: Raghava Aditya Renukunta <RaghavaAditya.Renukunta@microsemi.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit c371143a7d93061448c2f33af5004ec5792beec2
Author: Joseph Salisbury <joseph.salisbury@canonical.com>
Date:   Mon Mar 14 14:51:48 2016 -0400

    ath5k: Change led pin configuration for compaq c700 laptop
    
    commit 7b9bc799a445aea95f64f15e0083cb19b5789abe upstream.
    
    BugLink: http://bugs.launchpad.net/bugs/972604
    
    Commit 09c9bae26b0d3c9472cb6ae45010460a2cee8b8d ("ath5k: add led pin
    configuration for compaq c700 laptop") added a pin configuration for the Compaq
    c700 laptop.  However, the polarity of the led pin is reversed.  It should be
    red for wifi off and blue for wifi on, but it is the opposite.  This bug was
    reported in the following bug report:
    http://pad.lv/972604
    
    Fixes: 09c9bae26b0d3c9472cb6ae45010460a2cee8b8d ("ath5k: add led pin configuration for compaq c700 laptop")
    Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 4d0c18529fda944d298d34e7565111335410fc25
Author: Ricky Liang <jcliang@chromium.org>
Date:   Fri May 20 10:58:59 2016 -0700

    Input: uinput - handle compat ioctl for UI_SET_PHYS
    
    commit affa80bd97f7ca282d1faa91667b3ee9e4c590e6 upstream.
    
    When running a 32-bit userspace on a 64-bit kernel, the UI_SET_PHYS
    ioctl needs to be treated with special care, as it has the pointer
    size encoded in the command.
    
    Signed-off-by: Ricky Liang <jcliang@chromium.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2acdb681c2b08d6d837de08762373e30f4314e37
Author: Matthias Schiffer <mschiffer@universe-factory.net>
Date:   Thu Mar 24 16:02:52 2016 +0100

    MIPS: ath79: make bootconsole wait for both THRE and TEMT
    
    commit f5b556c94c8490d42fea79d7b4ae0ecbc291e69d upstream.
    
    This makes the ath79 bootconsole behave the same way as the generic 8250
    bootconsole.
    
    Also waiting for TEMT (transmit buffer is empty) instead of just THRE
    (transmit buffer is not full) ensures that all characters have been
    transmitted before the real serial driver starts reconfiguring the serial
    controller (which would sometimes result in garbage being transmitted.)
    This change does not cause a visible performance loss.
    
    In addition, this seems to fix a hang observed in certain configurations on
    many AR7xxx/AR9xxx SoCs during autoconfig of the real serial driver.
    
    A more complete follow-up patch will disable 8250 autoconfig for ath79
    altogether (the serial controller is detected as a 16550A, which is not
    fully compatible with the ath79 serial, and the autoconfig may lead to
    undefined behavior on ath79.)
    
    Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit fe4e7a8859e19a6d9f55e634a3369b00bfc38fd3
Author: James Hogan <james.hogan@imgtec.com>
Date:   Mon Feb 8 18:43:49 2016 +0000

    MIPS: Fix siginfo.h to use strict posix types
    
    commit 5daebc477da4dfeb31ae193d83084def58fd2697 upstream.
    
    Commit 85efde6f4e0d ("make exported headers use strict posix types")
    changed the asm-generic siginfo.h to use the __kernel_* types, and
    commit 3a471cbc081b ("remove __KERNEL_STRICT_NAMES") make the internal
    types accessible only to the kernel, but the MIPS implementation hasn't
    been updated to match.
    
    Switch to proper types now so that the exported asm/siginfo.h won't
    produce quite so many compiler errors when included alone by a user
    program.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Christopher Ferris <cferris@google.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/12477/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 30ffd1df6f7e848aab69ddb0926a29b2b866118d
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Thu Apr 21 14:04:55 2016 +0100

    MIPS: math-emu: Fix jalr emulation when rd == $0
    
    commit ab4a92e66741b35ca12f8497896bafbe579c28a1 upstream.
    
    When emulating a jalr instruction with rd == $0, the code in
    isBranchInstr was incorrectly writing to GPR $0 which should actually
    always remain zeroed. This would lead to any further instructions
    emulated which use $0 operating on a bogus value until the task is next
    context switched, at which point the value of $0 in the task context
    would be restored to the correct zero by a store in SAVE_SOME. Fix this
    by not writing to rd if it is $0.
    
    Fixes: 102cedc32a6e ("MIPS: microMIPS: Floating point support.")
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Cc: Maciej W. Rozycki <macro@imgtec.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/13160/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2a1cff2944831fb63d7c808dcc431ec547468094
Author: Chanwoo Choi <cw00.choi@samsung.com>
Date:   Thu Apr 21 18:58:31 2016 +0900

    serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios()
    
    commit b8995f527aac143e83d3900ff39357651ea4e0f6 upstream.
    
    This patch fixes the broken serial log when changing the clock source
    of uart device. Before disabling the original clock source, this patch
    enables the new clock source to protect the clock off state for a split second.
    
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 24d2cacfa3dd21ba039479f6cd54d49f7c497606
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Tue May 3 17:05:54 2016 +0200

    tty: vt, return error when con_startup fails
    
    commit 6798df4c5fe0a7e6d2065cf79649a794e5ba7114 upstream.
    
    When csw->con_startup() fails in do_register_con_driver, we return no
    error (i.e. 0). This was changed back in 2006 by commit 3e795de763.
    Before that we used to return -ENODEV.
    
    So fix the return value to be -ENODEV in that case again.
    
    Fixes: 3e795de763 ("VT binding: Add binding/unbinding support for the VT console")
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Reported-by: "Dan Carpenter" <dan.carpenter@oracle.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 85734dfa7ff952a2caf5a9e285c76703e3725082
Author: Schemmel Hans-Christoph <Hans-Christoph.Schemmel@gemalto.com>
Date:   Fri Apr 29 08:51:06 2016 +0000

    USB: serial: option: add support for Cinterion PH8 and AHxx
    
    commit 444f94e9e625f6ec6bbe2cb232a6451c637f35a3 upstream.
    
    Added support for Gemalto's Cinterion PH8 and AHxx products
    with 2 RmNet Interfaces and products with 1 RmNet + 1 USB Audio interface.
    
    In addition some minor renaming and formatting.
    
    Signed-off-by: Hans-Christoph Schemmel <hans-christoph.schemmel@gemalto.com>
    [johan: sort current entries and trim trailing whitespace ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 7d95ad5b35e1b3d95c26c4f0e7e428dc75765d94
Author: Johan Hovold <johan@kernel.org>
Date:   Sun May 8 20:07:57 2016 +0200

    USB: serial: io_edgeport: fix memory leaks in probe error path
    
    commit c8d62957d450cc1a22ce3242908709fe367ddc8e upstream.
    
    URBs and buffers allocated in attach for Epic devices would never be
    deallocated in case of a later probe error (e.g. failure to allocate
    minor numbers) as disconnect is then never called.
    
    Fix by moving deallocation to release and making sure that the
    URBs are first unlinked.
    
    Fixes: f9c99bb8b3a1 ("USB: usb-serial: replace shutdown with disconnect,
    release")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 53ad8bf0a16b3d8e31b07004250f3468d279376c
Author: Johan Hovold <johan@kernel.org>
Date:   Sun May 8 20:07:56 2016 +0200

    USB: serial: io_edgeport: fix memory leaks in attach error path
    
    commit c5c0c55598cefc826d6cfb0a417eeaee3631715c upstream.
    
    Private data, URBs and buffers allocated for Epic devices during
    attach were never released on errors (e.g. missing endpoints).
    
    Fixes: 6e8cf7751f9f ("USB: add EPIC support to the io_edgeport driver")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e78a0e1d718178cbee94a5d6f9ba109833708400
Author: Johan Hovold <johan@kernel.org>
Date:   Sun May 8 20:08:02 2016 +0200

    USB: serial: quatech2: fix use-after-free in probe error path
    
    commit 028c49f5e02a257c94129cd815f7c8485f51d4ef upstream.
    
    The interface read URB is submitted in attach, but was only unlinked by
    the driver at disconnect.
    
    In case of a late probe error (e.g. due to failed minor allocation),
    disconnect is never called and we would end up with active URBs for an
    unbound interface. This in turn could lead to deallocated memory being
    dereferenced in the completion callback.
    
    Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 46e8b7f747e086a5ec3f93350dcae4a45450032c
Author: Johan Hovold <johan@kernel.org>
Date:   Sun May 8 20:07:58 2016 +0200

    USB: serial: keyspan: fix use-after-free in probe error path
    
    commit 35be1a71d70775e7bd7e45fa6d2897342ff4c9d2 upstream.
    
    The interface instat and indat URBs were submitted in attach, but never
    unlinked in release before deallocating the corresponding transfer
    buffers.
    
    In the case of a late probe error (e.g. due to failed minor allocation),
    disconnect would not have been called before release, causing the
    buffers to be freed while the URBs are still in use. We'd also end up
    with active URBs for an unbound interface.
    
    Fixes: f9c99bb8b3a1 ("USB: usb-serial: replace shutdown with disconnect,
    release")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit aad7758adca5d92a7ad06b43271c5c045a445c98
Author: Vladis Dronov <vdronov@redhat.com>
Date:   Sun Jan 31 14:14:52 2016 -0200

    [media] usbvision: revert commit 588afcc1
    
    commit d5468d7afaa9c9e961e150f0455a14a9f4872a98 upstream.
    
    Commit 588afcc1c0e4 ("[media] usbvision fix overflow of interfaces
    array")' should be reverted, because:
    
    * "!dev->actconfig->interface[ifnum]" won't catch a case where the value
    is not NULL but some garbage. This way the system may crash later with
    GPF.
    
    * "(ifnum >= USB_MAXINTERFACES)" does not cover all the error
    conditions. "ifnum" should be compared to "dev->actconfig->
    desc.bNumInterfaces", i.e. compared to the number of "struct
    usb_interface" kzalloc()-ed, not to USB_MAXINTERFACES.
    
    * There is a "struct usb_device" leak in this error path, as there is
    usb_get_dev(), but no usb_put_dev() on this path.
    
    * There is a bug of the same type several lines below with number of
    endpoints. The code is accessing hard-coded second endpoint
    ("interface->endpoint[1].desc") which may not exist. It would be great
    to handle this in the same patch too.
    
    * All the concerns above are resolved by already-accepted commit fa52bd50
    ("[media] usbvision: fix crash on detecting device with invalid
    configuration")
    
    * Mailing list message:
    http://www.spinics.net/lists/linux-media/msg94832.html
    
    Signed-off-by: Vladis Dronov <vdronov@redhat.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 543f3bb87b4d62d42d0b835237362a9cdcaacd88
Author: Matt Gumbel <matthew.k.gumbel@intel.com>
Date:   Fri May 20 10:33:46 2016 +0300

    mmc: longer timeout for long read time quirk
    
    commit 32ecd320db39bcb007679ed42f283740641b81ea upstream.
    
    008GE0 Toshiba mmc in some Intel Baytrail tablets responds to
    MMC_SEND_EXT_CSD in 450-600ms.
    
    This patch will...
    
    () Increase the long read time quirk timeout from 300ms to 600ms. Original
       author of that quirk says 300ms was only a guess and that the number
       may need to be raised in the future.
    
    () Add this specific MMC to the quirk
    
    Signed-off-by: Matt Gumbel <matthew.k.gumbel@intel.com>
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit c94916c8a3e3750537f6cd7676a4a89409320424
Author: Lv Zheng <lv.zheng@intel.com>
Date:   Tue May 3 16:48:20 2016 +0800

    ACPI / osi: Fix an issue that acpi_osi=!* cannot disable ACPICA internal strings
    
    commit 30c9bb0d7603e7b3f4d6a0ea231e1cddae020c32 upstream.
    
    The order of the _OSI related functionalities is as follows:
    
      acpi_blacklisted()
        acpi_dmi_osi_linux()
          acpi_osi_setup()
        acpi_osi_setup()
          acpi_update_interfaces() if "!*"
          <<<<<<<<<<<<<<<<<<<<<<<<
      parse_args()
        __setup("acpi_osi=")
          acpi_osi_setup_linux()
            acpi_update_interfaces() if "!*"
            <<<<<<<<<<<<<<<<<<<<<<<<
      acpi_early_init()
        acpi_initialize_subsystem()
          acpi_ut_initialize_interfaces()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      acpi_bus_init()
        acpi_os_initialize1()
          acpi_install_interface_handler(acpi_osi_handler)
          acpi_osi_setup_late()
            acpi_update_interfaces() for "!"
            >>>>>>>>>>>>>>>>>>>>>>>>
      acpi_osi_handler()
    
    Since acpi_osi_setup_linux() can override acpi_dmi_osi_linux(), the command
    line setting can override the DMI detection. That's why acpi_blacklisted()
    is put before __setup("acpi_osi=").
    
    Then we can notice the following wrong invocation order. There are
    acpi_update_interfaces() (marked by <<<<) calls invoked before
    acpi_ut_initialize_interfaces() (marked by ^^^^). This makes it impossible
    to use acpi_osi=!* correctly from OSI DMI table or from the command line.
    The use of acpi_osi=!* is meant to disable both ACPICA
    (acpi_gbl_supported_interfaces) and Linux specific strings
    (osi_setup_entries) while the ACPICA part should have stopped working
    because of the order issue.
    
    This patch fixes this issue by moving acpi_update_interfaces() to where
    it is invoked for acpi_osi=! (marked by >>>>) as this is ensured to be
    invoked after acpi_ut_initialize_interfaces() (marked by ^^^^). Linux
    specific strings are still handled in the original place in order to make
    the following command line working: acpi_osi=!* acpi_osi="Module Device".
    
    Note that since acpi_osi=!* is meant to further disable linux specific
    string comparing to the acpi_osi=!, there is no such use case in our bug
    fixing work and hence there is no one using acpi_osi=!* either from the
    command line or from the DMI quirks, this issue is just a theoretical
    issue.
    
    Fixes: 741d81280ad2 (ACPI: Add facility to remove all _OSI strings)
    Tested-by: Lukas Wunner <lukas@wunner.de>
    Tested-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Lv Zheng <lv.zheng@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 53715603fb168930a3f2b02be634f94f373dd925
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Thu May 5 08:12:28 2016 +0300

    mmc: mmc: Fix partition switch timeout for some eMMCs
    
    commit 1c447116d017a98c90f8f71c8c5a611e0aa42178 upstream.
    
    Some eMMCs set the partition switch timeout too low.
    
    Now typically eMMCs are considered a critical component (e.g. because
    they store the root file system) and consequently are expected to be
    reliable.  Thus we can neglect the use case where eMMCs can't switch
    reliably and we might want a lower timeout to facilitate speedy
    recovery.
    
    Although we could employ a quirk for the cards that are affected (if
    we could identify them all), as described above, there is little
    benefit to having a low timeout, so instead simply set a minimum
    timeout.
    
    The minimum is set to 300ms somewhat arbitrarily - the examples that
    have been seen had a timeout of 10ms but were sometimes taking 60-70ms.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 5feada97176f05f92088911fa807d30445c6a0c6
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Fri May 13 09:34:12 2016 -0400

    ring-buffer: Prevent overflow of size in ring_buffer_resize()
    
    commit 59643d1535eb220668692a5359de22545af579f6 upstream.
    
    If the size passed to ring_buffer_resize() is greater than MAX_LONG - BUF_PAGE_SIZE
    then the DIV_ROUND_UP() will return zero.
    
    Here's the details:
    
      # echo 18014398509481980 > /sys/kernel/debug/tracing/buffer_size_kb
    
    tracing_entries_write() processes this and converts kb to bytes.
    
     18014398509481980 << 10 = 18446744073709547520
    
    and this is passed to ring_buffer_resize() as unsigned long size.
    
     size = DIV_ROUND_UP(size, BUF_PAGE_SIZE);
    
    Where DIV_ROUND_UP(a, b) is (a + b - 1)/b
    
    BUF_PAGE_SIZE is 4080 and here
    
     18446744073709547520 + 4080 - 1 = 18446744073709551599
    
    where 18446744073709551599 is still smaller than 2^64
    
     2^64 - 18446744073709551599 = 17
    
    But now 18446744073709551599 / 4080 = 4521260802379792
    
    and size = size * 4080 = 18446744073709551360
    
    This is checked to make sure its still greater than 2 * 4080,
    which it is.
    
    Then we convert to the number of buffer pages needed.
    
     nr_page = DIV_ROUND_UP(size, BUF_PAGE_SIZE)
    
    but this time size is 18446744073709551360 and
    
     2^64 - (18446744073709551360 + 4080 - 1) = -3823
    
    Thus it overflows and the resulting number is less than 4080, which makes
    
      3823 / 4080 = 0
    
    an nr_pages is set to this. As we already checked against the minimum that
    nr_pages may be, this causes the logic to fail as well, and we crash the
    kernel.
    
    There's no reason to have the two DIV_ROUND_UP() (that's just result of
    historical code changes), clean up the code and fix this bug.
    
    Fixes: 83f40318dab00 ("ring-buffer: Make removal of ring buffer pages atomic")
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit a70dd021b5fb186bcdaedd6c4a4e2083d3d1e7f5
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Thu May 12 11:01:24 2016 -0400

    ring-buffer: Use long for nr_pages to avoid overflow failures
    
    commit 9b94a8fba501f38368aef6ac1b30e7335252a220 upstream.
    
    The size variable to change the ring buffer in ftrace is a long. The
    nr_pages used to update the ring buffer based on the size is int. On 64 bit
    machines this can cause an overflow problem.
    
    For example, the following will cause the ring buffer to crash:
    
     # cd /sys/kernel/debug/tracing
     # echo 10 > buffer_size_kb
     # echo 8556384240 > buffer_size_kb
    
    Then you get the warning of:
    
     WARNING: CPU: 1 PID: 318 at kernel/trace/ring_buffer.c:1527 rb_update_pages+0x22f/0x260
    
    Which is:
    
      RB_WARN_ON(cpu_buffer, nr_removed);
    
    Note each ring buffer page holds 4080 bytes.
    
    This is because:
    
     1) 10 causes the ring buffer to have 3 pages.
        (10kb requires 3 * 4080 pages to hold)
    
     2) (2^31 / 2^10  + 1) * 4080 = 8556384240
        The value written into buffer_size_kb is shifted by 10 and then passed
        to ring_buffer_resize(). 8556384240 * 2^10 = 8761737461760
    
     3) The size passed to ring_buffer_resize() is then divided by BUF_PAGE_SIZE
        which is 4080. 8761737461760 / 4080 = 2147484672
    
     4) nr_pages is subtracted from the current nr_pages (3) and we get:
        2147484669. This value is saved in a signed integer nr_pages_to_update
    
     5) 2147484669 is greater than 2^31 but smaller than 2^32, a signed int
        turns into the value of -2147482627
    
     6) As the value is a negative number, in update_pages_handler() it is
        negated and passed to rb_remove_pages() and 2147482627 pages will
        be removed, which is much larger than 3 and it causes the warning
        because not all the pages asked to be removed were removed.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=118001
    
    Fixes: 7a8e76a3829f1 ("tracing: unified trace buffer")
    Reported-by: Hao Qin <QEver.cn@gmail.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 580d57d804e8dd3fd824daca34ff664bf03e580e
Author: Stefan Metzmacher <metze@samba.org>
Date:   Tue May 3 10:52:30 2016 +0200

    fs/cifs: correctly to anonymous authentication via NTLMSSP
    
    commit cfda35d98298131bf38fbad3ce4cd5ecb3cf18db upstream.
    
    See [MS-NLMP] 3.2.5.1.2 Server Receives an AUTHENTICATE_MESSAGE from the Client:
    
       ...
       Set NullSession to FALSE
       If (AUTHENTICATE_MESSAGE.UserNameLen == 0 AND
          AUTHENTICATE_MESSAGE.NtChallengeResponse.Length == 0 AND
          (AUTHENTICATE_MESSAGE.LmChallengeResponse == Z(1)
           OR
           AUTHENTICATE_MESSAGE.LmChallengeResponse.Length == 0))
           -- Special case: client requested anonymous authentication
           Set NullSession to TRUE
       ...
    
    Only server which map unknown users to guest will allow
    access using a non-null NTChallengeResponse.
    
    For Samba it's the "map to guest = bad user" option.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11913
    
    Signed-off-by: Stefan Metzmacher <metze@samba.org>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit b2225680c1c5f37074ff33fd2b0e1db2cb87ebf3
Author: Steve French <smfrench@gmail.com>
Date:   Thu May 12 21:20:36 2016 -0500

    remove directory incorrectly tries to set delete on close on non-empty directories
    
    commit 897fba1172d637d344f009d700f7eb8a1fa262f1 upstream.
    
    Wrong return code was being returned on SMB3 rmdir of
    non-empty directory.
    
    For SMB3 (unlike for cifs), we attempt to delete a directory by
    set of delete on close flag on the open. Windows clients set
    this flag via a set info (SET_FILE_DISPOSITION to set this flag)
    which properly checks if the directory is empty.
    
    With this patch on smb3 mounts we correctly return
     "DIRECTORY NOT EMPTY"
    on attempts to remove a non-empty directory.
    
    Signed-off-by: Steve French <steve.french@primarydata.com>
    Acked-by: Sachin Prabhu <sprabhu@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit fa5d506592a759b7848a59d1d5a025af8c9a7a6c
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Thu Nov 5 09:13:31 2015 +0530

    ARC: use ASL assembler mnemonic
    
    commit a6416f57ce57fb390b6ee30b12c01c29032a26af upstream.
    
    ARCompact and ARCv2 only have ASL, while binutils used to support LSL as
    a alias mnemonic.
    
    Newer binutils (upstream) don't want to do that so replace it.
    
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit db69dff1fd7122019766537345f0b2d3c6baf1d0
Author: Daniel Bristot de Oliveira <bristot@redhat.com>
Date:   Thu Mar 10 14:17:58 2016 -0300

    HID: usbhid: enable NO_INIT_REPORTS quirk for Semico USB Keykoard2
    
    commit c14022bfd2eb2d2ece74a405dfbdb02a829c07bc upstream.
    
    The device which identifies itself as a "USB Keykoard" (no typo)
    with VID:PID 1a2c:0027 does not seem to be handling the reports
    initialization very well.
    
    This results in a "usb_submit_urb(ctrl) failed: -1" message from the
    kernel when connected, and a delay before its initialization. It can
    also cause the hang the system.
    
    This patch adds the  quirk for this device, which causes the delay
    to disappear. It is named as "USB Keykoard2" because the "USB Keykoard"
    already exists.
    
    Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit bc0447741ed0d7960f7fdf51beb04d8c1982c428
Author: Cyan Ogilvie <cyan.ogilvie@gmail.com>
Date:   Wed Mar 16 18:59:41 2016 +0200

    HID: wiimote: Fix wiimote mp scale linearization
    
    commit d30596737e8e7b2f1235d7ba20592b8309e3af04 upstream.
    
    The wiimote motion plus gyros use two scales to report fast and slow
    rotation - below 440 deg/s uses 8192/440 units / deg/s, and above uses
    8192/2000 units / deg/s.
    
    Previously this driver attempted to linearize the two by scaling the fast
    rate by 18 and the slow by 9, but this results in a scale of
    8192*9/440 = ~167.564 for slow and 8192*18/2000 = 73.728 for fast.
    
    Correct the fast motion scale factor so that both report ~167.564
    units / deg/s
    
    Signed-off-by: Cyan Ogilvie <cyan.ogilvie@gmail.com>
    Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit cb1a03a410a20166b2f780bf1d65c010bdb5a6a7
Author: Sean Young <sean@mess.org>
Date:   Wed May 6 21:38:42 2015 +0100

    HID: sjoy: support Super Joy Box 4
    
    commit 6e5e9a06a206010eabd19b523fd0833c51afc0b0 upstream.
    
    This device supports force feedback and has two ports.
    
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 82671272dfda4157b376c69a67821f34918a1c36
Author: Николай Кудрявцев <nkudriavtsev@gmail.com>
Date:   Tue Jul 21 13:31:52 2015 +0300

    HID: chicony: Add support for Acer Aspire Switch 12
    
    commit 9a1d78a3780e0e37eeff11b377fc5fbb01446a36 upstream.
    
    Acer Aspire Switch 12 keyboard Chicony's controller reports too big usage
    index on the 1st interface. The patch fixes the report. The work based on
    solution from drivers/hid/hid-holtek-mouse.c
    
    Bug report: https://bugzilla.kernel.org/show_bug.cgi?id=101721
    
    Signed-off-by: Nicholas Kudriavtsev <nkudriavtsev@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9b682f4af35b8e68c8ea56eaf57a8ac291eb5be5
Author: Slava Bacherikov <slava@bacher09.org>
Date:   Fri Mar 11 18:57:24 2016 +0200

    HID: microsoft: Add ID for MS Wireless Comfort Keyboard
    
    commit f9a82c2054bcdebdf81a63c26a3b41197bb6070a upstream.
    
    Microsoft Wireless Comfort Keyboard has vendor specific My Favorites
    1-5 keys. Linux already supports this buttons on other MS keyboards by
    MS_ERGONOMY quirk. So apply MS_ERGONOMY quirk to USB PID 0x00e3
    (Microsoft Wireless Optical Desktop Receiver 3.0A). After this
    My Favorites 1..5 keys will be reported as KEY_F14..KEY_F15 events.
    
    Signed-off-by: Slava Bacherikov <slava@bacher09.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0e55c9fb15f6b56817b21b99acb1f3b51c70a6e4
Author: Donavan Lance <shvr@fedoraproject.org>
Date:   Tue Sep 15 12:44:54 2015 -0400

    HID: Add new Microsoft Type Cover 3 product ID
    
    commit c6956eb70e2549a3c2fa6ee525e02776d293caf4 upstream.
    
    Adds support for Microsoft Type Cover 3 with 0x07e2 product ID.
    
    Signed-off-by: Donavan Lance <shvr@fedoraproject.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 14d250eb7fed0d8e15ed8dd471efe229711874f9
Author: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date:   Mon Apr 4 20:51:40 2016 +1000

    HID: microsoft: add support for 3 more devices
    
    commit c847a89a871e1ea21d45120c3045c9b443e258f5 upstream.
    
    Adds support for the Micrsift Digital 4K, Media 600 and Media 3000 V1 Keyboards,
    which have the same quirks as the already existing hardware MS_NE4K.
    
    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=52841
    
    [jkosina@suse.cz: rephrase changelog]
    Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 66cfa3c01033f299b69e9f272a263050012053db
Author: Stephen Just <stephenjust@gmail.com>
Date:   Wed Jul 22 20:11:40 2015 -0700

    HID: microsoft: Add Surface 3 type cover
    
    commit 0439de75d32c249bd9f5824ffd5e40c4c2109d77 upstream.
    
    Adding support for the Microsoft Surface 3 (non-pro) Type Cover.
    
    The existing definitions and quirks are actually for the Surface
    Pro 3 type covers. I've renamed the old constants to reflect that
    they belong to the Surface Pro 3, and added a new constant and
    matching code for the Surface 3.
    
    Signed-off-by: Stephen Just <stephenjust@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit bec940af6f3bd3302d00fb84968561fb4b8c435e
Author: Raimund Roth <raimundmroth@googlemail.com>
Date:   Mon Jun 8 11:11:38 2015 +0200

    HID: microsoft: Add Surface Power Cover
    
    commit 18eec2cd7e9746cd672ada102987534ae16f0f44 upstream.
    
    Adding support for the Microsoft Surface Pro Power Cover.
    
    Signed-off-by: Raimund Roth <raimundmroth@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit e863a5c1fa7eb807a62a8841adf93f7c8b5980bb
Author: Nazar Mokrynskyi <nazar@mokrynskyi.com>
Date:   Mon Apr 25 17:01:56 2016 +0300

    HID: Fix boot delay for Creative SB Omni Surround 5.1 with quirk
    
    commit 567a44ecb44eb2584ddb93e962cfb133ce77e0bb upstream.
    
    Needed for v2 of the device firmware, otherwise kernel will stuck for few
    seconds and throw "usb_submit_urb(ctrl) failed: -1" early on system boot.
    
    Signed-off-by: Nazar Mokrynskyi <nazar@mokrynskyi.com>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 9fb1f25f3f9e99a9fee47279686dcd6729a88629
Author: Trent Lloyd <trent@lloyd.id.au>
Date:   Thu Jul 9 13:38:50 2015 +0800

    HID: usbhid: quirks for Corsair RGB keyboard & mice (K70R, K95RGB, M65RGB, K70RGB, K65RGB)
    
    commit 282bf1fe6dca4b768d6bedc14aea1b82c36241c1 upstream.
    
    These devices feature multiple interfaces/endpoints: a legacy BIOS/boot
    interface (endpoint 0x81), as well as 2 corsair-specific keyboard interfaces
    (endpoint 0x82, 0x83 IN/0x03 OUT) and an RGB LED control interface (endpoint
    0x84 IN/0x04 OUT)
    
    Because the extra 3 interfaces are not of subclass USB_INTERFACE_SUBCLASS_BOOT,
    HID_QUIRK_NOGET is not automatically set on them and a 10s timeout per-endpoint
    (30s per device) occurs initialising reports on boot.  We configure
    HID_QUIRK_NO_INIT_REPORTS for these devices.
    
    Additionally the left-side G1-G18 macro keys on the K95RGB generate output on
    the un-opened 0x82/0x83 endpoints which causes the keyboard to stop responding
    waiting for this event to be collected.  We enable HID_QUIRK_ALWAYS_POLL to
    prevent this situation from occurring.
    
    Signed-off-by: Trent Lloyd <trent@lloyd.id.au>
    Tested-by: SUGNIAUX Wilfried <wsu@ppharm2k20.net>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Cc: Oliver Neukum <oliver@neukum.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 0ab923b3982c323bd95e63a9b93dc65d1aebb94f
Author: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Date:   Sun Apr 10 19:13:13 2016 -0600

    IB/security: Restrict use of the write() interface
    
    commit e6bd18f57aad1a2d1ef40e646d03ed0f2515c9e3 upstream.
    
    The drivers/infiniband stack uses write() as a replacement for
    bi-directional ioctl().  This is not safe. There are ways to
    trigger write calls that result in the return structure that
    is normally written to user space being shunted off to user
    specified kernel memory instead.
    
    For the immediate repair, detect and deny suspicious accesses to
    the write API.
    
    For long term, update the user space libraries and the kernel API
    to something that doesn't present the same security vulnerabilities
    (likely a structured ioctl() interface).
    
    The impacted uAPI interfaces are generally only available if
    hardware from drivers/infiniband is installed in the system.
    
    [js] backport to 3.12: hfi1 is not there yet (exclude), ipath is still
         there (include)
    
    Reported-by: Jann Horn <jann@thejh.net>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
    [ Expanded check to all known write() entry points ]
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>

commit 2963542faf2956563c4081080ca090d82a797d48
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Tue Apr 21 14:17:35 2015 -0400

    NFS: Don't attempt to decode missing directory entries
    
    commit ce85cfbed6fe3dbc01bd1976b23ac3e97878cde6 upstream.
    
    If a READDIR reply comes back without any page data, avoid a NULL pointer
    dereference in xdr_copy_to_scratch().
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
    IP: [<ffffffff813a378d>] memcpy+0xd/0x110
    ...
    Call Trace:
            ? xdr_inline_decode+0x7a/0xb0 [sunrpc]
            nfs3_decode_dirent+0x73/0x320 [nfsv3]
            nfs_readdir_page_filler+0xd5/0x4e0 [nfs]
            ? nfs3_rpc_wrapper.constprop.9+0x42/0xc0 [nfsv3]
            nfs_readdir_xdr_to_array+0x1fa/0x330 [nfs]
            ? mem_cgroup_commit_charge+0xac/0x160
            ? nfs_readdir_xdr_to_array+0x330/0x330 [nfs]
            nfs_readdir_filler+0x22/0x90 [nfs]
            do_read_cache_page+0x7e/0x1a0
            read_cache_page+0x1c/0x20
            nfs_readdir+0x18e/0x660 [nfs]
            ? nfs3_xdr_dec_getattr3res+0x80/0x80 [nfsv3]
            iterate_dir+0x97/0x130
            SyS_getdents+0x94/0x120
            ? fillonedir+0xd0/0xd0
            system_call_fastpath+0x12/0x17
    
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Cc: Neil Brown <nfbrown@suse.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>