commit 7f4e64246049cef5ae1eca37eec1701a9477799e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Mar 18 13:22:50 2015 +0100

    Linux 3.10.72

commit 868fd3d3e338c81232050a0519b86e7d6b6462be
Author: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Date:   Wed Feb 4 00:21:13 2015 +0300

    ath5k: fix spontaneus AR5312 freezes
    
    commit 8bfae4f9938b6c1f033a5159febe97e441d6d526 upstream.
    
    Sometimes while CPU have some load and ath5k doing the wireless
    interface reset the whole WiSoC completely freezes. Set of tests shows
    that using atomic delay function while we wait interface reset helps to
    avoid such freezes.
    
    The easiest way to reproduce this issue: create a station interface,
    start continous scan with wpa_supplicant and load CPU by something. Or
    just create multiple station interfaces and put them all in continous
    scan.
    
    This patch partially reverts the commit 1846ac3dbec0 ("ath5k: Use
    usleep_range where possible"), which replaces initial udelay()
    by usleep_range().
    
    I do not know actual source of this issue, but all looks like that HW
    freeze is caused by transaction on internal SoC bus, while wireless
    block is in reset state.
    
    Also I should note that I do not know how many chips are affected, but I
    did not see this issue with chips, other than AR5312.
    
    CC: Jiri Slaby <jirislaby@gmail.com>
    CC: Nick Kossifidis <mickflemm@gmail.com>
    CC: Luis R. Rodriguez <mcgrof@do-not-panic.com>
    Fixes: 1846ac3dbec0 ("ath5k: Use usleep_range where possible")
    Reported-by: Christophe Prevotaux <c.prevotaux@rural-networks.com>
    Tested-by: Christophe Prevotaux <c.prevotaux@rural-networks.com>
    Tested-by: Eric Bree <ebree@nltinc.com>
    Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8686fc3d2fb81fbcc91f873d7227069d21fc2fcf
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Mar 1 10:41:37 2015 +0000

    ACPI / video: Load the module even if ACPI is disabled
    
    commit 6e17cb12881ba8d5e456b89f072dc6b70048af36 upstream.
    
    i915.ko depends upon the acpi/video.ko module and so refuses to load if
    ACPI is disabled at runtime if for example the BIOS is broken beyond
    repair. acpi/video provides an optional service for i915.ko and so we
    should just allow the modules to load, but do no nothing in order to let
    the machines boot correctly.
    
    Reported-by: Bill Augur <bill-auger@programmer.net>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Acked-by: Aaron Lu <aaron.lu@intel.com>
    [ rjw: Fixed up the new comment in acpi_video_init() ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f0240c5736ec77841f3cc3e0a91c2a8a1fa9357
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Feb 19 16:02:15 2015 -0500

    drm/radeon: fix 1 RB harvest config setup for TN/RL
    
    commit dbfb00c3e7e18439f2ebf67fe99bf7a50b5bae1e upstream.
    
    The logic was reversed from what the hw actually exposed.
    Fixes graphics corruption in certain harvest configurations.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a370f956f5ff526e98a6fc7e71ac4175ad0b2503
Author: Fernando Soto <fsoto@bluecatnetworks.com>
Date:   Fri Jun 14 23:13:35 2013 +0000

    Drivers: hv: vmbus: incorrect device name is printed when child device is unregistered
    
    commit 84672369ffb98a51d4ddf74c20a23636da3ad615 upstream.
    
    Whenever a device is unregistered in vmbus_device_unregister (drivers/hv/vmbus_drv.c), the device name in the log message may contain garbage as the memory has already been freed by the time pr_info is called. Log example:
     [ 3149.170475] hv_vmbus: child device àõsèè0_5 unregistered
    
    By logging the message just before calling device_unregister, the correct device name is printed:
    [ 3145.034652] hv_vmbus: child device vmbus_0_5 unregistered
    
    Also changing register & unregister messages to debug to avoid unnecessarily cluttering the kernel log.
    
    Signed-off-by: Fernando M Soto <fsoto@bluecatnetworks.com>
    Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Joseph Salisbury <joseph.salisbury@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ec88c962fa283e437524c070aa135b2d47ae929
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Tue Jan 6 22:34:19 2015 +0100

    HID: fixup the conflicting keyboard mappings quirk
    
    commit 8e7b341037db1835ee6eea64663013cbfcf33575 upstream.
    
    The ignore check that got added in 6ce901eb61 ("HID: input: fix confusion
    on conflicting mappings") needs to properly check for VARIABLE reports
    as well (ARRAY reports should be ignored), otherwise legitimate keyboards
    might break.
    
    Fixes: 6ce901eb61 ("HID: input: fix confusion on conflicting mappings")
    Reported-by: Fredrik Hallenberg <megahallon@gmail.com>
    Reported-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e886ecbf9b9543b5e2e6dac3b808b9a3c1552a8
Author: David Herrmann <dh.herrmann@gmail.com>
Date:   Mon Dec 29 15:21:26 2014 +0100

    HID: input: fix confusion on conflicting mappings
    
    commit 6ce901eb61aa30ba8565c62049ee80c90728ef14 upstream.
    
    On an PC-101/103/104 keyboard (American layout) the 'Enter' key and its
    neighbours look like this:
    
               +---+ +---+ +-------+
               | 1 | | 2 | |   5   |
               +---+ +---+ +-------+
                 +---+ +-----------+
                 | 3 | |     4     |
                 +---+ +-----------+
    
    On a PC-102/105 keyboard (European layout) it looks like this:
    
               +---+ +---+ +-------+
               | 1 | | 2 | |       |
               +---+ +---+ +-+  4  |
                 +---+ +---+ |     |
                 | 3 | | 5 | |     |
                 +---+ +---+ +-----+
    
    (Note that the number of keys is the same, but key '5' is moved down and
     the shape of key '4' is changed. Keys '1' to '3' are exactly the same.)
    
    The keys 1-4 report the same scan-code in HID in both layouts, even though
    the keysym they produce is usually different depending on the XKB-keymap
    used by user-space.
    However, key '5' (US 'backslash'/'pipe') reports 0x31 for the upper layout
    and 0x32 for the lower layout, as defined by the HID spec. This is highly
    confusing as the linux-input API uses a single keycode for both.
    
    So far, this was never a problem as there never has been a keyboard with
    both of those keys present at the same time. It would have to look
    something like this:
    
               +---+ +---+ +-------+
               | 1 | | 2 | |  x31  |
               +---+ +---+ +-------+
                 +---+ +---+ +-----+
                 | 3 | |x32| |  4  |
                 +---+ +---+ +-----+
    
    HID can represent such a keyboard, but the linux-input API cannot.
    Furthermore, any user-space mapping would be confused by this and,
    luckily, no-one ever produced such hardware.
    
    Now, the HID input layer fixed this mess by mapping both 0x31 and 0x32 to
    the same keycode (KEY_BACKSLASH==0x2b). As only one of both physical keys
    is present on a hardware, this works just fine.
    
    Lets introduce hardware-vendors into this:
    ------------------------------------------
    
    Unfortunately, it seems way to expensive to produce a different device for
    American and European layouts. Therefore, hardware-vendors put both keys,
    (0x31 and 0x32) on the same keyboard, but only one of them is hooked up
    to the physical button, the other one is 'dead'.
    This means, they can use the same hardware, with a different button-layout
    and automatically produce the correct HID events for American *and*
    European layouts. This is unproblematic for normal keyboards, as the
    'dead' key will never report any KEY-DOWN events. But RollOver keyboards
    send the whole matrix on each key-event, allowing n-key roll-over mode.
    This means, we get a 0x31 and 0x32 event on each key-press. One of them
    will always be 0, the other reports the real state. As we map both to the
    same keycode, we will get spurious key-events, even though the real
    key-state never changed.
    
    The easiest way would be to blacklist 'dead' keys and never handle those.
    We could simply read the 'country' tag of USB devices and blacklist either
    key according to the layout. But... hardware vendors... want the same
    device for all countries and thus many of them set 'country' to 0 for all
    devices. Meh..
    
    So we have to deal with this properly. As we cannot know which of the keys
    is 'dead', we either need a heuristic and track those keys, or we simply
    make use of our value-tracking for HID fields. We simply ignore HID events
    for absolute data if the data didn't change. As HID tracks events on the
    HID level, we haven't done the keycode translation, yet. Therefore, the
    'dead' key is tracked independently of the real key, therefore, any events
    on it will be ignored.
    
    This patch simply discards any HID events for absolute data if it didn't
    change compared to the last report. We need to ignore relative and
    buffered-byte reports for obvious reasons. But those cannot be affected by
    this bug, so we're fine.
    
    Preferably, we'd do this filtering on the HID-core level. But this might
    break a lot of custom drivers, if they do not follow the HID specs.
    Therefore, we do this late in hid-input just before we inject it into the
    input layer (which does the exact same filtering, but on the keycode
    level).
    
    If this turns out to break some devices, we might have to limit filtering
    to EV_KEY events. But lets try to do the Right Thing first, and properly
    filter any absolute data that didn't change.
    
    This patch is tagged for 'stable' as it fixes a lot of n-key RollOver
    hardware. We might wanna wait with backporting for a while, before we know
    it doesn't break anything else, though.
    
    Reported-by: Adam Goode <adam@spicenitz.org>
    Reported-by: Fredrik Hallenberg <megahallon@gmail.com>
    Tested-by: Fredrik Hallenberg <megahallon@gmail.com>
    Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52857af3bd2a2673d45466f3519304ad6ce1c05e
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Mon Jan 19 14:47:27 2015 +0000

    staging: comedi: cb_pcidas64: fix incorrect AI range code handling
    
    commit be8e89087ec2d2c8a1ad1e3db64bf4efdfc3c298 upstream.
    
    The hardware range code values and list of valid ranges for the AI
    subdevice is incorrect for several supported boards.  The hardware range
    code values for all boards except PCI-DAS4020/12 is determined by
    calling `ai_range_bits_6xxx()` based on the maximum voltage of the range
    and whether it is bipolar or unipolar, however it only returns the
    correct hardware range code for the PCI-DAS60xx boards.  For
    PCI-DAS6402/16 (and /12) it returns the wrong code for the unipolar
    ranges.  For PCI-DAS64/Mx/16 it returns the wrong code for all the
    ranges and the comedi range table is incorrect.
    
    Change `ai_range_bits_6xxx()` to use a look-up table pointed to by new
    member `ai_range_codes` of `struct pcidas64_board` to map the comedi
    range table indices to the hardware range codes.  Use a new comedi range
    table for the PCI-DAS64/Mx/16 boards (and the commented out variants).
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 840732fdbf11a53ca0cf0893b14d809ae3d1f228
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Feb 17 14:34:00 2015 -0500

    dm snapshot: fix a possible invalid memory access on unload
    
    commit 22aa66a3ee5b61e0f4a0bfeabcaa567861109ec3 upstream.
    
    When the snapshot target is unloaded, snapshot_dtr() waits until
    pending_exceptions_count drops to zero.  Then, it destroys the snapshot.
    Therefore, the function that decrements pending_exceptions_count
    should not touch the snapshot structure after the decrement.
    
    pending_complete() calls free_pending_exception(), which decrements
    pending_exceptions_count, and then it performs up_write(&s->lock) and it
    calls retry_origin_bios() which dereferences  s->origin.  These two
    memory accesses to the fields of the snapshot may touch the dm_snapshot
    struture after it is freed.
    
    This patch moves the call to free_pending_exception() to the end of
    pending_complete(), so that the snapshot will not be destroyed while
    pending_complete() is in progress.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bed72e42e3d3b9ce3d34b9f08550d22b2f801f4
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Feb 17 14:30:53 2015 -0500

    dm: fix a race condition in dm_get_md
    
    commit 2bec1f4a8832e74ebbe859f176d8a9cb20dd97f4 upstream.
    
    The function dm_get_md finds a device mapper device with a given dev_t,
    increases the reference count and returns the pointer.
    
    dm_get_md calls dm_find_md, dm_find_md takes _minor_lock, finds the
    device, tests that the device doesn't have DMF_DELETING or DMF_FREEING
    flag, drops _minor_lock and returns pointer to the device. dm_get_md then
    calls dm_get. dm_get calls BUG if the device has the DMF_FREEING flag,
    otherwise it increments the reference count.
    
    There is a possible race condition - after dm_find_md exits and before
    dm_get is called, there are no locks held, so the device may disappear or
    DMF_FREEING flag may be set, which results in BUG.
    
    To fix this bug, we need to call dm_get while we hold _minor_lock. This
    patch renames dm_find_md to dm_get_md and changes it so that it calls
    dm_get while holding the lock.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0696dbb4ae63bce45c9f59df5f97e7f6d1f99226
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Fri Feb 13 11:05:37 2015 -0800

    dm io: reject unsupported DISCARD requests with EOPNOTSUPP
    
    commit 37527b869207ad4c208b1e13967d69b8bba1fbf9 upstream.
    
    I created a dm-raid1 device backed by a device that supports DISCARD
    and another device that does NOT support DISCARD with the following
    dm configuration:
    
     #  echo '0 2048 mirror core 1 512 2 /dev/sda 0 /dev/sdb 0' | dmsetup create moo
     # lsblk -D
     NAME         DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
     sda                 0        4K       1G         0
     `-moo (dm-0)        0        4K       1G         0
     sdb                 0        0B       0B         0
     `-moo (dm-0)        0        4K       1G         0
    
    Notice that the mirror device /dev/mapper/moo advertises DISCARD
    support even though one of the mirror halves doesn't.
    
    If I issue a DISCARD request (via fstrim, mount -o discard, or ioctl
    BLKDISCARD) through the mirror, kmirrord gets stuck in an infinite
    loop in do_region() when it tries to issue a DISCARD request to sdb.
    The problem is that when we call do_region() against sdb, num_sectors
    is set to zero because q->limits.max_discard_sectors is zero.
    Therefore, "remaining" never decreases and the loop never terminates.
    
    To fix this: before entering the loop, check for the combination of
    REQ_DISCARD and no discard and return -EOPNOTSUPP to avoid hanging up
    the mirror device.
    
    This bug was found by the unfortunate coincidence of pvmove and a
    discard operation in the RHEL 6.5 kernel; upstream is also affected.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Acked-by: "Martin K. Petersen" <martin.petersen@oracle.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8843f1a0121580f96e9c8cfdd50bda4906c9e381
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Feb 12 10:09:20 2015 -0500

    dm mirror: do not degrade the mirror on discard error
    
    commit f2ed51ac64611d717d1917820a01930174c2f236 upstream.
    
    It may be possible that a device claims discard support but it rejects
    discards with -EOPNOTSUPP.  It happens when using loopback on ext2/ext3
    filesystem driven by the ext4 driver.  It may also happen if the
    underlying devices are moved from one disk on another.
    
    If discard error happens, we reject the bio with -EOPNOTSUPP, but we do
    not degrade the array.
    
    This patch fixes failed test shell/lvconvert-repair-transient.sh in the
    lvm2 testsuite if the testsuite is extracted on an ext2 or ext3
    filesystem and it is being driven by the ext4 driver.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 596c469f8f338819a95531c5bdf970b9d98e4bb9
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Tue Jan 27 18:16:51 2015 +0000

    staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back
    
    commit 42b8ce6f55facfa101462e694d33fc6bca471138 upstream.
    
    `do_cmd_ioctl()` in "comedi_fops.c" handles the `COMEDI_CMD` ioctl.
    This returns `-EAGAIN` if it has copied a modified `struct comedi_cmd`
    back to user-space.  (This occurs when the low-level Comedi driver's
    `do_cmdtest()` handler returns non-zero to indicate a problem with the
    contents of the `struct comedi_cmd`, or when the `struct comedi_cmd` has
    the `CMDF_BOGUS` flag set.)
    
    `compat_cmd()` in "comedi_compat32.c" handles the 32-bit compatible
    version of the `COMEDI_CMD` ioctl.  Currently, it never copies a 32-bit
    compatible version of `struct comedi_cmd` back to user-space, which is
    at odds with the way the regular `COMEDI_CMD` ioctl is handled.  To fix
    it, change `compat_cmd()` to copy a 32-bit compatible version of the
    `struct comedi_cmd` back to user-space when the main ioctl handler
    returns `-EAGAIN`.
    
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e6493c26e176987bf215625ebcaea5954a05fa1
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Thu Jun 26 23:55:41 2014 +0800

    clk: sunxi: Support factor clocks with N factor starting not from 0
    
    commit 9a5e6c7eb5ccbb5f0d3a1dffce135f0a727f40e1 upstream.
    
    The PLLs on newer Allwinner SoC's, such as the A31 and A23, have a
    N multiplier factor that starts from 1, not 0.
    
    This patch adds an option to the factor clk driver's config data
    structures to specify the base value of N.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28e75102ed1fbc6529751865b6b12070cb161b8d
Author: Minh Duc Tran <MinhDuc.Tran@Emulex.Com>
Date:   Mon Feb 9 18:54:09 2015 +0000

    fixed invalid assignment of 64bit mask to host dma_boundary for scatter gather segment boundary limit.
    
    commit f76a610a8b4b6280eaedf48f3af9d5d74e418b66 upstream.
    
    In reference to bug https://bugzilla.redhat.com/show_bug.cgi?id=1097141
    Assert is seen with AMD cpu whenever calling pci_alloc_consistent.
    
    [   29.406183] ------------[ cut here ]------------
    [   29.410505] kernel BUG at lib/iommu-helper.c:13!
    
    Signed-off-by: Minh Tran <minh.tran@emulex.com>
    Fixes: 6733b39a1301b0b020bbcbf3295852e93e624cb1
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6b14e987c1f1aed20c494da061b5a90b8265520
Author: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Date:   Fri Feb 27 15:51:56 2015 -0800

    nilfs2: fix potential memory overrun on inode
    
    commit 957ed60b53b519064a54988c4e31e0087e47d091 upstream.
    
    Each inode of nilfs2 stores a root node of a b-tree, and it turned out to
    have a memory overrun issue:
    
    Each b-tree node of nilfs2 stores a set of key-value pairs and the number
    of them (in "bn_nchildren" member of nilfs_btree_node struct), as well as
    a few other "bn_*" members.
    
    Since the value of "bn_nchildren" is used for operations on the key-values
    within the b-tree node, it can cause memory access overrun if a large
    number is incorrectly set to "bn_nchildren".
    
    For instance, nilfs_btree_node_lookup() function determines the range of
    binary search with it, and too large "bn_nchildren" leads
    nilfs_btree_node_get_key() in that function to overrun.
    
    As for intermediate b-tree nodes, this is prevented by a sanity check
    performed when each node is read from a drive, however, no sanity check
    has been done for root nodes stored in inodes.
    
    This patch fixes the issue by adding missing sanity check against b-tree
    root nodes so that it's called when on-memory inodes are read from ifile,
    inode metadata file.
    
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1152730c698dffedb14eaac8146e6187266d6622
Author: Mitko Haralanov <mitko.haralanov@intel.com>
Date:   Fri Jan 16 08:55:27 2015 -0500

    IB/qib: Do not write EEPROM
    
    commit 18c0b82a3e4501511b08d0e8676fb08ac08734a3 upstream.
    
    This changeset removes all the code that allows the driver to write to
    the EEPROM and update the recorded error counters and power on hours.
    
    These two stats are unused and writing them exposes a timing risk
    which could leave the EEPROM in a bad state preventing further normal
    operation of the HCA.
    
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Roland Dreier <roland@purestorage.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e95941876b4eaeec3052dc5fa998ff5f7096e7d
Author: Tony Battersby <tonyb@cybernetics.com>
Date:   Wed Feb 11 11:32:06 2015 -0500

    sg: fix read() error reporting
    
    commit 3b524a683af8991b4eab4182b947c65f0ce1421b upstream.
    
    Fix SCSI generic read() incorrectly returning success after detecting an
    error.
    
    Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7120339ac0391877be7013a8c5bf9dafeb3e984
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 19 13:01:37 2015 +0100

    ALSA: hda - Add pin configs for ASUS mobo with IDT 92HD73XX codec
    
    commit 6426460e5d87810e042962281fe3c1e8fc256162 upstream.
    
    BIOS doesn't seem to set up pins for 5.1 and the SPDIF out, so we need
    to give explicitly here.
    
    Reported-and-tested-by: Misan Thropos <misanthropos@gmx.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bfa6e5b16a31f4218c12d8ab7f2064d8ab96e2f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Dec 18 10:02:41 2014 +0100

    ALSA: pcm: Don't leave PREPARED state after draining
    
    commit 70372a7566b5e552dbe48abdac08c275081d8558 upstream.
    
    When a PCM draining is performed to an empty stream that has been
    already in PREPARED state, the current code just ignores and leaves as
    it is, although the drain is supposed to set all such streams to SETUP
    state.  This patch covers that overlooked case.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 125c50411b6df22afee8bb353b524f96b2ea71e8
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Fri Feb 27 18:40:31 2015 +0100

    tty: fix up atime/mtime mess, take four
    
    commit f0bf0bd07943bfde8f5ac39a32664810a379c7d3 upstream.
    
    This problem was taken care of three times already in
    * b0de59b5733d18b0d1974a060860a8b5c1b36a2e (TTY: do not update
      atime/mtime on read/write),
    * 37b7f3c76595e23257f61bd80b223de8658617ee (TTY: fix atime/mtime
      regression), and
    * b0b885657b6c8ef63a46bc9299b2a7715d19acde (tty: fix up atime/mtime
      mess, take three)
    
    But it still misses one point. As John Paul correctly points out, we
    do not care about setting date. If somebody ever changes wall
    time backwards (by mistake for example), tty timestamps are never
    updated until the original wall time passes.
    
    So check the absolute difference of times and if it large than "8
    seconds or so", always update the time. That means we will update
    immediatelly when changing time. Ergo, CAP_SYS_TIME can foul the
    check, but it was always that way.
    
    Thanks John for serving me this so nicely debugged.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Reported-by: John Paul Perry <john_paul.perry@alcatel-lucent.com>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4301ed560bcb78eae05bfbe76e516bb549861b3
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Sat Mar 7 21:08:46 2015 +0000

    sunrpc: fix braino in ->poll()
    
    commit 1711fd9addf214823b993468567cab1f8254fc51 upstream.
    
    POLL_OUT isn't what callers of ->poll() are expecting to see; it's
    actually __SI_POLL | 2 and it's a siginfo code, not a poll bitmap
    bit...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Bruce Fields <bfields@fieldses.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf6c05a77c5ef41bd72f45a4a008724ffd393668
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Feb 21 22:16:11 2015 -0500

    procfs: fix race between symlink removals and traversals
    
    commit 7e0e953bb0cf649f93277ac8fb67ecbb7f7b04a9 upstream.
    
    use_pde()/unuse_pde() in ->follow_link()/->put_link() resp.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db32c77427f773d625bc1e27720bd98cbb807185
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Feb 21 22:05:11 2015 -0500

    debugfs: leave freeing a symlink body until inode eviction
    
    commit 0db59e59299f0b67450c5db21f7f316c8fb04e84 upstream.
    
    As it is, we have debugfs_remove() racing with symlink traversals.
    Supply ->evict_inode() and do freeing there - inode will remain
    pinned until we are done with the symlink body.
    
    And rip the idiocy with checking if dentry is positive right after
    we'd verified debugfs_positive(), which is a stronger check...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d91c5de58cd9ed6d37f14bde906bb307bf681ba1
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Feb 21 22:19:57 2015 -0500

    autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
    
    commit 0a280962dc6e117e0e4baa668453f753579265d9 upstream.
    
    X-Coverup: just ask spender
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9fd948c1b776066a84386d146f3a4e848b976bd5
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Feb 18 10:34:50 2015 +0700

    USB: serial: fix potential use-after-free after failed probe
    
    commit 07fdfc5e9f1c966be8722e8fa927e5ea140df5ce upstream.
    
    Fix return value in probe error path, which could end up returning
    success (0) on errors. This could in turn lead to use-after-free or
    double free (e.g. in port_remove) when the port device is removed.
    
    Fixes: c706ebdfc895 ("USB: usb-serial: call port_probe and port_remove
    at the right times")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Greg Kroah-Hartman <greg@kroah.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 565acebb005569dc8527a9b2ad2c904ba92bf9d1
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Mar 4 10:39:06 2015 +0100

    TTY: fix tty_wait_until_sent on 64-bit machines
    
    commit 79fbf4a550ed6a22e1ae1516113e6c7fa5d56a53 upstream.
    
    Fix overflow bug in tty_wait_until_sent on 64-bit machines, where an
    infinite timeout (0) would be passed to the underlying tty-driver's
    wait_until_sent-operation as a negative timeout (-1), causing it to
    return immediately.
    
    This manifests itself for example as tcdrain() returning immediately,
    drivers not honouring the drain flags when setting terminal attributes,
    or even dropped data on close as a requested infinite closing-wait
    timeout would be ignored.
    
    The first symptom  was reported by Asier LLANO who noted that tcdrain()
    returned prematurely when using the ftdi_sio usb-serial driver.
    
    Fix this by passing 0 rather than MAX_SCHEDULE_TIMEOUT (LONG_MAX) to the
    underlying tty driver.
    
    Note that the serial-core wait_until_sent-implementation is not affected
    by this bug due to a lucky chance (comparison to an unsigned maximum
    timeout), and neither is the cyclades one that had an explicit check for
    negative timeouts, but all other tty drivers appear to be affected.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: ZIV-Asier Llano Palacios <asier.llano@cgglobal.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da90e1a218120d6a04cda86b09899de98132ff04
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Mar 4 10:39:05 2015 +0100

    USB: serial: fix infinite wait_until_sent timeout
    
    commit f528bf4f57e43d1af4b2a5c97f09e43e0338c105 upstream.
    
    Make sure to handle an infinite timeout (0).
    
    Note that wait_until_sent is currently never called with a 0-timeout
    argument due to a bug in tty_wait_until_sent.
    
    Fixes: dcf010503966 ("USB: serial: add generic wait_until_sent
    implementation")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c5f4dde19242e34f04e04087df40f35a15754be
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Mar 4 10:39:03 2015 +0100

    net: irda: fix wait_until_sent poll timeout
    
    commit 2c3fbe3cf28fbd7001545a92a83b4f8acfd9fa36 upstream.
    
    In case an infinite timeout (0) is requested, the irda wait_until_sent
    implementation would use a zero poll timeout rather than the default
    200ms.
    
    Note that wait_until_sent is currently never called with a 0-timeout
    argument due to a bug in tty_wait_until_sent.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 919977b109215485706287f49383977dea92f878
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Fri Mar 6 17:14:21 2015 +0200

    xhci: fix reporting of 0-sized URBs in control endpoint
    
    commit 45ba2154d12fc43b70312198ec47085f10be801a upstream.
    
    When a control transfer has a short data stage, the xHCI controller generates
    two transfer events: a COMP_SHORT_TX event that specifies the untransferred
    amount, and a COMP_SUCCESS event. But when the data stage is not short, only the
    COMP_SUCCESS event occurs. Therefore, xhci-hcd must set urb->actual_length to
    urb->transfer_buffer_length while processing the COMP_SUCCESS event, unless
    urb->actual_length was set already by a previous COMP_SHORT_TX event.
    
    The driver checks this by seeing whether urb->actual_length == 0, but this alone
    is the wrong test, as it is entirely possible for a short transfer to have an
    urb->actual_length = 0.
    
    This patch changes the xhci driver to rely on a new td->urb_length_set flag,
    which is set to true when a COMP_SHORT_TX event is received and the URB length
    updated at that stage.
    
    This fixes a bug which affected the HSO plugin, which relies on URBs with
    urb->actual_length == 0 to halt re-submitting the RX URB in the control
    endpoint.
    
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20ba9f7595d0e1b6551422ad1503d4e9eb650504
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Feb 24 18:27:01 2015 +0200

    xhci: Allocate correct amount of scratchpad buffers
    
    commit 6596a926b0b6c80b730a1dd2fa91908e0a539c37 upstream.
    
    Include the high order bit fields for Max scratchpad buffers when
    calculating how many scratchpad buffers are needed.
    
    I'm suprised this hasn't caused more issues, we never allocated more than
    32 buffers even if xhci needed more. Either we got lucky and xhci never
    really used past that area, or then we got enough zeroed dma memory anyway.
    
    Should be backported as far back as possible
    
    Reported-by: Tim Chen <tim.c.chen@linux.intel.com>
    Tested-by: Tim Chen <tim.c.chen@linux.intel.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bd014f32671970a89ae9a8ccb0f5dd171485a50
Author: Max Mansfield <max.m.mansfield@gmail.com>
Date:   Mon Mar 2 18:38:02 2015 -0700

    usb: ftdi_sio: Add jtag quirk support for Cyber Cortex AV boards
    
    commit c7d373c3f0da2b2b78c4b1ce5ae41485b3ef848c upstream.
    
    This patch integrates Cyber Cortex AV boards with the existing
    ftdi_jtag_quirk in order to use serial port 0 with JTAG which is
    required by the manufacturers' software.
    
    Steps: 2
    
    [ftdi_sio_ids.h]
    1. Defined the device PID
    
    [ftdi_sio.c]
    2. Added a macro declaration to the ids array, in order to enable the
    jtag quirk for the device.
    
    Signed-off-by: Max Mansfield <max.m.mansfield@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92677959bdadb8f7dd2809c5eedc4cd8ca8aeee2
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Feb 13 10:54:53 2015 -0500

    USB: usbfs: don't leak kernel data in siginfo
    
    commit f0c2b68198589249afd2b1f2c4e8de8c03e19c16 upstream.
    
    When a signal is delivered, the information in the siginfo structure
    is copied to userspace.  Good security practice dicatates that the
    unused fields in this structure should be initialized to 0 so that
    random kernel stack data isn't exposed to the user.  This patch adds
    such an initialization to the two places where usbfs raises signals.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Dave Mielke <dave@mielke.cc>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e256bf1483582a189a5bd58437b704f15fb9b06c
Author: Michiel vd Garde <mgparser@gmail.com>
Date:   Fri Feb 27 02:08:29 2015 +0100

    USB: serial: cp210x: Adding Seletek device id's
    
    commit 675af70856d7cc026be8b6ea7a8b9db10b8b38a1 upstream.
    
    These device ID's are not associated with the cp210x module currently,
    but should be. This patch allows the devices to operate upon connecting
    them to the usb bus as intended.
    
    Signed-off-by: Michiel van de Garde <mgparser@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18e3cd7c4675d18e08352d3e69af1c5d6f05d7f6
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Feb 24 11:46:20 2015 +0000

    KVM: MIPS: Fix trace event to save PC directly
    
    commit b3cffac04eca9af46e1e23560a8ee22b1bd36d43 upstream.
    
    Currently the guest exit trace event saves the VCPU pointer to the
    structure, and the guest PC is retrieved by dereferencing it when the
    event is printed rather than directly from the trace record. This isn't
    safe as the printing may occur long afterwards, after the PC has changed
    and potentially after the VCPU has been freed. Usually this results in
    the same (wrong) PC being printed for multiple trace events. It also
    isn't portable as userland has no way to access the VCPU data structure
    when interpreting the trace record itself.
    
    Lets save the actual PC in the structure so that the correct value is
    accessible later.
    
    Fixes: 669e846e6c4e ("KVM/MIPS32: MIPS arch specific APIs for KVM")
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Acked-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61afd4acb82b97672a3ccdcf9e96dde60706f0cc
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Thu Feb 12 17:04:47 2015 +0100

    KVM: emulate: fix CMPXCHG8B on 32-bit hosts
    
    commit 4ff6f8e61eb7f96d3ca535c6d240f863ccd6fb7d upstream.
    
    This has been broken for a long time: it broke first in 2.6.35, then was
    almost fixed in 2.6.36 but this one-liner slipped through the cracks.
    The bug shows up as an infinite loop in Windows 7 (and newer) boot on
    32-bit hosts without EPT.
    
    Windows uses CMPXCHG8B to write to page tables, which causes a
    page fault if running without EPT; the emulator is then called from
    kvm_mmu_page_fault.  The loop then happens if the higher 4 bytes are
    not 0; the common case for this is that the NX bit (bit 63) is 1.
    
    Fixes: 6550e1f165f384f3a46b60a1be9aba4bc3c2adad
    Fixes: 16518d5ada690643453eb0aef3cc7841d3623c2d
    Reported-by: Erik Rull <erik.rull@rdsoftware.de>
    Tested-by: Erik Rull <erik.rull@rdsoftware.de>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edf2ec9971b81163e986556d7773e46b372264fd
Author: Quentin Casasnovas <quentin.casasnovas@oracle.com>
Date:   Tue Mar 3 16:31:38 2015 +0100

    Btrfs:__add_inode_ref: out of bounds memory read when looking for extended ref.
    
    commit dd9ef135e3542ffc621c4eb7f0091870ec7a1504 upstream.
    
    Improper arithmetics when calculting the address of the extended ref could
    lead to an out of bounds memory read and kernel panic.
    
    Signed-off-by: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Reviewed-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa41700e373fc52e3c4e5193008332bb558e9f03
Author: Filipe Manana <fdmanana@suse.com>
Date:   Sun Mar 1 20:36:00 2015 +0000

    Btrfs: fix data loss in the fast fsync path
    
    commit 3a8b36f378060d20062a0918e99fae39ff077bf0 upstream.
    
    When using the fast file fsync code path we can miss the fact that new
    writes happened since the last file fsync and therefore return without
    waiting for the IO to finish and write the new extents to the fsync log.
    
    Here's an example scenario where the fsync will miss the fact that new
    file data exists that wasn't yet durably persisted:
    
    1. fs_info->last_trans_committed == N - 1 and current transaction is
       transaction N (fs_info->generation == N);
    
    2. do a buffered write;
    
    3. fsync our inode, this clears our inode's full sync flag, starts
       an ordered extent and waits for it to complete - when it completes
       at btrfs_finish_ordered_io(), the inode's last_trans is set to the
       value N (via btrfs_update_inode_fallback -> btrfs_update_inode ->
       btrfs_set_inode_last_trans);
    
    4. transaction N is committed, so fs_info->last_trans_committed is now
       set to the value N and fs_info->generation remains with the value N;
    
    5. do another buffered write, when this happens btrfs_file_write_iter
       sets our inode's last_trans to the value N + 1 (that is
       fs_info->generation + 1 == N + 1);
    
    6. transaction N + 1 is started and fs_info->generation now has the
       value N + 1;
    
    7. transaction N + 1 is committed, so fs_info->last_trans_committed
       is set to the value N + 1;
    
    8. fsync our inode - because it doesn't have the full sync flag set,
       we only start the ordered extent, we don't wait for it to complete
       (only in a later phase) therefore its last_trans field has the
       value N + 1 set previously by btrfs_file_write_iter(), and so we
       have:
    
           inode->last_trans <= fs_info->last_trans_committed
               (N + 1)              (N + 1)
    
       Which made us not log the last buffered write and exit the fsync
       handler immediately, returning success (0) to user space and resulting
       in data loss after a crash.
    
    This can actually be triggered deterministically and the following excerpt
    from a testcase I made for xfstests triggers the issue. It moves a dummy
    file across directories and then fsyncs the old parent directory - this
    is just to trigger a transaction commit, so moving files around isn't
    directly related to the issue but it was chosen because running 'sync' for
    example does more than just committing the current transaction, as it
    flushes/waits for all file data to be persisted. The issue can also happen
    at random periods, since the transaction kthread periodicaly commits the
    current transaction (about every 30 seconds by default).
    The body of the test is:
    
      _scratch_mkfs >> $seqres.full 2>&1
      _init_flakey
      _mount_flakey
    
      # Create our main test file 'foo', the one we check for data loss.
      # By doing an fsync against our file, it makes btrfs clear the 'needs_full_sync'
      # bit from its flags (btrfs inode specific flags).
      $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 8K" \
                      -c "fsync" $SCRATCH_MNT/foo | _filter_xfs_io
    
      # Now create one other file and 2 directories. We will move this second file
      # from one directory to the other later because it forces btrfs to commit its
      # currently open transaction if we fsync the old parent directory. This is
      # necessary to trigger the data loss bug that affected btrfs.
      mkdir $SCRATCH_MNT/testdir_1
      touch $SCRATCH_MNT/testdir_1/bar
      mkdir $SCRATCH_MNT/testdir_2
    
      # Make sure everything is durably persisted.
      sync
    
      # Write more 8Kb of data to our file.
      $XFS_IO_PROG -c "pwrite -S 0xbb 8K 8K" $SCRATCH_MNT/foo | _filter_xfs_io
    
      # Move our 'bar' file into a new directory.
      mv $SCRATCH_MNT/testdir_1/bar $SCRATCH_MNT/testdir_2/bar
    
      # Fsync our first directory. Because it had a file moved into some other
      # directory, this made btrfs commit the currently open transaction. This is
      # a condition necessary to trigger the data loss bug.
      $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir_1
    
      # Now fsync our main test file. If the fsync succeeds, we expect the 8Kb of
      # data we wrote previously to be persisted and available if a crash happens.
      # This did not happen with btrfs, because of the transaction commit that
      # happened when we fsynced the parent directory.
      $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo
    
      # Simulate a crash/power loss.
      _load_flakey_table $FLAKEY_DROP_WRITES
      _unmount_flakey
    
      _load_flakey_table $FLAKEY_ALLOW_WRITES
      _mount_flakey
    
      # Now check that all data we wrote before are available.
      echo "File content after log replay:"
      od -t x1 $SCRATCH_MNT/foo
    
      status=0
      exit
    
    The expected golden output for the test, which is what we get with this
    fix applied (or when running against ext3/4 and xfs), is:
    
      wrote 8192/8192 bytes at offset 0
      XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
      wrote 8192/8192 bytes at offset 8192
      XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
      File content after log replay:
      0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
      *
      0020000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
      *
      0040000
    
    Without this fix applied, the output shows the test file does not have
    the second 8Kb extent that we successfully fsynced:
    
      wrote 8192/8192 bytes at offset 0
      XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
      wrote 8192/8192 bytes at offset 8192
      XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
      File content after log replay:
      0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
      *
      0020000
    
    So fix this by skipping the fsync only if we're doing a full sync and
    if the inode's last_trans is <= fs_info->last_trans_committed, or if
    the inode is already in the log. Also remove setting the inode's
    last_trans in btrfs_file_write_iter since it's useless/unreliable.
    
    Also because btrfs_file_write_iter no longer sets inode->last_trans to
    fs_info->generation + 1, don't set last_trans to 0 if we bail out and don't
    bail out if last_trans is 0, otherwise something as simple as the following
    example wouldn't log the second write on the last fsync:
    
      1. write to file
    
      2. fsync file
    
      3. fsync file
           |--> btrfs_inode_in_log() returns true and it set last_trans to 0
    
      4. write to file
           |--> btrfs_file_write_iter() no longers sets last_trans, so it
                remained with a value of 0
      5. fsync
           |--> inode->last_trans == 0, so it bails out without logging the
                second write
    
    A test case for xfstests will be sent soon.
    
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a042770a1f4fb346e360cbde61426288efb71688
Author: David Sterba <dsterba@suse.cz>
Date:   Tue Feb 24 18:57:18 2015 +0100

    btrfs: fix lost return value due to variable shadowing
    
    commit 1932b7be973b554ffe20a5bba6ffaed6fa995cdc upstream.
    
    A block-local variable stores error code but btrfs_get_blocks_direct may
    not return it in the end as there's a ret defined in the function scope.
    
    Fixes: d187663ef24c ("Btrfs: lock extents as we map them in DIO")
    Signed-off-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5e10b06c525414503cd40b536604b0167c062e6
Author: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date:   Fri Jan 23 00:34:02 2015 +0100

    iio: imu: adis16400: Fix sign extension
    
    commit 19e353f2b344ad86cea6ebbc0002e5f903480a90 upstream.
    
    The intention is obviously to sign-extend a 12 bit quantity. But
    because of C's promotion rules, the assignment is equivalent to "val16
    &= 0xfff;". Use the proper API for this.
    
    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Acked-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22e764ee4bafa7dbf5edd2580de006e32e671e93
Author: Andy Lutomirski <luto@amacapital.net>
Date:   Thu Mar 5 01:09:44 2015 +0100

    x86/asm/entry/64: Remove a bogus 'ret_from_fork' optimization
    
    commit 956421fbb74c3a6261903f3836c0740187cf038b upstream.
    
    'ret_from_fork' checks TIF_IA32 to determine whether 'pt_regs' and
    the related state make sense for 'ret_from_sys_call'.  This is
    entirely the wrong check.  TS_COMPAT would make a little more
    sense, but there's really no point in keeping this optimization
    at all.
    
    This fixes a return to the wrong user CS if we came from int
    0x80 in a 64-bit task.
    
    Signed-off-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/4710be56d76ef994ddf59087aad98c000fbab9a4.1424989793.git.luto@amacapital.net
    [ Backported from tip:x86/asm. ]
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8dbaea2b3d24e3a77e6a853ff76c19c5a6052f4e
Author: Michael Scott <michael.scott@linaro.org>
Date:   Tue Mar 10 13:15:02 2015 -0700

    PM / QoS: remove duplicate call to pm_qos_update_target
    
    In 3.10.y backport patch 1dba303727f52ea062580b0a9b3f0c3b462769cf,
    the logic to call pm_qos_update_target was moved to __pm_qos_update_request.
    However, the original code was left in function pm_qos_update_request.
    
    Currently, if pm_qos_update_request is called where new_value !=
    req->node.prio then pm_qos_update_target will be called twice in a row.
    Once in pm_qos_update_request and then again in the following call to
    _pm_qos_update_request.
    
    Removing the left over code from pm_qos_update_request stops this second
    call to pm_qos_update_target where the work of removing / re-adding the
    new_value in the constraints list would be duplicated.
    
    Signed-off-by: Michael Scott <michael.scott@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84ba11a6ee549b2727a3b83d3c1b455df1c7ebcd
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Fri Feb 13 22:27:40 2015 +0000

    target: Check for LBA + sectors wrap-around in sbc_parse_cdb
    
    commit aa179935edea9a64dec4b757090c8106a3907ffa upstream.
    
    This patch adds a check to sbc_parse_cdb() in order to detect when
    an LBA + sector vs. end-of-device calculation wraps when the LBA is
    sufficently large enough (eg: 0xFFFFFFFFFFFFFFFF).
    
    Cc: Martin Petersen <martin.petersen@oracle.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9113c468b621ddb74f2395564720862faa3a083d
Author: Grazvydas Ignotas <notasas@gmail.com>
Date:   Thu Feb 12 15:00:19 2015 -0800

    mm/memory.c: actually remap enough memory
    
    commit 9cb12d7b4ccaa976f97ce0c5fd0f1b6a83bc2a75 upstream.
    
    For whatever reason, generic_access_phys() only remaps one page, but
    actually allows to access arbitrary size.  It's quite easy to trigger
    large reads, like printing out large structure with gdb, which leads to a
    crash.  Fix it by remapping correct size.
    
    Fixes: 28b2ee20c7cb ("access_process_vm device memory infrastructure")
    Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2295074e4465734d4cb83cba15e055b4b2a87737
Author: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Date:   Thu Feb 12 14:59:50 2015 -0800

    mm/compaction: fix wrong order check in compact_finished()
    
    commit 372549c2a3778fd3df445819811c944ad54609ca upstream.
    
    What we want to check here is whether there is highorder freepage in buddy
    list of other migratetype in order to steal it without fragmentation.
    But, current code just checks cc->order which means allocation request
    order.  So, this is wrong.
    
    Without this fix, non-movable synchronous compaction below pageblock order
    would not stopped until compaction is complete, because migratetype of
    most pageblocks are movable and high order freepage made by compaction is
    usually on movable type buddy list.
    
    There is some report related to this bug. See below link.
    
      http://www.spinics.net/lists/linux-mm/msg81666.html
    
    Although the issued system still has load spike comes from compaction,
    this makes that system completely stable and responsive according to his
    report.
    
    stress-highalloc test in mmtests with non movable order 7 allocation
    doesn't show any notable difference in allocation success rate, but, it
    shows more compaction success rate.
    
    Compaction success rate (Compaction success * 100 / Compaction stalls, %)
    18.47 : 28.94
    
    Fixes: 1fb3f8ca0e92 ("mm: compaction: capture a suitable high-order page immediately when it is made available")
    Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Reviewed-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Rik van Riel <riel@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae9c2f1fe9a11848a29f04e67940220a3985bfee
Author: Roman Gushchin <klamm@yandex-team.ru>
Date:   Wed Feb 11 15:28:42 2015 -0800

    mm/nommu.c: fix arithmetic overflow in __vm_enough_memory()
    
    commit 8138a67a5557ffea3a21dfd6f037842d4e748513 upstream.
    
    I noticed that "allowed" can easily overflow by falling below 0, because
    (total_vm / 32) can be larger than "allowed".  The problem occurs in
    OVERCOMMIT_NONE mode.
    
    In this case, a huge allocation can success and overcommit the system
    (despite OVERCOMMIT_NONE mode).  All subsequent allocations will fall
    (system-wide), so system become unusable.
    
    The problem was masked out by commit c9b1d0981fcc
    ("mm: limit growth of 3% hardcoded other user reserve"),
    but it's easy to reproduce it on older kernels:
    1) set overcommit_memory sysctl to 2
    2) mmap() large file multiple times (with VM_SHARED flag)
    3) try to malloc() large amount of memory
    
    It also can be reproduced on newer kernels, but miss-configured
    sysctl_user_reserve_kbytes is required.
    
    Fix this issue by switching to signed arithmetic here.
    
    Signed-off-by: Roman Gushchin <klamm@yandex-team.ru>
    Cc: Andrew Shewmaker <agshew@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 992f1caea7af5c94e56bb7de089848470e1c000a
Author: Roman Gushchin <klamm@yandex-team.ru>
Date:   Wed Feb 11 15:28:39 2015 -0800

    mm/mmap.c: fix arithmetic overflow in __vm_enough_memory()
    
    commit 5703b087dc8eaf47bfb399d6cf512d471beff405 upstream.
    
    I noticed, that "allowed" can easily overflow by falling below 0,
    because (total_vm / 32) can be larger than "allowed".  The problem
    occurs in OVERCOMMIT_NONE mode.
    
    In this case, a huge allocation can success and overcommit the system
    (despite OVERCOMMIT_NONE mode).  All subsequent allocations will fall
    (system-wide), so system become unusable.
    
    The problem was masked out by commit c9b1d0981fcc
    ("mm: limit growth of 3% hardcoded other user reserve"),
    but it's easy to reproduce it on older kernels:
    1) set overcommit_memory sysctl to 2
    2) mmap() large file multiple times (with VM_SHARED flag)
    3) try to malloc() large amount of memory
    
    It also can be reproduced on newer kernels, but miss-configured
    sysctl_user_reserve_kbytes is required.
    
    Fix this issue by switching to signed arithmetic here.
    
    [akpm@linux-foundation.org: use min_t]
    Signed-off-by: Roman Gushchin <klamm@yandex-team.ru>
    Cc: Andrew Shewmaker <agshew@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Reviewed-by: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a25fb791ab61358715554597701d7d708be9c63
