09 Jan, 2015

40 commits

  • commit 9d367e5e7b05c71a8c1ac4e9b6e00ba45a79f2fc upstream.

    thermal_unregister_governors() and class_unregister() were being called in
    the wrong order.

    Fixes: 80a26a5c22b9 ("Thermal: build thermal governors into thermal_sys module")
    Signed-off-by: Luis Henriques
    Signed-off-by: Zhang Rui
    Signed-off-by: Greg Kroah-Hartman

    Luis Henriques
     
  • commit c297abfdf15b4480704d6b566ca5ca9438b12456 upstream.

    While reviewing the code of umount_tree I realized that when we append
    to a preexisting unmounted list we do not change pprev of the former
    first item in the list.

    Which means later in namespace_unlock hlist_del_init(&mnt->mnt_hash) on
    the former first item of the list will stomp unmounted.first leaving
    it set to some random mount point which we are likely to free soon.

    This isn't likely to hit, but if it does I don't know how anyone could
    track it down.

    [ This happened because we don't have all the same operations for
    hlist's as we do for normal doubly-linked lists. In particular,
    list_splice() is easy on our standard doubly-linked lists, while
    hlist_splice() doesn't exist and needs both start/end entries of the
    hlist. And commit 38129a13e6e7 incorrectly open-coded that missing
    hlist_splice().

    We should think about making these kinds of "mindless" conversions
    easier to get right by adding the missing hlist helpers - Linus ]

    Fixes: 38129a13e6e71f666e0468e99fdd932a687b4d7e switch mnt_hash to hlist
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Eric W. Biederman
     
  • commit 28a9bc68124c319b2b3dc861e80828a8865fd1ba upstream.

    When writing the code to allow per-station GTKs, I neglected to
    take into account the management frame keys (index 4 and 5) when
    freeing the station and only added code to free the first four
    data frame keys.

    Fix this by iterating the array of keys over the right length.

    Fixes: e31b82136d1a ("cfg80211/mac80211: allow per-station GTKs")
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Johannes Berg
     
  • commit d025933e29872cb1fe19fc54d80e4dfa4ee5779c upstream.

    As multicast-frames can't be fragmented, "dot11MulticastReceivedFrameCount"
    stopped being incremented after the use-after-free fix. Furthermore, the
    RX-LED will be triggered by every multicast frame (which wouldn't happen
    before) which wouldn't allow the LED to rest at all.

    Fixes https://bugzilla.kernel.org/show_bug.cgi?id=89431 which also had the
    patch.

    Fixes: b8fff407a180 ("mac80211: fix use-after-free in defragmentation")
    Signed-off-by: Andreas Müller
    [rewrite commit message]
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Andreas Müller
     
  • commit 7e6225a1604d0c6aa4140289bf5761868ffc9c83 upstream.

    Avoid a case where we would access uninitialized stack data if the AP
    advertises HT support without 40MHz channel support.

    Fixes: f3000e1b43f1 ("mac80211: fix broken use of VHT/20Mhz with some APs")
    Signed-off-by: Jes Sorensen
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Jes Sorensen
     
  • commit 2967e031d4d737d9cc8252d878a17924d7b704f0 upstream.

    Instead of keeping track of all those special cases where
    VLAN interfaces have no bss_conf.chandef, just make sure
    they have the same as the AP interface they belong to.

    Among others, this fixes a crash getting a VLAN's channel
    from userspace since a NULL channel is returned as a good
    result (return value 0) for VLANs since the commit below.

    Fixes: c12bc4885f4b3 ("mac80211: return the vif's chandef in ieee80211_cfg_get_channel()")
    Signed-off-by: Felix Fietkau
    [rewrite commit log]
    Signed-off-by: Johannes Berg
    Signed-off-by: Greg Kroah-Hartman

    Felix Fietkau
     
  • commit b26bdde5bb27f3f900e25a95e33a0c476c8c2c48 upstream.

    When loading encrypted-keys module, if the last check of
    aes_get_sizes() in init_encrypted() fails, the driver just returns an
    error without unregistering its key type. This results in the stale
    entry in the list. In addition to memory leaks, this leads to a kernel
    crash when registering a new key type later.

    This patch fixes the problem by swapping the calls of aes_get_sizes()
    and register_key_type(), and releasing resources properly at the error
    paths.

    Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=908163
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mimi Zohar
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 25cdb9c86826f8d035d8aaa07fc36832e76bd8a0 upstream.

    I'm such a moron! The simple solution of saving the BSP patch
    for use on resume was too simple (and wrong!), hint:
    sizeof(struct microcode_intel).

    What needs to be done instead is to fish out the microcode patch
    we have stashed previously and apply that on the BSP in case the
    late loader hasn't been utilized.

    So do that instead.

    Signed-off-by: Borislav Petkov
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/20141208110820.GB20057@pd.tnic
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Borislav Petkov
     
  • commit fbae4ba8c4a387e306adc9c710e5c225cece7678 upstream.

    Normally, we do reapply microcode on resume. However, in the cases where
    that microcode comes from the early loader and the late loader hasn't
    been utilized yet, there's no easy way for us to go and apply the patch
    applied during boot by the early loader.

    Thus, reuse the patch stashed by the early loader for the BSP.

    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    Borislav Petkov
     
  • commit a18a0f6850d4b286a5ebf02cd5b22fe496b86349 upstream.

    Paravirtual guests are not expected to load microcode into processors
    and therefore it is not necessary to initialize microcode loading
    logic.

    In fact, under certain circumstances initializing this logic may cause
    the guest to crash. Specifically, 32-bit kernels use __pa_nodebug()
    macro which does not work in Xen (the code path that leads to this macro
    happens during resume when we call mc_bp_resume()->load_ucode_ap()
    ->check_loader_disabled_ap())

    Signed-off-by: Boris Ostrovsky
    Link: http://lkml.kernel.org/r/1417469264-31470-1-git-send-email-boris.ostrovsky@oracle.com
    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    Boris Ostrovsky
     
  • commit 47768626c6db42cd06ff077ba12dd2cb10ab818b upstream.

    apply_microcode_early() doesn't use mc_saved_data, kill it.

    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    Borislav Petkov
     
  • commit 2ef84b3bb97f03332f0c1edb4466b1750dcf97b5 upstream.

    Hand down the cpu number instead, otherwise lockdep screams when doing

    echo 1 > /sys/devices/system/cpu/microcode/reload.

    BUG: using smp_processor_id() in preemptible [00000000] code: amd64-microcode/2470
    caller is debug_smp_processor_id+0x12/0x20
    CPU: 1 PID: 2470 Comm: amd64-microcode Not tainted 3.18.0-rc6+ #26
    ...

    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/1417428741-4501-1-git-send-email-bp@alien8.de
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Borislav Petkov
     
  • commit 4e2024624e678f0ebb916e6192bd23c1f9fdf696 upstream.

    We didn't check length of rock ridge ER records before printing them.
    Thus corrupted isofs image can cause us to access and print some memory
    behind the buffer with obvious consequences.

    Reported-and-tested-by: Carl Henrik Lunde
    Signed-off-by: Jan Kara
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit 3fb2f4237bb452eb4e98f6a5dbd5a445b4fed9d0 upstream.

    It turns out that there's a lurking ABI issue. GCC, when
    compiling this in a 32-bit program:

    struct user_desc desc = {
    .entry_number = idx,
    .base_addr = base,
    .limit = 0xfffff,
    .seg_32bit = 1,
    .contents = 0, /* Data, grow-up */
    .read_exec_only = 0,
    .limit_in_pages = 1,
    .seg_not_present = 0,
    .useable = 0,
    };

    will leave .lm uninitialized. This means that anything in the
    kernel that reads user_desc.lm for 32-bit tasks is unreliable.

    Revert the .lm check in set_thread_area(). The value never did
    anything in the first place.

    Fixes: 0e58af4e1d21 ("x86/tls: Disallow unusual TLS segments")
    Signed-off-by: Andy Lutomirski
    Acked-by: Thomas Gleixner
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/d7875b60e28c512f6a6fc0baf5714d58e7eaadbb.1418856405.git.luto@amacapital.net
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Andy Lutomirski
     
  • commit 7ddc6a2199f1da405a2fb68c40db8899b1a8cd87 upstream.

    These functions can be executed on the int3 stack, so kprobes
    are dangerous. Tracing is probably a bad idea, too.

    Fixes: b645af2d5905 ("x86_64, traps: Rework bad_iret")
    Signed-off-by: Andy Lutomirski
    Cc: Linus Torvalds
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/50e33d26adca60816f3ba968875801652507d0c4.1416870125.git.luto@amacapital.net
    Signed-off-by: Ingo Molnar
    Signed-off-by: Greg Kroah-Hartman

    Andy Lutomirski
     
  • commit ab1e85372168892387dd1ac171158fc8c3119be4 upstream.

    Commit a095b1c78a35 ("ARM: mvebu: sort DT nodes by address")
    missed placing the system-controller in the correct order.

    Fixes: a095b1c78a35 ("ARM: mvebu: sort DT nodes by address")
    Signed-off-by: Uwe Kleine-König
    Acked-by: Andrew Lunn
    Link: https://lkml.kernel.org/r/20141114204333.GS27002@pengutronix.de
    Signed-off-by: Jason Cooper
    Signed-off-by: Greg Kroah-Hartman

    Uwe Kleine-König
     
  • commit b4607572ef86b288a856b9df410ea593c5371dec upstream.

    Back when audio was enabled, the muxing of some MPP pins was causing
    problems. However, since commit fea038ed55ae ("ARM: mvebu: Add proper
    pin muxing on the Armada 370 DB board"), those problematic MPP pins
    have been assigned a proper muxing for the Ethernet interfaces. This
    proper muxing is now conflicting with the hog pins muxing that had
    been added as part of 249f3822509b ("ARM: mvebu: add audio support to
    Armada 370 DB").

    Therefore, this commit simply removes the hog pins muxing, which
    solves a warning a boot time due to the conflicting muxing
    requirements.

    Fixes: fea038ed55ae ("ARM: mvebu: Add proper pin muxing on the Armada 370 DB board")
    Cc: Ezequiel Garcia
    Signed-off-by: Thomas Petazzoni
    Acked-by: Andrew Lunn
    Link: https://lkml.kernel.org/r/1414512524-24466-5-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper
    Signed-off-by: Greg Kroah-Hartman

    Thomas Petazzoni
     
  • commit e55355453600a33bb5ca4f71f2d7214875f3b061 upstream.

    Enabling the hardware I/O coherency on Armada 370, Armada 375, Armada
    38x and Armada XP requires a certain number of conditions:

    - On Armada 370, the cache policy must be set to write-allocate.

    - On Armada 375, 38x and XP, the cache policy must be set to
    write-allocate, the pages must be mapped with the shareable
    attribute, and the SMP bit must be set

    Currently, on Armada XP, when CONFIG_SMP is enabled, those conditions
    are met. However, when Armada XP is used in a !CONFIG_SMP kernel, none
    of these conditions are met. With Armada 370, the situation is worse:
    since the processor is single core, regardless of whether CONFIG_SMP
    or !CONFIG_SMP is used, the cache policy will be set to write-back by
    the kernel and not write-allocate.

    Since solving this problem turns out to be quite complicated, and we
    don't want to let users with a mainline kernel known to have
    infrequent but existing data corruptions, this commit proposes to
    simply disable hardware I/O coherency in situations where it is known
    not to work.

    And basically, the is_smp() function of the kernel tells us whether it
    is OK to enable hardware I/O coherency or not, so this commit slightly
    refactors the coherency_type() function to return
    COHERENCY_FABRIC_TYPE_NONE when is_smp() is false, or the appropriate
    type of the coherency fabric in the other case.

    Thanks to this, the I/O coherency fabric will no longer be used at all
    in !CONFIG_SMP configurations. It will continue to be used in
    CONFIG_SMP configurations on Armada XP, Armada 375 and Armada 38x
    (which are multiple cores processors), but will no longer be used on
    Armada 370 (which is a single core processor).

    In the process, it simplifies the implementation of the
    coherency_type() function, and adds a missing call to of_node_put().

    Signed-off-by: Thomas Petazzoni
    Fixes: e60304f8cb7bb545e79fe62d9b9762460c254ec2 ("arm: mvebu: Add hardware I/O Coherency support")
    Acked-by: Gregory CLEMENT
    Link: https://lkml.kernel.org/r/1415871540-20302-3-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper
    Signed-off-by: Greg Kroah-Hartman

    Thomas Petazzoni
     
  • commit 30cdef97107370a7f63ab5d80fd2de30540750c8 upstream.

    The ll_add_cpu_to_smp_group(), ll_enable_coherency() and
    ll_disable_coherency() are used on Armada XP to control the coherency
    fabric. However, they make the assumption that the coherency fabric is
    always available, which is currently a correct assumption but will no
    longer be true with a followup commit that disables the usage of the
    coherency fabric when the conditions are not met to use it.

    Therefore, this commit modifies those functions so that they check the
    return value of ll_get_coherency_base(), and if the return value is 0,
    they simply return without configuring anything in the coherency
    fabric.

    The ll_get_coherency_base() function is also modified to properly
    return 0 when the function is called with the MMU disabled. In this
    case, it normally returns the physical address of the coherency
    fabric, but we now check if the virtual address is 0, and if that's
    case, return a physical address of 0 to indicate that the coherency
    fabric is not enabled.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Gregory CLEMENT
    Link: https://lkml.kernel.org/r/1415871540-20302-2-git-send-email-thomas.petazzoni@free-electrons.com
    Signed-off-by: Jason Cooper
    Signed-off-by: Greg Kroah-Hartman

    Thomas Petazzoni
     
  • commit e4a680099a6e97ecdbb81081cff9e4a489a4dc44 upstream.

    Commit d127e9c ("ARM: tegra: make tegra_resume can work with current and later
    chips") removed tegra_get_soc_id macro leaving used cpu register corrupted after
    branching to v7_invalidate_l1() and as result causing execution of unintended
    code on tegra20. Possibly it was expected that r6 would be SoC id func argument
    since common cpu reset handler is setting r6 before branching to tegra_resume(),
    but neither tegra20_lp1_reset() nor tegra30_lp1_reset() aren't setting r6
    register before jumping to resume function. Fix it by re-adding macro.

    Fixes: d127e9c (ARM: tegra: make tegra_resume can work with current and later chips)
    Reviewed-by: Felipe Balbi
    Signed-off-by: Dmitry Osipenko
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Osipenko
     
  • commit dc6057ecb39edb34b0461ca55382094410bd257a upstream.

    When creating a dumb buffer object using the DRM_IOCTL_MODE_CREATE_DUMB
    IOCTL, only the width, height, bpp and flags parameters are inputs. The
    caller is not guaranteed to zero out or set handle, pitch and size, so
    the driver must not treat these values as possible inputs.

    Fixes a bug where running the Weston compositor on Tegra DRM would cause
    an attempt to allocate a 3 GiB framebuffer to be allocated.

    Fixes: de2ba664c30f ("gpu: host1x: drm: Add memory manager and fb")
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Thierry Reding
     
  • commit 51c9fbb1b146f3336a93d398c439b6fbfe5ab489 upstream.

    Earlier implementation assumed last instruction is BPF_EXIT.
    Since this is no longer a restriction in eBPF, we remove this
    limitation.

    Per Alexei Starovoitov [1]:
    > classic BPF has a restriction that last insn is always BPF_RET.
    > eBPF doesn't have BPF_RET instruction and this restriction.
    > It has BPF_EXIT insn which can appear anywhere in the program
    > one or more times and it doesn't have to be last insn.

    [1] https://lkml.org/lkml/2014/11/27/2

    Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler")
    Acked-by: Alexei Starovoitov
    Signed-off-by: Zi Shen Lim
    Signed-off-by: Will Deacon
    Signed-off-by: Greg Kroah-Hartman

    Zi Shen Lim
     
  • commit 7d57511d2dba03a8046c8b428dd9192a4bfc1e73 upstream.

    Commit a469abd0f868 (ARM: elf: add new hwcap for identifying atomic
    ldrd/strd instructions) introduces HWCAP_ELF for 32-bit ARM
    applications. As LPAE is always present on arm64, report the
    corresponding compat HWCAP to user space.

    Signed-off-by: Catalin Marinas
    Signed-off-by: Will Deacon
    Signed-off-by: Greg Kroah-Hartman

    Catalin Marinas
     
  • commit 17181fb7a0c3a279196c0eeb2caba65a1519614b upstream.

    As long as struct thin_c is in the list, anyone can grab a reference of
    it. Consequently, we must wait for the reference count to drop to zero
    *after* we remove the structure from the list, not before.

    Signed-off-by: Mikulas Patocka
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Mikulas Patocka
     
  • commit 2c43fd26e46734430122b8d2ad3024bb532df3ef upstream.

    Discard bios and thin device deletion have the potential to release data
    blocks. If the thin-pool is in out-of-data-space mode, and blocks were
    released, transition the thin-pool back to full write mode.

    The correct time to do this is just after the thin-pool metadata commit.
    It cannot be done before the commit because the space maps will not
    allow immediate reuse of the data blocks in case there's a rollback
    following power failure.

    Signed-off-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Joe Thornber
     
  • commit 45ec9bd0fd7abf8705e7cf12205ff69fe9d51181 upstream.

    When the pool was in PM_OUT_OF_SPACE mode its process_prepared_discard
    function pointer was incorrectly being set to
    process_prepared_discard_passdown rather than process_prepared_discard.

    This incorrect function pointer meant the discard was being passed down,
    but not effecting the mapping. As such any discard that was issued, in
    an attempt to reclaim blocks, would not successfully free data space.

    Reported-by: Eric Sandeen
    Signed-off-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Joe Thornber
     
  • commit c1c6156fe4d4577444b769d7edd5dd503e57bbc9 upstream.

    This function isn't right and it causes a static checker warning:

    drivers/md/dm-thin.c:3016 maybe_resize_data_dev()
    error: potentially using uninitialized 'sb_data_size'.

    It should set "*count" and return zero on success the same as the
    sm_metadata_get_nr_blocks() function does earlier.

    Fixes: 3241b1d3e0aa ('dm: add persistent data library')
    Signed-off-by: Dan Carpenter
    Acked-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit f824a2af3dfbbb766c02e19df21f985bceadf0ee upstream.

    We never bother caching a partial block that is at the back end of the
    origin device. No cell ever gets locked, but the calling code was
    assuming it was and trying to release it.

    Now the code only releases if the cell has been set to a non NULL
    value.

    Signed-off-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Joe Thornber
     
  • commit 1e32134a5a404e80bfb47fad8a94e9bbfcbdacc5 upstream.

    If the incoming bio is a WRITE and completely covers a block then we
    don't bother to do any copying for a promotion operation. Once this is
    done the cache block and origin block will be different, so we need to
    set it to 'dirty'.

    Signed-off-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Joe Thornber
     
  • commit f29a3147e251d7ae20d3194ff67f109d71e501b4 upstream.

    Overwrite causes the cache block and origin blocks to diverge, which
    is only allowed in writeback mode.

    Signed-off-by: Joe Thornber
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Joe Thornber
     
  • commit 1a71d6ffe18c0d0f03fc8531949cc8ed41d702ee upstream.

    Use memzero_explicit to cleanup sensitive data allocated on stack
    to prevent the compiler from optimizing and removing memset() calls.

    Signed-off-by: Milan Broz
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Milan Broz
     
  • commit 445559cdcb98a141f5de415b94fd6eaccab87e6d upstream.

    When dm-bufio sets out to use the bio built into a struct dm_buffer to
    issue an IO, it needs to call bio_reset after it's done with the bio
    so that we can free things attached to the bio such as the integrity
    payload. Therefore, inject our own endio callback to take care of
    the bio_reset after calling submit_io's end_io callback.

    Test case:
    1. modprobe scsi_debug delay=0 dif=1 dix=199 ato=1 dev_size_mb=300
    2. Set up a dm-bufio client, e.g. dm-verity, on the scsi_debug device
    3. Repeatedly read metadata and watch kmalloc-192 leak!

    Signed-off-by: Darrick J. Wong
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Mike Snitzer
    Signed-off-by: Greg Kroah-Hartman

    Darrick J. Wong
     
  • commit 08d4f7722268755ee34ed1c9e8afee7dfff022bb upstream.

    This patch fixes kmemcheck warning in switch_names. The function
    switch_names swaps inline names of two dentries. It swaps full arrays
    d_iname, no matter how many bytes are really used by the strings. Reading
    data beyond string ends results in kmemcheck warning.

    We fix the bug by marking both arrays as fully initialized.

    Signed-off-by: Mikulas Patocka
    Signed-off-by: Al Viro
    Signed-off-by: Greg Kroah-Hartman

    Mikulas Patocka
     
  • commit 4bd5a980de87d2b5af417485bde97b8eb3d6cf6a upstream.

    nfs4_layoutget_release() drops layout hdr refcnt. Grab the refcnt
    early so that it is safe to call .release in case nfs4_alloc_pages
    fails.

    Signed-off-by: Peng Tao
    Fixes: a47970ff78147 ("NFSv4.1: Hold reference to layout hdr in layoutget")
    Signed-off-by: Trond Myklebust
    Signed-off-by: Greg Kroah-Hartman

    Peng Tao
     
  • commit 9234f3190bf8b25b11b105191d408ac50a107948 upstream.

    f2fs_write_begin() doesn't initialize the 'dn' variable if the inode has
    inline data. However it uses its contents to decide whether it should
    just zero out the page or load data to it. Thus if we are unlucky we can
    zero out page contents instead of loading inline data into a page.

    CC: Changman Lee
    Signed-off-by: Jan Kara
    Signed-off-by: Jaegeuk Kim
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit 9bd27ae4aafc9bfee6c8791f7d801ea16cc5622b upstream.

    If user specifies too low end sector for trimming, f2fs_trim_fs() will
    use uninitialized value as a number of trimmed blocks and returns it to
    userspace. Initialize number of trimmed blocks early to avoid the
    problem.

    Coverity-id: 1248809
    Signed-off-by: Jan Kara
    Signed-off-by: Jaegeuk Kim
    Signed-off-by: Greg Kroah-Hartman

    Jan Kara
     
  • commit b6c92b7e0af575e2b8b05bdf33633cf9e1661cbf upstream.

    The .eh_abort_handler needs to return SUCCESS, FAILED, or
    FAST_IO_FAIL. So fixup all callers to adhere to this requirement.

    Reviewed-by: Robert Elliott
    Signed-off-by: Hannes Reinecke
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Greg Kroah-Hartman

    Hannes Reinecke
     
  • commit fe08be3ec8672ed92b3ed1b85810df9fa0f98931 upstream.

    The code reads the default voltage selector from its register. If the
    bootloader disables the regulator, the default voltage selector will be
    0 which results in faulty behaviour of this regulator driver.

    This patch sets a default voltage selector for vddpu if it is not set in
    the register.

    Signed-off-by: Markus Pargmann
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Markus Pargmann
     
  • commit 6e755ddc2935d970574263db3eca547eb70e67d7 upstream.

    This patch addresses few endianness related bug fixes.

    Signed-off-by: Sumit Saxena
    Signed-off-by: Kashyap Desai
    Reviewed-by: Tomas Henzl
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Greg Kroah-Hartman

    Sumit.Saxena@avagotech.com
     
  • commit 170c238701ec38b1829321b17c70671c101bac55 upstream.

    Corrected wait_event() call which was waiting for wrong completion
    status (0xFF).

    Signed-off-by: Sumit Saxena
    Signed-off-by: Kashyap Desai
    Reviewed-by: Tomas Henzl
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Greg Kroah-Hartman

    Sumit.Saxena@avagotech.com