commit 9b5eed105a45ac0557af113b4096132ae7e3e47f
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Jan 13 10:07:13 2019 +0100

    Linux 3.18.132

commit a7e728f9bb0db3cfd53198f66e18b55b803af193
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Fri Nov 16 17:23:47 2018 +0100

    power: supply: olpc_battery: correct the temperature units
    
    commit ed54ffbe554f0902689fd6d1712bbacbacd11376 upstream.
    
    According to [1] and [2], the temperature values are in tenths of degree
    Celsius. Exposing the Celsius value makes the battery appear on fire:
    
      $ upower -i /org/freedesktop/UPower/devices/battery_olpc_battery
      ...
          temperature:         236.9 degrees C
    
    Tested on OLPC XO-1 and OLPC XO-1.75 laptops.
    
    [1] include/linux/power_supply.h
    [2] Documentation/power/power_supply_class.txt
    
    Fixes: fb972873a767 ("[BATTERY] One Laptop Per Child power/battery driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ca24838257befa3879e43b2607dd8ee7a9c2cc4
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Wed Dec 12 14:45:18 2018 +0100

    genwqe: Fix size check
    
    commit fdd669684655c07dacbdb0d753fd13833de69a33 upstream.
    
    Calling the test program genwqe_cksum with the default buffer size of
    2MB triggers the following kernel warning on s390:
    
    WARNING: CPU: 30 PID: 9311 at mm/page_alloc.c:3189 __alloc_pages_nodemask+0x45c/0xbe0
    CPU: 30 PID: 9311 Comm: genwqe_cksum Kdump: loaded Not tainted 3.10.0-957.el7.s390x #1
    task: 00000005e5d13980 ti: 00000005e7c6c000 task.ti: 00000005e7c6c000
    Krnl PSW : 0704c00180000000 00000000002780ac (__alloc_pages_nodemask+0x45c/0xbe0)
               R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 EA:3
    Krnl GPRS: 00000000002932b8 0000000000b73d7c 0000000000000010 0000000000000009
               0000000000000041 00000005e7c6f9b8 0000000000000001 00000000000080d0
               0000000000000000 0000000000b70500 0000000000000001 0000000000000000
               0000000000b70528 00000000007682c0 0000000000277df2 00000005e7c6f9a0
    Krnl Code: 000000000027809e: de7195001000       ed      1280(114,%r9),0(%r1)
               00000000002780a4: a774fead           brc     7,277dfe
              #00000000002780a8: a7f40001           brc     15,2780aa
              >00000000002780ac: 92011000           mvi     0(%r1),1
               00000000002780b0: a7f4fea7           brc     15,277dfe
               00000000002780b4: 9101c6b6           tm      1718(%r12),1
               00000000002780b8: a784ff3a           brc     8,277f2c
               00000000002780bc: a7f4fe2e           brc     15,277d18
    Call Trace:
    ([<0000000000277df2>] __alloc_pages_nodemask+0x1a2/0xbe0)
     [<000000000013afae>] s390_dma_alloc+0xfe/0x310
     [<000003ff8065f362>] __genwqe_alloc_consistent+0xfa/0x148 [genwqe_card]
     [<000003ff80658f7a>] genwqe_mmap+0xca/0x248 [genwqe_card]
     [<00000000002b2712>] mmap_region+0x4e2/0x778
     [<00000000002b2c54>] do_mmap+0x2ac/0x3e0
     [<0000000000292d7e>] vm_mmap_pgoff+0xd6/0x118
     [<00000000002b081c>] SyS_mmap_pgoff+0xdc/0x268
     [<00000000002b0a34>] SyS_old_mmap+0x8c/0xb0
     [<000000000074e518>] sysc_tracego+0x14/0x1e
     [<000003ffacf87dc6>] 0x3ffacf87dc6
    
    turns out the check in __genwqe_alloc_consistent uses "> MAX_ORDER"
    while the mm code uses ">= MAX_ORDER". Fix genwqe.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Frank Haverkamp <haver@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de7700c6e16c80a6cd78dcda95bce7ba1a74f099
Author: Yan, Zheng <zyan@redhat.com>
Date:   Thu Nov 29 11:22:50 2018 +0800

    ceph: don't update importing cap's mseq when handing cap export
    
    commit 3c1392d4c49962a31874af14ae9ff289cb2b3851 upstream.
    
    Updating mseq makes client think importer mds has accepted all prior
    cap messages and importer mds knows what caps client wants. Actually
    some cap messages may have been dropped because of mseq mismatch.
    
    If mseq is left untouched, importing cap's mds_wanted later will get
    reset by cap import message.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5b64fa4b0a4ed8e6e63be68354f3598c802a167
Author: Dominique Martinet <dominique.martinet@cea.fr>
Date:   Mon Nov 5 09:52:48 2018 +0100

    9p/net: put a lower bound on msize
    
    commit 574d356b7a02c7e1b01a1d9cba8a26b3c2888f45 upstream.
    
    If the requested msize is too small (either from command line argument
    or from the server version reply), we won't get any work done.
    If it's *really* too small, nothing will work, and this got caught by
    syzbot recently (on a new kmem_cache_create_usercopy() call)
    
    Just set a minimum msize to 4k in both code paths, until someone
    complains they have a use-case for a smaller msize.
    
    We need to check in both mount option and server reply individually
    because the msize for the first version request would be unchecked
    with just a global check on clnt->msize.
    
    Link: http://lkml.kernel.org/r/1541407968-31350-1-git-send-email-asmadeus@codewreck.org
    Reported-by: syzbot+0c1d61e4db7db94102ca@syzkaller.appspotmail.com
    Signed-off-by: Dominique Martinet <dominique.martinet@cea.fr>
    Cc: Eric Van Hensbergen <ericvh@gmail.com>
    Cc: Latchesar Ionkov <lucho@ionkov.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a246a603cee766ba72aaeeddebe455c95c770fab
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Mon Nov 19 20:01:24 2018 +0200

    b43: Fix error in cordic routine
    
    commit 8ea3819c0bbef57a51d8abe579e211033e861677 upstream.
    
    The cordic routine for calculating sines and cosines that was added in
    commit 6f98e62a9f1b ("b43: update cordic code to match current specs")
    contains an error whereby a quantity declared u32 can in fact go negative.
    
    This problem was detected by Priit Laes who is switching b43 to use the
    routine in the library functions of the kernel.
    
    Fixes: 986504540306 ("b43: make cordic common (LP-PHY and N-PHY need it)")
    Reported-by: Priit Laes <plaes@plaes.org>
    Cc: Rafał Miłecki <zajec5@gmail.com>
    Cc: Stable <stable@vger.kernel.org> # 2.6.34
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Priit Laes <plaes@plaes.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69473af5e6dc07348385e8d011dd0d3b0d95f07a
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Tue Dec 4 15:06:27 2018 +0100

    gfs2: Fix loop in gfs2_rbm_find
    
    commit 2d29f6b96d8f80322ed2dd895bca590491c38d34 upstream.
    
    Fix the resource group wrap-around logic in gfs2_rbm_find that commit
    e579ed4f44 broke.  The bug can lead to unnecessary repeated scanning of the
    same bitmaps; there is a risk that future changes will turn this into an
    endless loop.
    
    Fixes: e579ed4f44 ("GFS2: Introduce rbm field bii")
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc64743ba847537fe4ae7189bd753002bbd41aaa
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:56 2018 +0300

    dlm: memory leaks on error path in dlm_user_request()
    
    commit d47b41aceeadc6b58abc9c7c6485bef7cfb75636 upstream.
    
    According to comment in dlm_user_request() ua should be freed
    in dlm_free_lkb() after successful attach to lkb.
    
    However ua is attached to lkb not in set_lock_args() but later,
    inside request_lock().
    
    Fixes 597d0cae0f99 ("[DLM] dlm: user locks")
    Cc: stable@kernel.org # 2.6.19
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edabeee7db8ab567ae8d856109e0267d7a2a69ad
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:24 2018 +0300

    dlm: lost put_lkb on error path in receive_convert() and receive_unlock()
    
    commit c0174726c3976e67da8649ac62cae43220ae173a upstream.
    
    Fixes 6d40c4a708e0 ("dlm: improve error and debug messages")
    Cc: stable@kernel.org # 3.5
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96c0e283b5b2a1da9b7ec252fde14f2107f61bd4
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:18:18 2018 +0300

    dlm: possible memory leak on error path in create_lkb()
    
    commit 23851e978f31eda8b2d01bd410d3026659ca06c7 upstream.
    
    Fixes 3d6aa675fff9 ("dlm: keep lkbs in idr")
    Cc: stable@kernel.org # 3.1
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d5345b7eeb57d93e453e7e6e5bf481ab5eb2846
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Thu Nov 15 13:15:05 2018 +0300

    dlm: fixed memory leaks after failed ls_remove_names allocation
    
    commit b982896cdb6e6a6b89d86dfb39df489d9df51e14 upstream.
    
    If allocation fails on last elements of array need to free already
    allocated elements.
    
    v2: just move existing out_rsbtbl label to right place
    
    Fixes 789924ba635f ("dlm: fix race between remove and lookup")
    Cc: stable@kernel.org # 3.6
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ba61349a8b37aa7cc4651cfee044247f7ab0281
Author: Hui Peng <benquike@163.com>
Date:   Tue Dec 25 18:11:52 2018 -0500

    ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks
    
    commit cbb2ebf70daf7f7d97d3811a2ff8e39655b8c184 upstream.
    
    In `create_composite_quirk`, the terminating condition of for loops is
    `quirk->ifnum < 0`. So any composite quirks should end with `struct
    snd_usb_audio_quirk` object with ifnum < 0.
    
        for (quirk = quirk_comp->data; quirk->ifnum >= 0; ++quirk) {
    
            .....
        }
    
    the data field of Bower's & Wilkins PX headphones usb device device quirks
    do not end with {.ifnum = -1}, wihch may result in out-of-bound read.
    
    This Patch fix the bug by adding an ending quirk object.
    
    Fixes: 240a8af929c7 ("ALSA: usb-audio: Add a quirck for B&W PX headphones")
    Signed-off-by: Hui Peng <benquike@163.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 172236e69b714879fe534b1fa2e8ffed2c221ebc
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Dec 19 12:36:27 2018 +0100

    ALSA: usb-audio: Avoid access before bLength check in build_audio_procunit()
    
    commit f4351a199cc120ff9d59e06d02e8657d08e6cc46 upstream.
    
    The parser for the processing unit reads bNrInPins field before the
    bLength sanity check, which may lead to an out-of-bound access when a
    malformed descriptor is given.  Fix it by assignment after the bLength
    check.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfd3b3d7b2ca5d081e2616fe3c26b3ffd414f279
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jan 8 10:43:30 2019 +0300

    ALSA: cs46xx: Potential NULL dereference in probe
    
    commit 1524f4e47f90b27a3ac84efbdd94c63172246a6f upstream.
    
    The "chip->dsp_spos_instance" can be NULL on some of the ealier error
    paths in snd_cs46xx_create().
    
    Reported-by: "Yavuz, Tuba" <tuba@ece.ufl.edu>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6033169228e6045e165f1391a40a9dde5e6f8eb
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Mon Dec 24 14:44:42 2018 +0300

    sunrpc: use SVC_NET() in svcauth_gss_* functions
    
    commit b8be5674fa9a6f3677865ea93f7803c4212f3e10 upstream.
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fde5c5a2542008d67dbff865c8d566a7ba0d1f98
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Wed Nov 28 11:45:57 2018 +0300

    sunrpc: fix cache_head leak due to queued request
    
    commit 4ecd55ea074217473f94cfee21bb72864d39f8d7 upstream.
    
    After commit d202cce8963d, an expired cache_head can be removed from the
    cache_detail's hash.
    
    However, the expired cache_head may be waiting for a reply from a
    previously submitted request. Such a cache_head has an increased
    refcounter and therefore it won't be freed after cache_put(freeme).
    
    Because the cache_head was removed from the hash it cannot be found
    during cache_clean() and can be leaked forever, together with stalled
    cache_request and other taken resources.
    
    In our case we noticed it because an entry in the export cache was
    holding a reference on a filesystem.
    
    Fixes d202cce8963d ("sunrpc: never return expired entries in sunrpc_cache_lookup")
    Cc: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
    Cc: stable@kernel.org # 2.6.35
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Reviewed-by: NeilBrown <neilb@suse.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b2758fb10d9557899b614e76a6d60d299baadf5
Author: David Herrmann <dh.herrmann@gmail.com>
Date:   Tue Jan 8 13:58:52 2019 +0100

    fork: record start_time late
    
    commit 7b55851367136b1efd84d98fea81ba57a98304cf upstream.
    
    This changes the fork(2) syscall to record the process start_time after
    initializing the basic task structure but still before making the new
    process visible to user-space.
    
    Technically, we could record the start_time anytime during fork(2).  But
    this might lead to scenarios where a start_time is recorded long before
    a process becomes visible to user-space.  For instance, with
    userfaultfd(2) and TLS, user-space can delay the execution of fork(2)
    for an indefinite amount of time (and will, if this causes network
    access, or similar).
    
    By recording the start_time late, it much closer reflects the point in
    time where the process becomes live and can be observed by other
    processes.
    
    Lastly, this makes it much harder for user-space to predict and control
    the start_time they get assigned.  Previously, user-space could fork a
    process and stall it in copy_thread_tls() before its pid is allocated,
    but after its start_time is recorded.  This can be misused to later-on
    cycle through PIDs and resume the stalled fork(2) yielding a process
    that has the same pid and start_time as a process that existed before.
    This can be used to circumvent security systems that identify processes
    by their pid+start_time combination.
    
    Even though user-space was always aware that start_time recording is
    flaky (but several projects are known to still rely on start_time-based
    identification), changing the start_time to be recorded late will help
    mitigate existing attacks and make it much harder for user-space to
    control the start_time a process gets assigned.
    
    Reported-by: Jann Horn <jannh@google.com>
    Signed-off-by: Tom Gundersen <teg@jklm.no>
    Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f7387d7a014b10fd4f1a7dd4bf1e8e48e03ee74
Author: Steffen Maier <maier@linux.ibm.com>
Date:   Thu Dec 6 17:31:20 2018 +0100

    scsi: zfcp: fix posting too many status read buffers leading to adapter shutdown
    
    commit 60a161b7e5b2a252ff0d4c622266a7d8da1120ce upstream.
    
    Suppose adapter (open) recovery is between opened QDIO queues and before
    (the end of) initial posting of status read buffers (SRBs). This time
    window can be seconds long due to FSF_PROT_HOST_CONNECTION_INITIALIZING
    causing by design looping with exponential increase sleeps in the function
    performing exchange config data during recovery
    [zfcp_erp_adapter_strat_fsf_xconf()]. Recovery triggered by local link up.
    
    Suppose an event occurs for which the FCP channel would send an unsolicited
    notification to zfcp by means of a previously posted SRB.  We saw it with
    local cable pull (link down) in multi-initiator zoning with multiple
    NPIV-enabled subchannels of the same shared FCP channel.
    
    As soon as zfcp_erp_adapter_strategy_open_fsf() starts posting the initial
    status read buffers from within the adapter's ERP thread, the channel does
    send an unsolicited notification.
    
    Since v2.6.27 commit d26ab06ede83 ("[SCSI] zfcp: receiving an unsolicted
    status can lead to I/O stall"), zfcp_fsf_status_read_handler() schedules
    adapter->stat_work to re-fill the just consumed SRB from a work item.
    
    Now the ERP thread and the work item post SRBs in parallel.  Both contexts
    call the helper function zfcp_status_read_refill().  The tracking of
    missing (to be posted / re-filled) SRBs is not thread-safe due to separate
    atomic_read() and atomic_dec(), in order to depend on posting
    success. Hence, both contexts can see
    atomic_read(&adapter->stat_miss) == 1. One of the two contexts posts
    one too many SRB. Zfcp gets QDIO_ERROR_SLSB_STATE on the output queue
    (trace tag "qdireq1") leading to zfcp_erp_adapter_shutdown() in
    zfcp_qdio_handler_error().
    
    An obvious and seemingly clean fix would be to schedule stat_work from the
    ERP thread and wait for it to finish. This would serialize all SRB
    re-fills. However, we already have another work item wait on the ERP
    thread: adapter->scan_work runs zfcp_fc_scan_ports() which calls
    zfcp_fc_eval_gpn_ft(). The latter calls zfcp_erp_wait() to wait for all the
    open port recoveries during zfcp auto port scan, but in fact it waits for
    any pending recovery including an adapter recovery. This approach leads to
    a deadlock.  [see also v3.19 commit 18f87a67e6d6 ("zfcp: auto port scan
    resiliency"); v2.6.37 commit d3e1088d6873
    ("[SCSI] zfcp: No ERP escalation on gpn_ft eval");
    v2.6.28 commit fca55b6fb587
    ("[SCSI] zfcp: fix deadlock between wq triggered port scan and ERP")
    fixing v2.6.27 commit c57a39a45a76
    ("[SCSI] zfcp: wait until adapter is finished with ERP during auto-port");
    v2.6.27 commit cc8c282963bd
    ("[SCSI] zfcp: Automatically attach remote ports")]
    
    Instead make the accounting of missing SRBs atomic for parallel execution
    in both the ERP thread and adapter->stat_work.
    
    Signed-off-by: Steffen Maier <maier@linux.ibm.com>
    Fixes: d26ab06ede83 ("[SCSI] zfcp: receiving an unsolicted status can lead to I/O stall")
    Cc: <stable@vger.kernel.org> #2.6.27+
    Reviewed-by: Jens Remus <jremus@linux.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7336f81f5a20b0e9f8554c9f08d6f1fb49088e77
Author: Georgy A Bystrenin <gkot@altlinux.org>
Date:   Fri Dec 21 00:11:42 2018 -0600

    CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem
    
    commit 9a596f5b39593414c0ec80f71b94a226286f084e upstream.
    
    While resolving a bug with locks on samba shares found a strange behavior.
    When a file locked by one node and we trying to lock it from another node
    it fail with errno 5 (EIO) but in that case errno must be set to
    (EACCES | EAGAIN).
    This isn't happening when we try to lock file second time on same node.
    In this case it returns EACCES as expected.
    Also this issue not reproduces when we use SMB1 protocol (vers=1.0 in
    mount options).
    
    Further investigation showed that the mapping from status_to_posix_error
    is different for SMB1 and SMB2+ implementations.
    For SMB1 mapping is [NT_STATUS_LOCK_NOT_GRANTED to ERRlock]
    (See fs/cifs/netmisc.c line 66)
    but for SMB2+ mapping is [STATUS_LOCK_NOT_GRANTED to -EIO]
    (see fs/cifs/smb2maperror.c line 383)
    
    Quick changes in SMB2+ mapping from EIO to EACCES has fixed issue.
    
    BUG: https://bugzilla.kernel.org/show_bug.cgi?id=201971
    
    Signed-off-by: Georgy A Bystrenin <gkot@altlinux.org>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a4eafc735f7368490d44cbfa43ad3134e6731b1
Author: Huacai Chen <chenhc@lemote.com>
Date:   Thu Nov 15 15:53:56 2018 +0800

    MIPS: Align kernel load address to 64KB
    
    commit bec0de4cfad21bd284dbddee016ed1767a5d2823 upstream.
    
    KEXEC needs the new kernel's load address to be aligned on a page
    boundary (see sanity_check_segment_list()), but on MIPS the default
    vmlinuz load address is only explicitly aligned to 16 bytes.
    
    Since the largest PAGE_SIZE supported by MIPS kernels is 64KB, increase
    the alignment calculated by calc_vmlinuz_load_addr to 64KB.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/21131/
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: Steven J . Hill <Steven.Hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: <stable@vger.kernel.org> # 2.6.36+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0615204e659e43674d04df57e035072991d12c9
Author: Huacai Chen <chenhc@lemote.com>
Date:   Thu Nov 15 15:53:54 2018 +0800

    MIPS: Ensure pmd_present() returns false after pmd_mknotpresent()
    
    commit 92aa0718c9fa5160ad2f0e7b5bffb52f1ea1e51a upstream.
    
    This patch is borrowed from ARM64 to ensure pmd_present() returns false
    after pmd_mknotpresent(). This is needed for THP.
    
    References: 5bb1cc0ff9a6 ("arm64: Ensure pmd_present() returns false after pmd_mknotpresent()")
    Reviewed-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Patchwork: https://patchwork.linux-mips.org/patch/21135/
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: Steven J . Hill <Steven.Hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: <stable@vger.kernel.org> # 3.8+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4816ed56768a0f9cc40234d73dc68ad9a380505b
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Fri Nov 9 08:37:44 2018 -0500

    media: vivid: free bitmap_cap when updating std/timings/etc.
    
    commit 560ccb75c2caa6b1039dec1a53cd2ef526f5bf03 upstream.
    
    When vivid_update_format_cap() is called it should free any overlay
    bitmap since the compose size will change.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Reported-by: syzbot+0cc8e3cc63ca373722c6@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>      # for v3.18 and up
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9db4e7e1723c8dd2a6a055422d41ed4de3a3443e
Author: Macpaul Lin <macpaul.lin@mediatek.com>
Date:   Wed Dec 19 12:11:03 2018 +0800

    cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
    
    commit eafb27fa5283599ce6c5492ea18cf636a28222bb upstream.
    
    Mediatek Preloader is a proprietary embedded boot loader for loading
    Little Kernel and Linux into device DRAM.
    
    This boot loader also handle firmware update. Mediatek Preloader will be
    enumerated as a virtual COM port when the device is connected to Windows
    or Linux OS via CDC-ACM class driver. When the USB enumeration has been
    done, Mediatek Preloader will send out handshake command "READY" to PC
    actively instead of waiting command from the download tool.
    
    Since Linux 4.12, the commit "tty: reset termios state on device
    registration" (93857edd9829e144acb6c7e72d593f6e01aead66) causes Mediatek
    Preloader receiving some abnoraml command like "READYXX" as it sent.
    This will be recognized as an incorrect response. The behavior change
    also causes the download handshake fail. This change only affects
    subsequent connects if the reconnected device happens to get the same minor
    number.
    
    By disabling the ECHO termios flag could avoid this problem. However, it
    cannot be done by user space configuration when download tool open
    /dev/ttyACM0. This is because the device running Mediatek Preloader will
    send handshake command "READY" immediately once the CDC-ACM driver is
    ready.
    
    This patch wants to fix above problem by introducing "DISABLE_ECHO"
    property in driver_info. When Mediatek Preloader is connected, the
    CDC-ACM driver could disable ECHO flag in termios to avoid the problem.
    
    Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7c6fd47260a9673822032f2091363b49cd6c8ca
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Wed Dec 19 14:07:58 2018 -0500

    ext4: force inode writes when nfsd calls commit_metadata()
    
    commit fde872682e175743e0c3ef939c89e3c6008a1529 upstream.
    
    Some time back, nfsd switched from calling vfs_fsync() to using a new
    commit_metadata() hook in export_operations().  If the file system did
    not provide a commit_metadata() hook, it fell back to using
    sync_inode_metadata().  Unfortunately doesn't work on all file
    systems.  In particular, it doesn't work on ext4 due to how the inode
    gets journalled --- the VFS writeback code will not always call
    ext4_write_inode().
    
    So we need to provide our own ext4_nfs_commit_metdata() method which
    calls ext4_write_inode() directly.
    
    Google-Bug-Id: 121195940
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf161cde3d8e227a6b6b54cfda853f6a412bc71e
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Tue Dec 4 00:06:53 2018 -0500

    ext4: missing unlock/put_page() in ext4_try_to_write_inline_data()
    
    commit 132d00becb31e88469334e1e62751c81345280e0 upstream.
    
    In case of error, ext4_try_to_write_inline_data() should unlock
    and release the page it holds.
    
    Fixes: f19d5870cbf7 ("ext4: add normal write support for inline data")
    Cc: stable@kernel.org # 3.8
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3f10a0116520e6ed383246eb877664c83308232
Author: Pan Bian <bianpan2016@163.com>
Date:   Mon Dec 3 23:28:02 2018 -0500

    ext4: fix possible use after free in ext4_quota_enable
    
    commit 61157b24e60fb3cd1f85f2c76a7b1d628f970144 upstream.
    
    The function frees qf_inode via iput but then pass qf_inode to
    lockdep_set_quota_inode on the failure path. This may result in a
    use-after-free bug. The patch frees df_inode only when it is never used.
    
    Fixes: daf647d2dd5 ("ext4: add lockdep annotations for i_data_sem")
    Cc: stable@kernel.org # 4.6
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af860a6a026a3b50cf49bc4602dcb882acae108e
Author: Sean Christopherson <sean.j.christopherson@intel.com>
Date:   Thu Dec 20 14:21:08 2018 -0800

    KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup
    
    commit e81434995081fd7efb755fd75576b35dbb0850b1 upstream.
    
    ____kvm_handle_fault_on_reboot() provides a generic exception fixup
    handler that is used to cleanly handle faults on VMX/SVM instructions
    during reboot (or at least try to).  If there isn't a reboot in
    progress, ____kvm_handle_fault_on_reboot() treats any exception as
    fatal to KVM and invokes kvm_spurious_fault(), which in turn generates
    a BUG() to get a stack trace and die.
    
    When it was originally added by commit 4ecac3fd6dc2 ("KVM: Handle
    virtualization instruction #UD faults during reboot"), the "call" to
    kvm_spurious_fault() was handcoded as PUSH+JMP, where the PUSH'd value
    is the RIP of the faulting instructing.
    
    The PUSH+JMP trickery is necessary because the exception fixup handler
    code lies outside of its associated function, e.g. right after the
    function.  An actual CALL from the .fixup code would show a slightly
    bogus stack trace, e.g. an extra "random" function would be inserted
    into the trace, as the return RIP on the stack would point to no known
    function (and the unwinder will likely try to guess who owns the RIP).
    
    Unfortunately, the JMP was replaced with a CALL when the macro was
    reworked to not spin indefinitely during reboot (commit b7c4145ba2eb
    "KVM: Don't spin on virt instruction faults during reboot").  This
    causes the aforementioned behavior where a bogus function is inserted
    into the stack trace, e.g. my builds like to blame free_kvm_area().
    
    Revert the CALL back to a JMP.  The changelog for commit b7c4145ba2eb
    ("KVM: Don't spin on virt instruction faults during reboot") contains
    nothing that indicates the switch to CALL was deliberate.  This is
    backed up by the fact that the PUSH <insn RIP> was left intact.
    
    Note that an alternative to the PUSH+JMP magic would be to JMP back
    to the "real" code and CALL from there, but that would require adding
    a JMP in the non-faulting path to avoid calling kvm_spurious_fault()
    and would add no value, i.e. the stack trace would be the same.
    
    Using CALL:
    
    ------------[ cut here ]------------
    kernel BUG at /home/sean/go/src/kernel.org/linux/arch/x86/kvm/x86.c:356!
    invalid opcode: 0000 [#1] SMP
    CPU: 4 PID: 1057 Comm: qemu-system-x86 Not tainted 4.20.0-rc6+ #75
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
    RIP: 0010:kvm_spurious_fault+0x5/0x10 [kvm]
    Code: <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 55 49 89 fd 41
    RSP: 0018:ffffc900004bbcc8 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffffffffffff
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff888273fd8000 R08: 00000000000003e8 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000784 R12: ffffc90000371fb0
    R13: 0000000000000000 R14: 000000026d763cf4 R15: ffff888273fd8000
    FS:  00007f3d69691700(0000) GS:ffff888277800000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055f89bc56fe0 CR3: 0000000271a5a001 CR4: 0000000000362ee0
    Call Trace:
     free_kvm_area+0x1044/0x43ea [kvm_intel]
     ? vmx_vcpu_run+0x156/0x630 [kvm_intel]
     ? kvm_arch_vcpu_ioctl_run+0x447/0x1a40 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? __set_task_blocked+0x38/0x90
     ? __set_current_blocked+0x50/0x60
     ? __fpu__restore_sig+0x97/0x490
     ? do_vfs_ioctl+0xa1/0x620
     ? __x64_sys_futex+0x89/0x180
     ? ksys_ioctl+0x66/0x70
     ? __x64_sys_ioctl+0x16/0x20
     ? do_syscall_64+0x4f/0x100
     ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Modules linked in: vhost_net vhost tap kvm_intel kvm irqbypass bridge stp llc
    ---[ end trace 9775b14b123b1713 ]---
    
    Using JMP:
    
    ------------[ cut here ]------------
    kernel BUG at /home/sean/go/src/kernel.org/linux/arch/x86/kvm/x86.c:356!
    invalid opcode: 0000 [#1] SMP
    CPU: 6 PID: 1067 Comm: qemu-system-x86 Not tainted 4.20.0-rc6+ #75
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
    RIP: 0010:kvm_spurious_fault+0x5/0x10 [kvm]
    Code: <0f> 0b 66 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 55 49 89 fd 41
    RSP: 0018:ffffc90000497cd0 EFLAGS: 00010046
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffffffffffff
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88827058bd40 R08: 00000000000003e8 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000784 R12: ffffc90000369fb0
    R13: 0000000000000000 R14: 00000003c8fc6642 R15: ffff88827058bd40
    FS:  00007f3d7219e700(0000) GS:ffff888277900000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f3d64001000 CR3: 0000000271c6b004 CR4: 0000000000362ee0
    Call Trace:
     vmx_vcpu_run+0x156/0x630 [kvm_intel]
     ? kvm_arch_vcpu_ioctl_run+0x447/0x1a40 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? kvm_vcpu_ioctl+0x368/0x5c0 [kvm]
     ? __set_task_blocked+0x38/0x90
     ? __set_current_blocked+0x50/0x60
     ? __fpu__restore_sig+0x97/0x490
     ? do_vfs_ioctl+0xa1/0x620
     ? __x64_sys_futex+0x89/0x180
     ? ksys_ioctl+0x66/0x70
     ? __x64_sys_ioctl+0x16/0x20
     ? do_syscall_64+0x4f/0x100
     ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
    Modules linked in: vhost_net vhost tap kvm_intel kvm irqbypass bridge stp llc
    ---[ end trace f9daedb85ab3ddba ]---
    
    Fixes: b7c4145ba2eb ("KVM: Don't spin on virt instruction faults during reboot")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f47e855a6f8db5be9d6ef1b90624461ae1528174
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Tue Dec 18 20:04:25 2018 +0800

    usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
    
    commit c85400f886e3d41e69966470879f635a2b50084c upstream.
    
    The function r8a66597_endpoint_disable() and r8a66597_urb_enqueue() may
    be concurrently executed.
    The two functions both access a possible shared variable "hep->hcpriv".
    
    This shared variable is freed by r8a66597_endpoint_disable() via the
    call path:
    r8a66597_endpoint_disable
      kfree(hep->hcpriv) (line 1995 in Linux-4.19)
    
    This variable is read by r8a66597_urb_enqueue() via the call path:
    r8a66597_urb_enqueue
      spin_lock_irqsave(&r8a66597->lock)
      init_pipe_info
        enable_r8a66597_pipe
          pipe = hep->hcpriv (line 802 in Linux-4.19)
    
    The read operation is protected by a spinlock, but the free operation
    is not protected by this spinlock, thus a concurrency use-after-free bug
    may occur.
    
    To fix this bug, the spin-lock and spin-unlock function calls in
    r8a66597_endpoint_disable() are moved to protect the free operation.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35fb697e42c1f09b415f6fe3306f31ac9713a8ff
Author: Scott Chen <scott@labau.com.tw>
Date:   Thu Dec 13 06:01:47 2018 -0500

    USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
    
    commit 8d503f206c336677954160ac62f0c7d9c219cd89 upstream.
    
    Add device ids to pl2303 for the HP POS pole displays:
    LM920:   03f0:026b
    TD620:   03f0:0956
    LD960TA: 03f0:4439
    LD220TA: 03f0:4349
    LM940:   03f0:5039
    
    Signed-off-by: Scott Chen <scott@labau.com.tw>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef5dd2c94a7ada4adf06a314ce26686aaf04c78f
Author: Deepa Dinamani <deepa.kernel@gmail.com>
Date:   Thu Dec 27 18:55:09 2018 -0800

    sock: Make sock->sk_stamp thread-safe
    
    [ Upstream commit 3a0ed3e9619738067214871e9cb826fa23b2ddb9 ]
    
    Al Viro mentioned (Message-ID
    <20170626041334.GZ10672@ZenIV.linux.org.uk>)
    that there is probably a race condition
    lurking in accesses of sk_stamp on 32-bit machines.
    
    sock->sk_stamp is of type ktime_t which is always an s64.
    On a 32 bit architecture, we might run into situations of
    unsafe access as the access to the field becomes non atomic.
    
    Use seqlocks for synchronization.
    This allows us to avoid using spinlocks for readers as
    readers do not need mutual exclusion.
    
    Another approach to solve this is to require sk_lock for all
    modifications of the timestamps. The current approach allows
    for timestamps to have their own lock: sk_stamp_lock.
    This allows for the patch to not compete with already
    existing critical sections, and side effects are limited
    to the paths in the patch.
    
    The addition of the new field maintains the data locality
    optimizations from
    commit 9115e8cd2a0c ("net: reorganize struct sock for better data
    locality")
    
    Note that all the instances of the sk_stamp accesses
    are either through the ioctl or the syscall recvmsg.
    
    Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b12bad3dbdbafb3f1261f270aaa91f32ea92a623
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Dec 18 16:06:19 2018 +0100

    xen/netfront: tolerate frags with no data
    
    [ Upstream commit d81c5054a5d1d4999c7cdead7636b6cd4af83d36 ]
    
    At least old Xen net backends seem to send frags with no real data
    sometimes. In case such a fragment happens to occur with the frag limit
    already reached the frontend will BUG currently even if this situation
    is easily recoverable.
    
    Modify the BUG_ON() condition accordingly.
    
    Tested-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18167f943824672ac9d753f49de01b0e5a4d4e7f
Author: Jorgen Hansen <jhansen@vmware.com>
Date:   Tue Dec 18 00:34:06 2018 -0800

    VSOCK: Send reset control packet when socket is partially bound
    
    [ Upstream commit a915b982d8f5e4295f64b8dd37ce753874867e88 ]
    
    If a server side socket is bound to an address, but not in the listening
    state yet, incoming connection requests should receive a reset control
    packet in response. However, the function used to send the reset
    silently drops the reset packet if the sending socket isn't bound
    to a remote address (as is the case for a bound socket not yet in
    the listening state). This change fixes this by using the src
    of the incoming packet as destination for the reset packet in
    this case.
    
    Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
    Reviewed-by: Adit Ranadive <aditr@vmware.com>
    Reviewed-by: Vishnu Dasa <vdasa@vmware.com>
    Signed-off-by: Jorgen Hansen <jhansen@vmware.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66506fe26abe181741a7c82b0348ca182fb9bdaf
Author: Jason Wang <jasowang@redhat.com>
Date:   Thu Dec 13 10:53:37 2018 +0800

    vhost: make sure used idx is seen before log in vhost_add_used_n()
    
    [ Upstream commit 841df922417eb82c835e93d4b93eb6a68c99d599 ]
    
    We miss a write barrier that guarantees used idx is updated and seen
    before log. This will let userspace sync and copy used ring before
    used idx is update. Fix this by adding a barrier before log_write().
    
    Fixes: 8dd014adfea6f ("vhost-net: mergeable buffers support")
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0302c665336fb5db03f2b0c84be21fa22ecfc09b
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Dec 10 18:00:52 2018 +0800

    sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event
    
    [ Upstream commit 4a2eb0c37b4759416996fbb4c45b932500cf06d3 ]
    
    syzbot reported a kernel-infoleak, which is caused by an uninitialized
    field(sin6_flowinfo) of addr->a.v6 in sctp_inet6addr_event().
    The call trace is as below:
    
      BUG: KMSAN: kernel-infoleak in _copy_to_user+0x19a/0x230 lib/usercopy.c:33
      CPU: 1 PID: 8164 Comm: syz-executor2 Not tainted 4.20.0-rc3+ #95
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0x32d/0x480 lib/dump_stack.c:113
        kmsan_report+0x12c/0x290 mm/kmsan/kmsan.c:683
        kmsan_internal_check_memory+0x32a/0xa50 mm/kmsan/kmsan.c:743
        kmsan_copy_to_user+0x78/0xd0 mm/kmsan/kmsan_hooks.c:634
        _copy_to_user+0x19a/0x230 lib/usercopy.c:33
        copy_to_user include/linux/uaccess.h:183 [inline]
        sctp_getsockopt_local_addrs net/sctp/socket.c:5998 [inline]
        sctp_getsockopt+0x15248/0x186f0 net/sctp/socket.c:7477
        sock_common_getsockopt+0x13f/0x180 net/core/sock.c:2937
        __sys_getsockopt+0x489/0x550 net/socket.c:1939
        __do_sys_getsockopt net/socket.c:1950 [inline]
        __se_sys_getsockopt+0xe1/0x100 net/socket.c:1947
        __x64_sys_getsockopt+0x62/0x80 net/socket.c:1947
        do_syscall_64+0xcf/0x110 arch/x86/entry/common.c:291
        entry_SYSCALL_64_after_hwframe+0x63/0xe7
    
    sin6_flowinfo is not really used by SCTP, so it will be fixed by simply
    setting it to 0.
    
    The issue exists since very beginning.
    Thanks Alexander for the reproducer provided.
    
    Reported-by: syzbot+ad5d327e6936a2e284be@syzkaller.appspotmail.com
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a782cc8f6fcb2ad3a4b905afec780b7d9d79cc4a
Author: Willem de Bruijn <willemb@google.com>
Date:   Sat Dec 22 16:53:45 2018 -0500

    packet: validate address length if non-zero
    
    [ Upstream commit 6b8d95f1795c42161dc0984b6863e95d6acf24ed ]
    
    Validate packet socket address length if a length is given. Zero
    length is equivalent to not setting an address.
    
    Fixes: 99137b7888f4 ("packet: validate address length")
    Reported-by: Ido Schimmel <idosch@idosch.org>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a40c2da9c01785f089ca502edaf99a8e8eef4bc
Author: Willem de Bruijn <willemb@google.com>
Date:   Fri Dec 21 12:06:59 2018 -0500

    packet: validate address length
    
    [ Upstream commit 99137b7888f4058087895d035d81c6b2d31015c5 ]
    
    Packet sockets with SOCK_DGRAM may pass an address for use in
    dev_hard_header. Ensure that it is of sufficient length.
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c85a9064fbf5dcd7a9d36355c36f423b5691d2e
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sat Dec 29 13:56:38 2018 -0800

    netrom: fix locking in nr_find_socket()
    
    [ Upstream commit 7314f5480f3e37e570104dc5e0f28823ef849e72 ]
    
    nr_find_socket(), nr_find_peer() and nr_find_listener() lock the
    sock after finding it in the global list. However, the call path
    requires BH disabled for the sock lock consistently.
    
    Actually the locking is unnecessary at this point, we can just hold
    the sock refcnt to make sure it is not gone after we unlock the global
    list, and lock it later only when needed.
    
    Reported-and-tested-by: syzbot+f621cda8b7e598908efa@syzkaller.appspotmail.com
    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 3f312889bd816eb298d671d9bd0a857bb8e81a43
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 2 09:20:27 2019 -0800

    isdn: fix kernel-infoleak in capi_unlocked_ioctl
    
    [ Upstream commit d63967e475ae10f286dbd35e189cb241e0b1f284 ]
    
    Since capi_ioctl() copies 64 bytes after calling
    capi20_get_manufacturer() we need to ensure to not leak
    information to user.
    
    BUG: KMSAN: kernel-infoleak in _copy_to_user+0x16b/0x1f0 lib/usercopy.c:32
    CPU: 0 PID: 11245 Comm: syz-executor633 Not tainted 4.20.0-rc7+ #2
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x173/0x1d0 lib/dump_stack.c:113
     kmsan_report+0x12e/0x2a0 mm/kmsan/kmsan.c:613
     kmsan_internal_check_memory+0x9d4/0xb00 mm/kmsan/kmsan.c:704
     kmsan_copy_to_user+0xab/0xc0 mm/kmsan/kmsan_hooks.c:601
     _copy_to_user+0x16b/0x1f0 lib/usercopy.c:32
     capi_ioctl include/linux/uaccess.h:177 [inline]
     capi_unlocked_ioctl+0x1a0b/0x1bf0 drivers/isdn/capi/capi.c:939
     do_vfs_ioctl+0xebd/0x2bf0 fs/ioctl.c:46
     ksys_ioctl fs/ioctl.c:713 [inline]
     __do_sys_ioctl fs/ioctl.c:720 [inline]
     __se_sys_ioctl+0x1da/0x270 fs/ioctl.c:718
     __x64_sys_ioctl+0x4a/0x70 fs/ioctl.c:718
     do_syscall_64+0xbc/0xf0 arch/x86/entry/common.c:291
     entry_SYSCALL_64_after_hwframe+0x63/0xe7
    RIP: 0033:0x440019
    Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007ffdd4659fb8 EFLAGS: 00000213 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 0000000000440019
    RDX: 0000000020000080 RSI: 00000000c0044306 RDI: 0000000000000003
    RBP: 00000000006ca018 R08: 0000000000000000 R09: 00000000004002c8
    R10: 0000000000000000 R11: 0000000000000213 R12: 00000000004018a0
    R13: 0000000000401930 R14: 0000000000000000 R15: 0000000000000000
    
    Local variable description: ----data.i@capi_unlocked_ioctl
    Variable was created at:
     capi_ioctl drivers/isdn/capi/capi.c:747 [inline]
     capi_unlocked_ioctl+0x82/0x1bf0 drivers/isdn/capi/capi.c:939
     do_vfs_ioctl+0xebd/0x2bf0 fs/ioctl.c:46
    
    Bytes 12-63 of 64 are uninitialized
    Memory access of size 64 starts at ffff88807ac5fce8
    Data copied to user address 0000000020000080
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Karsten Keil <isdn@linux-pingi.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 364d1d5ae51f2876b37a6ee4a377d2618b60a4d0
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Tue Dec 18 21:17:44 2018 -0800

    ipv6: explicitly initialize udp6_addr in udp_sock_create6()
    
    [ Upstream commit fb24274546310872eeeaf3d1d53799d8414aa0f2 ]
    
    syzbot reported the use of uninitialized udp6_addr::sin6_scope_id.
    We can just set ::sin6_scope_id to zero, as tunnels are unlikely
    to use an IPv6 address that needs a scope id and there is no
    interface to bind in this context.
    
    For net-next, it looks different as we have cfg->bind_ifindex there
    so we can probably call ipv6_iface_scope_id().
    
    Same for ::sin6_flowinfo, tunnels don't use it.
    
    Fixes: 8024e02879dd ("udp: Add udp_sock_create for UDP tunnels to open listener socket")
    Reported-by: syzbot+c56449ed3652e6720f30@syzkaller.appspotmail.com
    Cc: Jon Maloy <jon.maloy@ericsson.com>
    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 9514524de9587e516245c2aa544693eb179e8cd6
Author: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Date:   Mon Dec 31 15:43:01 2018 -0600

    ibmveth: fix DMA unmap error in ibmveth_xmit_start error path
    
    [ Upstream commit 756af9c642329d54f048bac2a62f829b391f6944 ]
    
    Commit 33a48ab105a7 ("ibmveth: Fix DMA unmap error") fixed an issue in the
    normal code path of ibmveth_xmit_start() that was originally introduced by
    Commit 6e8ab30ec677 ("ibmveth: Add scatter-gather support"). This original
    fix missed the error path where dma_unmap_page is wrongly called on the
    header portion in descs[0] which was mapped with dma_map_single. As a
    result a failure to DMA map any of the frags results in a dmesg warning
    when CONFIG_DMA_API_DEBUG is enabled.
    
    ------------[ cut here ]------------
    DMA-API: ibmveth 30000002: device driver frees DMA memory with wrong function
      [device address=0x000000000a430000] [size=172 bytes] [mapped as page] [unmapped as single]
    WARNING: CPU: 1 PID: 8426 at kernel/dma/debug.c:1085 check_unmap+0x4fc/0xe10
    ...
    <snip>
    ...
    DMA-API: Mapped at:
    ibmveth_start_xmit+0x30c/0xb60
    dev_hard_start_xmit+0x100/0x450
    sch_direct_xmit+0x224/0x490
    __qdisc_run+0x20c/0x980
    __dev_queue_xmit+0x1bc/0xf20
    
    This fixes the API misuse by unampping descs[0] with dma_unmap_single.
    
    Fixes: 6e8ab30ec677 ("ibmveth: Add scatter-gather support")
    Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f93d703e276311dd289c9a520ce9e8c8fa2858c
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Sat Dec 29 13:56:36 2018 -0800

    ax25: fix a use-after-free in ax25_fillin_cb()
    
    [ Upstream commit c433570458e49bccea5c551df628d058b3526289 ]
    
    There are multiple issues here:
    
    1. After freeing dev->ax25_ptr, we need to set it to NULL otherwise
       we may use a dangling pointer.
    
    2. There is a race between ax25_setsockopt() and device notifier as
       reported by syzbot. Close it by holding RTNL lock.
    
    3. We need to test if dev->ax25_ptr is NULL before using it.
    
    Reported-and-tested-by: syzbot+ae6bb869cbed29b29040@syzkaller.appspotmail.com
    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 ce6308a393a1196f5d3aa589a1af5503d072699f
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Dec 18 17:29:56 2018 +0000

    x86/mtrr: Don't copy uninitialized gentry fields back to userspace
    
    commit 32043fa065b51e0b1433e48d118821c71b5cd65d upstream.
    
    Currently the copy_to_user of data in the gentry struct is copying
    uninitiaized data in field _pad from the stack to userspace.
    
    Fix this by explicitly memset'ing gentry to zero, this also will zero any
    compiler added padding fields that may be in struct (currently there are
    none).
    
    Detected by CoverityScan, CID#200783 ("Uninitialized scalar variable")
    
    Fixes: b263b31e8ad6 ("x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Tyler Hicks <tyhicks@canonical.com>
    Cc: security@kernel.org
    Link: https://lkml.kernel.org/r/20181218172956.1440-1-colin.king@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0035d2a8e7159f640b6dac912998f975dc5ed22c
Author: Dexuan Cui <decui@microsoft.com>
Date:   Thu Dec 13 16:35:43 2018 +0000

    Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened channels
    
    commit fc96df16a1ce80cbb3c316ab7d4dc8cd5c2852ce upstream.
    
    Before 98f4c651762c, we returned zeros for unopened channels.
    With 98f4c651762c, we started to return random on-stack values.
    
    We'd better return -EINVAL instead.
    
    Fixes: 98f4c651762c ("hv: move ringbuffer bus attributes to dev_groups")
    Cc: stable@vger.kernel.org
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdf0f5820b2f882438a5378fdf0160cad53da0e4
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Fri Dec 7 13:07:55 2018 +0000

    gpio: max7301: fix driver for use with CONFIG_VMAP_STACK
    
    commit abf221d2f51b8ce7b9959a8953f880a8b0a1400d upstream.
    
    spi_read() and spi_write() require DMA-safe memory. When
    CONFIG_VMAP_STACK is selected, those functions cannot be used
    with buffers on stack.
    
    This patch replaces calls to spi_read() and spi_write() by
    spi_write_then_read() which doesn't require DMA-safe buffers.
    
    Fixes: 0c36ec314735 ("gpio: gpio driver for max7301 SPI GPIO expander")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bf6720ca034af2525caf2e3024cc194b66591de
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Tue Dec 11 14:41:31 2018 +0000

    mmc: omap_hsmmc: fix DMA API warning
    
    commit 0b479790684192ab7024ce6a621f93f6d0a64d92 upstream.
    
    While booting with rootfs on MMC, the following warning is encountered
    on OMAP4430:
    
    omap-dma-engine 4a056000.dma-controller: DMA-API: mapping sg segment longer than device claims to support [len=69632] [max=65536]
    
    This is because the DMA engine has a default maximum segment size of 64K
    but HSMMC sets:
    
            mmc->max_blk_size = 512;       /* Block Length at max can be 1024 */
            mmc->max_blk_count = 0xFFFF;    /* No. of Blocks is 16 bits */
            mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
            mmc->max_seg_size = mmc->max_req_size;
    
    which ends up telling the block layer that we support a maximum segment
    size of 65535*512, which exceeds the advertised DMA engine capabilities.
    
    Fix this by clamping the maximum segment size to the lower of the
    maximum request size and of the DMA engine device used for either DMA
    channel.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7007d9ea8cdc814fe9cfabc7663f648f5e6e1088
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Mon Dec 10 17:52:36 2018 +0100

    mmc: core: Reset HPI enabled state during re-init and in case of errors
    
    commit a0741ba40a009f97c019ae7541dc61c1fdf41efb upstream.
    
    During a re-initialization of the eMMC card, we may fail to re-enable HPI.
    In these cases, that isn't properly reflected in the card->ext_csd.hpi_en
    bit, as it keeps being set. This may cause following attempts to use HPI,
    even if's not enabled. Let's fix this!
    
    Fixes: eb0d8f135b67 ("mmc: core: support HPI send command")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73cc953b013062a1a0f0b496f2dc2451956bc232
Author: Tore Anderson <tore@fud.no>
Date:   Sat Dec 8 19:05:12 2018 +0100

    USB: serial: option: add HP lt4132
    
    commit d57ec3c83b5153217a70b561d4fb6ed96f2f7a25 upstream.
    
    The HP lt4132 is a rebranded Huawei ME906s-158 LTE modem.
    
    The interface with protocol 0x16 is "CDC ECM & NCM" according to the *.inf
    files included with the Windows driver. Attaching the option driver to it
    doesn't result in a /dev/ttyUSB* device being created, so I've excluded it.
    Note that it is also excluded for corresponding Huawei-branded devices, cf.
    commit d544db293a44 ("USB: support new huawei devices in option.c").
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=option
    I:  If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=option
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=06 Prot=16 Driver=(none)
    I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=option
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 7 Cfg#= 2 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=06 Prot=00 Driver=cdc_ether
    I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=10 Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=13 Driver=option
    I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=12 Driver=option
    I:  If#=0x5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    I:  If#=0x6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=1b Driver=option
    
    T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=ff MxPS=64 #Cfgs=  3
    P:  Vendor=03f0 ProdID=a31d Rev=01.02
    S:  Manufacturer=HP Inc.
    S:  Product=HP lt4132 LTE/HSPA+ 4G Module
    S:  SerialNumber=0123456789ABCDEF
    C:  #Ifs= 3 Cfg#= 3 Atr=a0 MxPwr=2mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I:  If#=0x1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=06 Prot=14 Driver=option
    
    Signed-off-by: Tore Anderson <tore@fud.no>
    Cc: stable@vger.kernel.org
    [ johan: drop id defines ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2dbfeb3393252289ce87a8e1a6ddbd47c2aa7eb4
Author: Hui Peng <benquike@gmail.com>
Date:   Wed Dec 12 12:42:24 2018 +0100

    USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data
    
    commit 5146f95df782b0ac61abde36567e718692725c89 upstream.
    
    The function hso_probe reads if_num from the USB device (as an u8) and uses
    it without a length check to index an array, resulting in an OOB memory read
    in hso_probe or hso_get_config_data.
    
    Add a length check for both locations and updated hso_probe to bail on
    error.
    
    This issue has been assigned CVE-2018-19985.
    
    Reported-by: Hui Peng <benquike@gmail.com>
    Reported-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Signed-off-by: Hui Peng <benquike@gmail.com>
    Signed-off-by: Mathias Payer <mathias.payer@nebelwelt.net>
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>