Author: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date:   Wed Feb 11 15:25:32 2015 -0800

    mm/hugetlb: add migration entry check in __unmap_hugepage_range
    
    commit 9fbc1f635fd0bd28cb32550211bf095753ac637a upstream.
    
    If __unmap_hugepage_range() tries to unmap the address range over which
    hugepage migration is on the way, we get the wrong page because pte_page()
    doesn't work for migration entries.  This patch simply clears the pte for
    migration entries as we do for hwpoison entries.
    
    Fixes: 290408d4a2 ("hugetlb: hugepage migration core")
    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@suse.cz>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Luiz Capitulino <lcapitulino@redhat.com>
    Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
    Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
    Cc: Steve Capper <steve.capper@linaro.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fc46dcb4a9c90a52fe279cb2f9d124c8b19fb569
Author: Jiri Pirko <jiri@resnulli.us>
Date:   Wed Mar 4 08:36:31 2015 +0100

    team: don't traverse port list using rcu in team_set_mac_address
    
    [ Upstream commit 9215f437b85da339a7dfe3db6e288637406f88b2 ]
    
    Currently the list is traversed using rcu variant. That is not correct
    since dev_set_mac_address can be called which eventually calls
    rtmsg_ifinfo_build_skb and there, skb allocation can sleep. So fix this
    by remove the rcu usage here.
    
    Fixes: 3d249d4ca7 "net: introduce ethernet teaming device"
    Signed-off-by: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b3130085888b4f1866d57dc19175bbd283a36a3
Author: Michal Kubeček <mkubecek@suse.cz>
Date:   Mon Mar 2 18:27:11 2015 +0100

    udp: only allow UFO for packets from SOCK_DGRAM sockets
    
    [ Upstream commit acf8dd0a9d0b9e4cdb597c2f74802f79c699e802 ]
    
    If an over-MTU UDP datagram is sent through a SOCK_RAW socket to a
    UFO-capable device, ip_ufo_append_data() sets skb->ip_summed to
    CHECKSUM_PARTIAL unconditionally as all GSO code assumes transport layer
    checksum is to be computed on segmentation. However, in this case,
    skb->csum_start and skb->csum_offset are never set as raw socket
    transmit path bypasses udp_send_skb() where they are usually set. As a
    result, driver may access invalid memory when trying to calculate the
    checksum and store the result (as observed in virtio_net driver).
    
    Moreover, the very idea of modifying the userspace provided UDP header
    is IMHO against raw socket semantics (I wasn't able to find a document
    clearly stating this or the opposite, though). And while allowing
    CHECKSUM_NONE in the UFO case would be more efficient, it would be a bit
    too intrusive change just to handle a corner case like this. Therefore
    disallowing UFO for packets from SOCK_DGRAM seems to be the best option.
    
    Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 538022e1ce05a1ebadfbd916413c1712593a1fdc
Author: Ben Shelton <ben.shelton@ni.com>
Date:   Mon Feb 16 13:47:06 2015 -0600

    usb: plusb: Add support for National Instruments host-to-host cable
    
    [ Upstream commit 42c972a1f390e3bc51ca1e434b7e28764992067f ]
    
    The National Instruments USB Host-to-Host Cable is based on the Prolific
    PL-25A1 chipset.  Add its VID/PID so the plusb driver will recognize it.
    
    Signed-off-by: Ben Shelton <ben.shelton@ni.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a83e4448958bd0542012648411b868c5a4d57b33
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Feb 27 18:35:35 2015 -0800

    macvtap: make sure neighbour code can push ethernet header
    
    [ Upstream commit 2f1d8b9e8afa5a833d96afcd23abcb8cdf8d83ab ]
    
    Brian reported crashes using IPv6 traffic with macvtap/veth combo.
    
    I tracked the crashes in neigh_hh_output()
    
    -> memcpy(skb->data - HH_DATA_MOD, hh->hh_data, HH_DATA_MOD);
    
    Neighbour code assumes headroom to push Ethernet header is
    at least 16 bytes.
    
    It appears macvtap has only 14 bytes available on arches
    where NET_IP_ALIGN is 0 (like x86)
    
    Effect is a corruption of 2 bytes right before skb->head,
    and possible crashes if accessing non existing memory.
    
    This fix should also increase IPv4 performance, as paranoid code
    in ip_finish_output2() wont have to call skb_realloc_headroom()
    
    Reported-by: Brian Rak <brak@vultr.com>
    Tested-by: Brian Rak <brak@vultr.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83d2de946101424e79335d0d72c9288344704065
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Mon Feb 23 18:12:56 2015 +0000

    net: compat: Ignore MSG_CMSG_COMPAT in compat_sys_{send, recv}msg
    
    [ Upstream commit d720d8cec563ce4e4fa44a613d4f2dcb1caf2998 ]
    
    With commit a7526eb5d06b (net: Unbreak compat_sys_{send,recv}msg), the
    MSG_CMSG_COMPAT flag is blocked at the compat syscall entry points,
    changing the kernel compat behaviour from the one before the commit it
    was trying to fix (1be374a0518a, net: Block MSG_CMSG_COMPAT in
    send(m)msg and recv(m)msg).
    
    On 32-bit kernels (!CONFIG_COMPAT), MSG_CMSG_COMPAT is 0 and the native
    32-bit sys_sendmsg() allows flag 0x80000000 to be set (it is ignored by
    the kernel). However, on a 64-bit kernel, the compat ABI is different
    with commit a7526eb5d06b.
    
    This patch changes the compat_sys_{send,recv}msg behaviour to the one
    prior to commit 1be374a0518a.
    
    The problem was found running 32-bit LTP (sendmsg01) binary on an arm64
    kernel. Arguably, LTP should not pass 0xffffffff as flags to sendmsg()
    but the general rule is not to break user ABI (even when the user
    behaviour is not entirely sane).
    
    Fixes: a7526eb5d06b (net: Unbreak compat_sys_{send,recv}msg)
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55fde24a60ef618558fef13c2413afa5daf126df
Author: Jiri Pirko <jiri@resnulli.us>
Date:   Mon Feb 23 14:02:54 2015 +0100

    team: fix possible null pointer dereference in team_handle_frame
    
    [ Upstream commit 57e595631904c827cfa1a0f7bbd7cc9a49da5745 ]
    
    Currently following race is possible in team:
    
    CPU0                                        CPU1
                                                team_port_del
                                                  team_upper_dev_unlink
                                                    priv_flags &= ~IFF_TEAM_PORT
    team_handle_frame
      team_port_get_rcu
        team_port_exists
          priv_flags & IFF_TEAM_PORT == 0
        return NULL (instead of port got
                     from rx_handler_data)
                                                  netdev_rx_handler_unregister
    
    The thing is that the flag is removed before rx_handler is unregistered.
    If team_handle_frame is called in between, team_port_exists returns 0
    and team_port_get_rcu will return NULL.
    So do not check the flag here. It is guaranteed by netdev_rx_handler_unregister
    that team_handle_frame will always see valid rx_handler_data pointer.
    
    Signed-off-by: Jiri Pirko <jiri@resnulli.us>
    Fixes: 3d249d4ca7d0 ("net: introduce ethernet teaming device")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cde81ed79fc1540a3c3e775515d72f441aef8e6c
Author: Matthew Thode <mthode@mthode.org>
Date:   Tue Feb 17 18:31:57 2015 -0600

    net: reject creation of netdev names with colons
    
    [ Upstream commit a4176a9391868bfa87705bcd2e3b49e9b9dd2996 ]
    
    colons are used as a separator in netdev device lookup in dev_ioctl.c
    
    Specific functions are SIOCGIFTXQLEN SIOCETHTOOL SIOCSIFNAME
    
    Signed-off-by: Matthew Thode <mthode@mthode.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cae79d75dd639bca743b91d5532a09d90bc3492d
Author: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
Date:   Tue Feb 17 20:15:20 2015 +0100

    ematch: Fix auto-loading of ematch modules.
    
    [ Upstream commit 34eea79e2664b314cab6a30fc582fdfa7a1bb1df ]
    
    In tcf_em_validate(), after calling request_module() to load the
    kind-specific module, set em->ops to NULL before returning -EAGAIN, so
    that module_put() is not called again by tcf_em_tree_destroy().
    
    Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
    Acked-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65d6368f21038a4315d508923501283c5e0681a9
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Tue Feb 17 09:36:22 2015 -0800

    net: phy: Fix verification of EEE support in phy_init_eee
    
    [ Upstream commit 54da5a8be3c1e924c35480eb44c6e9b275f6444e ]
    
    phy_init_eee uses phy_find_setting(phydev->speed, phydev->duplex)
    to find a valid entry in the settings array for the given speed
    and duplex value. For full duplex 1000baseT, this will return
    the first matching entry, which is the entry for 1000baseKX_Full.
    
    If the phy eee does not support 1000baseKX_Full, this entry will not
    match, causing phy_init_eee to fail for no good reason.
    
    Fixes: 9a9c56cb34e6 ("net: phy: fix a bug when verify the EEE support")
    Fixes: 3e7077067e80c ("phy: Expand phy speed/duplex settings array")
    Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c274a9d02a9bba0f13f3a8c1f39b462aead4bd6
Author: Alexander Drozdov <al.drozdov@gmail.com>
Date:   Thu Mar 5 10:29:39 2015 +0300

    ipv4: ip_check_defrag should not assume that skb_network_offset is zero
    
    [ Upstream commit 3e32e733d1bbb3f227259dc782ef01d5706bdae0 ]
    
    ip_check_defrag() may be used by af_packet to defragment outgoing packets.
    skb_network_offset() of af_packet's outgoing packets is not zero.
    
    Signed-off-by: Alexander Drozdov <al.drozdov@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3569bbff393a7a89a42d72ac240a09b8f21ee4f
Author: Alexander Drozdov <al.drozdov@gmail.com>
Date:   Tue Feb 17 13:33:46 2015 +0300

    ipv4: ip_check_defrag should correctly check return value of skb_copy_bits
    
    [ Upstream commit fba04a9e0c869498889b6445fd06cbe7da9bb834 ]
    
    skb_copy_bits() returns zero on success and negative value on error,
    so it is needed to invert the condition in ip_check_defrag().
    
    Fixes: 1bf3751ec90c ("ipv4: ip_check_defrag must not modify skb before unsharing")
    Signed-off-by: Alexander Drozdov <al.drozdov@gmail.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 54c7f8978bfe00fdc80e44a0451a1f8f8b8de638
Author: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
Date:   Fri Feb 13 14:47:05 2015 -0800

    gen_stats.c: Duplicate xstats buffer for later use
    
    [ Upstream commit 1c4cff0cf55011792125b6041bc4e9713e46240f ]
    
    The gnet_stats_copy_app() function gets called, more often than not, with its
    second argument a pointer to an automatic variable in the caller's stack.
    Therefore, to avoid copying garbage afterwards when calling
    gnet_stats_finish_copy(), this data is better copied to a dynamically allocated
    memory that gets freed after use.
    
    [xiyou.wangcong@gmail.com: remove a useless kfree()]
    
    Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 140b057ced8f43b93c4d934eb94661782155f683
Author: WANG Cong <xiyou.wangcong@gmail.com>
Date:   Fri Feb 13 13:56:53 2015 -0800

    rtnetlink: call ->dellink on failure when ->newlink exists
    
    [ Upstream commit 7afb8886a05be68e376655539a064ec672de8a8e ]
    
    Ignacy reported that when eth0 is down and add a vlan device
    on top of it like:
    
      ip link add link eth0 name eth0.1 up type vlan id 1
    
    We will get a refcount leak:
    
      unregister_netdevice: waiting for eth0.1 to become free. Usage count = 2
    
    The problem is when rtnl_configure_link() fails in rtnl_newlink(),
    we simply call unregister_device(), but for stacked device like vlan,
    we almost do nothing when we unregister the upper device, more work
    is done when we unregister the lower device, so call its ->dellink().
    
    Reported-by: Ignacy Gawedzki <ignacy.gawedzki@green-communications.fr>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5fc2a02354d8aa64e435e0240fb2b94f9edcc2a
Author: Martin KaFai Lau <kafai@fb.com>
Date:   Thu Feb 12 16:14:08 2015 -0800

    ipv6: fix ipv6_cow_metrics for non DST_HOST case
    
    [ Upstream commit 3b4711757d7903ab6fa88a9e7ab8901b8227da60 ]
    
    ipv6_cow_metrics() currently assumes only DST_HOST routes require
    dynamic metrics allocation from inetpeer.  The assumption breaks
    when ndisc discovered router with RTAX_MTU and RTAX_HOPLIMIT metric.
    Refer to ndisc_router_discovery() in ndisc.c and note that dst_metric_set()
    is called after the route is created.
    
    This patch creates the metrics array (by calling dst_cow_metrics_generic) in
    ipv6_cow_metrics().
    
    Test:
    radvd.conf:
    interface qemubr0
    {
    	AdvLinkMTU 1300;
    	AdvCurHopLimit 30;
    
    	prefix fd00:face:face:face::/64
    	{
    		AdvOnLink on;
    		AdvAutonomous on;
    		AdvRouterAddr off;
    	};
    };
    
    Before:
    [root@qemu1 ~]# ip -6 r show | egrep -v unreachable
    fd00:face:face:face::/64 dev eth0  proto kernel  metric 256  expires 27sec
    fe80::/64 dev eth0  proto kernel  metric 256
    default via fe80::74df:d0ff:fe23:8ef2 dev eth0  proto ra  metric 1024  expires 27sec
    
    After:
    [root@qemu1 ~]# ip -6 r show | egrep -v unreachable
    fd00:face:face:face::/64 dev eth0  proto kernel  metric 256  expires 27sec mtu 1300
    fe80::/64 dev eth0  proto kernel  metric 256  mtu 1300
    default via fe80::74df:d0ff:fe23:8ef2 dev eth0  proto ra  metric 1024  expires 27sec mtu 1300 hoplimit 30
    
    Fixes: 8e2ec639173f325 (ipv6: don't use inetpeer to store metrics for routes.)
    Signed-off-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1671763b751e35debe0d0e5b3877e393c4e6ec97
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Thu Feb 5 18:44:04 2015 +0100

    rtnetlink: ifla_vf_policy: fix misuses of NLA_BINARY
    
    [ Upstream commit 364d5716a7adb91b731a35765d369602d68d2881 ]
    
    ifla_vf_policy[] is wrong in advertising its individual member types as
    NLA_BINARY since .type = NLA_BINARY in combination with .len declares the
    len member as *max* attribute length [0, len].
    
    The issue is that when do_setvfinfo() is being called to set up a VF
    through ndo handler, we could set corrupted data if the attribute length
    is less than the size of the related structure itself.
    
    The intent is exactly the opposite, namely to make sure to pass at least
    data of minimum size of len.
    
    Fixes: ebc08a6f47ee ("rtnetlink: Add VF config code to rtnetlink")
    Cc: Mitch Williams <mitch.a.williams@intel.com>
    Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>