commit 6d0b08c5f94fa089b72ea8c4130521e5df4b17ef
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Nov 24 13:03:10 2020 +0100

    Linux 4.9.246
    
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Link: https://lore.kernel.org/r/20201123121805.530891002@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd9dc1ee61d3182bfb16f40648bde367c6663811
Author: Chen Yu <yu.c.chen@intel.com>
Date:   Fri Nov 13 09:59:23 2020 +0800

    x86/microcode/intel: Check patch signature before saving microcode for early loading
    
    commit 1a371e67dc77125736cc56d3a0893f06b75855b6 upstream.
    
    Currently, scan_microcode() leverages microcode_matches() to check
    if the microcode matches the CPU by comparing the family and model.
    However, the processor stepping and flags of the microcode signature
    should also be considered when saving a microcode patch for early
    update.
    
    Use find_matching_signature() in scan_microcode() and get rid of the
    now-unused microcode_matches() which is a good cleanup in itself.
    
    Complete the verification of the patch being saved for early loading in
    save_microcode_patch() directly. This needs to be done there too because
    save_mc_for_early() will call save_microcode_patch() too.
    
    The second reason why this needs to be done is because the loader still
    tries to support, at least hypothetically, mixed-steppings systems and
    thus adds all patches to the cache that belong to the same CPU model
    albeit with different steppings.
    
    For example:
    
      microcode: CPU: sig=0x906ec, pf=0x2, rev=0xd6
      microcode: mc_saved[0]: sig=0x906e9, pf=0x2a, rev=0xd6, total size=0x19400, date = 2020-04-23
      microcode: mc_saved[1]: sig=0x906ea, pf=0x22, rev=0xd6, total size=0x19000, date = 2020-04-27
      microcode: mc_saved[2]: sig=0x906eb, pf=0x2, rev=0xd6, total size=0x19400, date = 2020-04-23
      microcode: mc_saved[3]: sig=0x906ec, pf=0x22, rev=0xd6, total size=0x19000, date = 2020-04-27
      microcode: mc_saved[4]: sig=0x906ed, pf=0x22, rev=0xd6, total size=0x19400, date = 2020-04-23
    
    The patch which is being saved for early loading, however, can only be
    the one which fits the CPU this runs on so do the signature verification
    before saving.
    
     [ bp: Do signature verification in save_microcode_patch()
           and rewrite commit message. ]
    
    Fixes: ec400ddeff20 ("x86/microcode_intel_early.c: Early update ucode on Intel's CPU")
    Signed-off-by: Chen Yu <yu.c.chen@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: stable@vger.kernel.org
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208535
    Link: https://lkml.kernel.org/r/20201113015923.13960-1-yu.c.chen@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89c4735078a4d1fc59203503cd12353e6a2d0fd7
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Wed Nov 11 16:26:25 2020 +0100

    s390/cpum_sf.c: fix file permission for cpum_sfb_size
    
    commit 78d732e1f326f74f240d416af9484928303d9951 upstream.
    
    This file is installed by the s390 CPU Measurement sampling
    facility device driver to export supported minimum and
    maximum sample buffer sizes.
    This file is read by lscpumf tool to display the details
    of the device driver capabilities. The lscpumf tool might
    be invoked by a non-root user. In this case it does not
    print anything because the file contents can not be read.
    
    Fix this by allowing read access for all users. Reading
    the file contents is ok, changing the file contents is
    left to the root user only.
    
    For further reference and details see:
     [1] https://github.com/ibm-s390-tools/s390-tools/issues/97
    
    Fixes: 69f239ed335a ("s390/cpum_sf: Dynamically extend the sampling buffer if overflows occur")
    Cc: <stable@vger.kernel.org> # 3.14
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38eeb1358178c08fe9d5f074b93a434898730ed5
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Nov 12 11:22:04 2020 +0100

    mac80211: free sta in sta_info_insert_finish() on errors
    
    commit 7bc40aedf24d31d8bea80e1161e996ef4299fb10 upstream.
    
    If sta_info_insert_finish() fails, we currently keep the station
    around and free it only in the caller, but there's only one such
    caller and it always frees it immediately.
    
    As syzbot found, another consequence of this split is that we can
    put things that sleep only into __cleanup_single_sta() and not in
    sta_info_free(), but this is the only place that requires such of
    sta_info_free() now.
    
    Change this to free the station in sta_info_insert_finish(), in
    which case we can still sleep. This will also let us unify the
    cleanup code later.
    
    Cc: stable@vger.kernel.org
    Fixes: dcd479e10a05 ("mac80211: always wind down STA state")
    Reported-by: syzbot+32c6c38c4812d22f2f0b@syzkaller.appspotmail.com
    Reported-by: syzbot+4c81fe92e372d26c4246@syzkaller.appspotmail.com
    Reported-by: syzbot+6a7fe9faf0d1d61bc24a@syzkaller.appspotmail.com
    Reported-by: syzbot+abed06851c5ffe010921@syzkaller.appspotmail.com
    Reported-by: syzbot+b7aeb9318541a1c709f1@syzkaller.appspotmail.com
    Reported-by: syzbot+d5a9416c6cafe53b5dd0@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20201112112201.ee6b397b9453.I9c31d667a0ea2151441cc64ed6613d36c18a48e0@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a793f3570a6795aecfbd4bc265230adf854f918
Author: Felix Fietkau <nbd@nbd.name>
Date:   Wed Nov 11 19:33:59 2020 +0100

    mac80211: minstrel: fix tx status processing corner case
    
    commit b2911a84396f72149dce310a3b64d8948212c1b3 upstream.
    
    Some drivers fill the status rate list without setting the rate index after
    the final rate to -1. minstrel_ht already deals with this, but minstrel
    doesn't, which causes it to get stuck at the lowest rate on these drivers.
    
    Fix this by checking the count as well.
    
    Cc: stable@vger.kernel.org
    Fixes: cccf129f820e ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201111183359.43528-3-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e974e89afe5a374190307f8e22ea86fffee95704
Author: Felix Fietkau <nbd@nbd.name>
Date:   Wed Nov 11 19:33:58 2020 +0100

    mac80211: minstrel: remove deferred sampling code
    
    commit 4fe40b8e1566dad04c87fbf299049a1d0d4bd58d upstream.
    
    Deferring sampling attempts to the second stage has some bad interactions
    with drivers that process the rate table in hardware and use the probe flag
    to indicate probing packets (e.g. most mt76 drivers). On affected drivers
    it can lead to probing not working at all.
    
    If the link conditions turn worse, it might not be such a good idea to
    do a lot of sampling for lower rates in this case.
    
    Fix this by simply skipping the sample attempt instead of deferring it,
    but keep the checks that would allow it to be sampled if it was skipped
    too often, but only if it has less than 95% success probability.
    
    Also ensure that IEEE80211_TX_CTL_RATE_CTRL_PROBE is set for all probing
    packets.
    
    Cc: stable@vger.kernel.org
    Fixes: cccf129f820e ("mac80211: add the 'minstrel' rate control algorithm")
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201111183359.43528-2-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b567396b2489aad375c5705b621bdc722e30fefb
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Mon Nov 16 01:38:59 2020 -0800

    xtensa: disable preemption around cache alias management calls
    
    commit 3a860d165eb5f4d7cf0bf81ef6a5b5c5e1754422 upstream.
    
    Although cache alias management calls set up and tear down TLB entries
    and fast_second_level_miss is able to restore TLB entry should it be
    evicted they absolutely cannot preempt each other because they use the
    same TLBTEMP area for different purposes.
    Disable preemption around all cache alias management calls to enforce
    that.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf1f185d9e7c9a0ed342dd6fc7ec0e6daba397e5
Author: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date:   Fri Nov 13 01:20:27 2020 +0100

    regulator: fix memory leak with repeated set_machine_constraints()
    
    commit 57a6ad482af256b2a13de14194fb8f67c1a65f10 upstream.
    
    Fixed commit introduced a possible second call to
    set_machine_constraints() and that allocates memory for
    rdev->constraints. Move the allocation to the caller so
    it's easier to manage and done once.
    
    Fixes: aea6cb99703e ("regulator: resolve supply after creating regulator")
    Cc: stable@vger.kernel.org
    Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
    Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de> # stpmic1
    Link: https://lore.kernel.org/r/78c3d4016cebc08d441aad18cb924b4e4d9cf9df.1605226675.git.mirq-linux@rere.qmqm.pl
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ccf1ff7e3378c18819f12fcfc7831119182363f
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Nov 10 14:38:34 2020 +0100

    iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
    
    commit 11e94f28c3de35d5ad1ac6a242a5b30f4378991a upstream.
    
    Replace the boolean is_smo8500_device variable with an acpi_type enum.
    
    For now this can be either ACPI_GENERIC or ACPI_SMO8500, this is a
    preparation patch for adding special handling for the KIOX010A ACPI HID,
    which will add a ACPI_KIOX010A acpi_type to the introduced enum.
    
    For stable as needed as precursor for next patch.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Fixes: 7f6232e69539 ("iio: accel: kxcjk1013: Add KIOX010A ACPI Hardware-ID")
    Cc: <Stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20201110133835.129080-2-hdegoede@redhat.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd8352d64cad276c881eb837280a09bae4c6cdac
Author: Jan Kara <jack@suse.cz>
Date:   Wed Nov 18 16:30:32 2020 +0100

    ext4: fix bogus warning in ext4_update_dx_flag()
    
    commit f902b216501094495ff75834035656e8119c537f upstream.
    
    The idea of the warning in ext4_update_dx_flag() is that we should warn
    when we are clearing EXT4_INODE_INDEX on a filesystem with metadata
    checksums enabled since after clearing the flag, checksums for internal
    htree nodes will become invalid. So there's no need to warn (or actually
    do anything) when EXT4_INODE_INDEX is not set.
    
    Link: https://lore.kernel.org/r/20201118153032.17281-1-jack@suse.cz
    Fixes: 48a34311953d ("ext4: fix checksum errors with indexed dirs")
    Reported-by: Eric Biggers <ebiggers@kernel.org>
    Reviewed-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d0326a67eca2a48f280f6da90f6b39d07dbf3d1
Author: Vamshi K Sthambamkadi <vamshi.k.sthambamkadi@gmail.com>
Date:   Fri Oct 23 17:24:39 2020 +0530

    efivarfs: fix memory leak in efivarfs_create()
    
    commit fe5186cf12e30facfe261e9be6c7904a170bd822 upstream.
    
    kmemleak report:
      unreferenced object 0xffff9b8915fcb000 (size 4096):
      comm "efivarfs.sh", pid 2360, jiffies 4294920096 (age 48.264s)
      hex dump (first 32 bytes):
        2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  -...............
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<00000000cc4d897c>] kmem_cache_alloc_trace+0x155/0x4b0
        [<000000007d1dfa72>] efivarfs_create+0x6e/0x1a0
        [<00000000e6ee18fc>] path_openat+0xe4b/0x1120
        [<000000000ad0414f>] do_filp_open+0x91/0x100
        [<00000000ce93a198>] do_sys_openat2+0x20c/0x2d0
        [<000000002a91be6d>] do_sys_open+0x46/0x80
        [<000000000a854999>] __x64_sys_openat+0x20/0x30
        [<00000000c50d89c9>] do_syscall_64+0x38/0x90
        [<00000000cecd6b5f>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    In efivarfs_create(), inode->i_private is setup with efivar_entry
    object which is never freed.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Vamshi K Sthambamkadi <vamshi.k.sthambamkadi@gmail.com>
    Link: https://lore.kernel.org/r/20201023115429.GA2479@cosmos
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f34104d15b83194804e6b0bf3077a227529c541
Author: Fugang Duan <fugang.duan@nxp.com>
Date:   Wed Nov 11 10:51:36 2020 +0800

    tty: serial: imx: keep console clocks always on
    
    commit e67c139c488e84e7eae6c333231e791f0e89b3fb upstream.
    
    For below code, there has chance to cause deadlock in SMP system:
    Thread 1:
    clk_enable_lock();
    pr_info("debug message");
    clk_enable_unlock();
    
    Thread 2:
    imx_uart_console_write()
            clk_enable()
                    clk_enable_lock();
    
    Thread 1:
    Acuired clk enable_lock -> printk -> console_trylock_spinning
    Thread 2:
    console_unlock() -> imx_uart_console_write -> clk_disable -> Acquite clk enable_lock
    
    So the patch is to keep console port clocks always on like
    other console drivers.
    
    Fixes: 1cf93e0d5488 ("serial: imx: remove the uart_console() check")
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
    Link: https://lore.kernel.org/r/20201111025136.29818-1-fugang.duan@nxp.com
    Cc: stable <stable@vger.kernel.org>
    [fix up build warning - gregkh]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 919c51849b8597b3749f86096cd6390d4934453a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 19 13:14:40 2020 +0100

    ALSA: mixart: Fix mutex deadlock
    
    commit d21b96c8ed2aea7e6b7bf4735e1d2503cfbf4072 upstream.
    
    The code change for switching to non-atomic mode brought the
    unexpected mutex deadlock in get_msg().  It converted the spinlock
    with the existing mutex, but there were calls with the already holding
    the mutex.  Since the only place that needs the extra lock is the code
    path from snd_mixart_send_msg(), remove the mutex lock in get_msg()
    and apply in the caller side for fixing the mutex deadlock.
    
    Fixes: 8d3a8b5cb57d ("ALSA: mixart: Use nonatomic PCM ops")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20201119121440.18945-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f72cedf772c22a909dfc2e4afca8c8013724ddec
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Fri Nov 13 18:20:43 2020 +0900

    ALSA: ctl: fix error path at adding user-defined element set
    
    commit 95a793c3bc75cf888e0e641d656e7d080f487d8b upstream.
    
    When processing request to add/replace user-defined element set, check
    of given element identifier and decision of numeric identifier is done
    in "__snd_ctl_add_replace()" helper function. When the result of check
    is wrong, the helper function returns error code. The error code shall
    be returned to userspace application.
    
    Current implementation includes bug to return zero to userspace application
    regardless of the result. This commit fixes the bug.
    
    Cc: <stable@vger.kernel.org>
    Fixes: e1a7bfe38079 ("ALSA: control: Fix race between adding and removing a user element")
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20201113092043.16148-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71be97f561aa48d6d65e6fa7da26c18697948588
Author: Daniel Axtens <dja@axtens.net>
Date:   Mon Nov 23 15:45:07 2020 +1100

    powerpc/uaccess-flush: fix missing includes in kup-radix.h
    
    Guenter reports a build failure on cell_defconfig and maple_defconfg:
    
    In file included from arch/powerpc/include/asm/kup.h:10:0,
                     from arch/powerpc/include/asm/uaccess.h:12,
                     from arch/powerpc/lib/checksum_wrappers.c:24:
    arch/powerpc/include/asm/book3s/64/kup-radix.h:5:1: error: data definition has no type or storage class [-Werror]
     DECLARE_STATIC_KEY_FALSE(uaccess_flush_key);
     ^~~~~~~~~~~~~~~~~~~~~~~~
    arch/powerpc/include/asm/book3s/64/kup-radix.h:5:1: error: type defaults to ‘int’ in declaration of ‘DECLARE_STATIC_KEY_FALSE’ [-Werror=implicit-int]
    arch/powerpc/include/asm/book3s/64/kup-radix.h:5:1: error: parameter names (without types) in function declaration [-Werror]
    arch/powerpc/include/asm/book3s/64/kup-radix.h: In function ‘prevent_user_access’:
    arch/powerpc/include/asm/book3s/64/kup-radix.h:18:6: error: implicit declaration of function ‘static_branch_unlikely’ [-Werror=implicit-function-declaration]
      if (static_branch_unlikely(&uaccess_flush_key))
          ^~~~~~~~~~~~~~~~~~~~~~
    arch/powerpc/include/asm/book3s/64/kup-radix.h:18:30: error: ‘uaccess_flush_key’ undeclared (first use in this function); did you mean
    ‘do_uaccess_flush’?
      if (static_branch_unlikely(&uaccess_flush_key))
                                  ^~~~~~~~~~~~~~~~~
                                  do_uaccess_flush
    arch/powerpc/include/asm/book3s/64/kup-radix.h:18:30: note: each undeclared identifier is reported only once for each function it appears in
    cc1: all warnings being treated as errors
    
    This is because I failed to include linux/jump_label.h in kup-radix.h. Include it.
    
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8dd5f584758c753b4b394238b7cc5deed96731d6
Author: Yicong Yang <yangyicong@hisilicon.com>
Date:   Sat Nov 21 22:17:19 2020 -0800

    libfs: fix error cast of negative value in simple_attr_write()
    
    [ Upstream commit 488dac0c9237647e9b8f788b6a342595bfa40bda ]
    
    The attr->set() receive a value of u64, but simple_strtoll() is used for
    doing the conversion.  It will lead to the error cast if user inputs a
    negative value.
    
    Use kstrtoull() instead of simple_strtoll() to convert a string got from
    the user to an unsigned value.  The former will return '-EINVAL' if it
    gets a negetive value, but the latter can't handle the situation
    correctly.  Make 'val' unsigned long long as what kstrtoull() takes,
    this will eliminate the compile warning on no 64-bit architectures.
    
    Fixes: f7b88631a897 ("fs/libfs.c: fix simple_attr_write() on 32bit machines")
    Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Link: https://lkml.kernel.org/r/1605341356-11872-1-git-send-email-yangyicong@hisilicon.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dacd38a576f23e5627bb1147ccb0af568bd862c6
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Thu Nov 19 15:17:50 2020 -0800

    xfs: revert "xfs: fix rmap key and record comparison functions"
    
    [ Upstream commit eb8409071a1d47e3593cfe077107ac46853182ab ]
    
    This reverts commit 6ff646b2ceb0eec916101877f38da0b73e3a5b7f.
    
    Your maintainer committed a major braino in the rmap code by adding the
    attr fork, bmbt, and unwritten extent usage bits into rmap record key
    comparisons.  While XFS uses the usage bits *in the rmap records* for
    cross-referencing metadata in xfs_scrub and xfs_repair, it only needs
    the owner and offset information to distinguish between reverse mappings
    of the same physical extent into the data fork of a file at multiple
    offsets.  The other bits are not important for key comparisons for index
    lookups, and never have been.
    
    Eric Sandeen reports that this causes regressions in generic/299, so
    undo this patch before it does more damage.
    
    Reported-by: Eric Sandeen <sandeen@sandeen.net>
    Fixes: 6ff646b2ceb0 ("xfs: fix rmap key and record comparison functions")
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Eric Sandeen <sandeen@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b09a7623d2c1b3e4252ca2f17ed2d75c82071d2e
Author: Nishanth Menon <nm@ti.com>
Date:   Wed Nov 18 08:50:09 2020 -0600

    regulator: ti-abb: Fix array out of bound read access on the first transition
    
    [ Upstream commit 2ba546ebe0ce2af47833d8912ced9b4a579f13cb ]
    
    At the start of driver initialization, we do not know what bias
    setting the bootloader has configured the system for and we only know
    for certain the very first time we do a transition.
    
    However, since the initial value of the comparison index is -EINVAL,
    this negative value results in an array out of bound access on the
    very first transition.
    
    Since we don't know what the setting is, we just set the bias
    configuration as there is nothing to compare against. This prevents
    the array out of bound access.
    
    NOTE: Even though we could use a more relaxed check of "< 0" the only
    valid values(ignoring cosmic ray induced bitflips) are -EINVAL, 0+.
    
    Fixes: 40b1936efebd ("regulator: Introduce TI Adaptive Body Bias(ABB) on-chip LDO driver")
    Link: https://lore.kernel.org/linux-mm/CA+G9fYuk4imvhyCN7D7T6PMDH6oNp6HDCRiTUKMQ6QXXjBa4ag@mail.gmail.com/
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Nishanth Menon <nm@ti.com>
    Link: https://lore.kernel.org/r/20201118145009.10492-1-nm@ti.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e8b3315007b235b54e1cd905d04c8ab54bcdd812
Author: Zhang Qilong <zhangqilong3@huawei.com>
Date:   Fri Nov 13 21:18:56 2020 +0800

    MIPS: Alchemy: Fix memleak in alchemy_clk_setup_cpu
    
    [ Upstream commit ac3b57adf87ad9bac7e33ca26bbbb13fae1ed62b ]
    
    If the clk_register fails, we should free h before
    function returns to prevent memleak.
    
    Fixes: 474402291a0ad ("MIPS: Alchemy: clock framework integration of onchip clocks")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d70dd84512e3ef3807149015e49f76c72ec7010e
Author: Wu Bo <wubo.oduw@gmail.com>
Date:   Wed Jan 29 10:23:30 2020 +0800

    can: m_can: m_can_handle_state_change(): fix state change
    
    [ Upstream commit cd0d83eab2e0c26fe87a10debfedbb23901853c1 ]
    
    m_can_handle_state_change() is called with the new_state as an argument.
    
    In the switch statements for CAN_STATE_ERROR_ACTIVE, the comment and the
    following code indicate that a CAN_STATE_ERROR_WARNING is handled.
    
    This patch fixes this problem by changing the case to CAN_STATE_ERROR_WARNING.
    
    Signed-off-by: Wu Bo <wubo.oduw@gmail.com>
    Link: http://lore.kernel.org/r/20200129022330.21248-2-wubo.oduw@gmail.com
    Cc: Dan Murphy <dmurphy@ti.com>
    Fixes: e0d1f4816f2a ("can: m_can: add Bosch M_CAN controller support")
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c503b1284af37b6f68afb83526295026da8ea0df
Author: Colin Ian King <colin.king@canonical.com>
Date:   Thu Nov 5 11:24:27 2020 +0000

    can: peak_usb: fix potential integer overflow on shift of a int
    
    [ Upstream commit 8a68cc0d690c9e5730d676b764c6f059343b842c ]
    
    The left shift of int 32 bit integer constant 1 is evaluated using 32 bit
    arithmetic and then assigned to a signed 64 bit variable. In the case where
    time_ref->adapter->ts_used_bits is 32 or more this can lead to an oveflow.
    Avoid this by shifting using the BIT_ULL macro instead.
    
    Fixes: bb4785551f64 ("can: usb: PEAK-System Technik USB adapters driver core")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: https://lore.kernel.org/r/20201105112427.40688-1-colin.king@canonical.com
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f823134ff1af869001903a3110a1adc0ace42958
Author: Alejandro Concepcion Rodriguez <alejandro@acoro.eu>
Date:   Thu Nov 5 21:51:47 2020 +0000

    can: dev: can_restart(): post buffer from the right context
    
    [ Upstream commit a1e654070a60d5d4f7cce59c38f4ca790bb79121 ]
    
    netif_rx() is meant to be called from interrupt contexts. can_restart() may be
    called by can_restart_work(), which is called from a worqueue, so it may run in
    process context. Use netif_rx_ni() instead.
    
    Fixes: 39549eef3587 ("can: CAN Network device driver and Netlink interface")
    Co-developed-by: Loris Fauster <loris.fauster@ttcontrol.com>
    Signed-off-by: Loris Fauster <loris.fauster@ttcontrol.com>
    Signed-off-by: Alejandro Concepcion Rodriguez <alejandro@acoro.eu>
    Link: https://lore.kernel.org/r/4e84162b-fb31-3a73-fa9a-9438b4bd5234@acoro.eu
    [mkl: use netif_rx_ni() instead of netif_rx_any_context()]
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48ac0b18f4b160f706c339552a6afd463e1a8651
Author: Leo Yan <leo.yan@linaro.org>
Date:   Wed Nov 4 17:42:29 2020 +0800

    perf lock: Don't free "lock_seq_stat" if read_count isn't zero
    
    [ Upstream commit b0e5a05cc9e37763c7f19366d94b1a6160c755bc ]
    
    When execute command "perf lock report", it hits failure and outputs log
    as follows:
    
      perf: builtin-lock.c:623: report_lock_release_event: Assertion `!(seq->read_count < 0)' failed.
      Aborted
    
    This is an imbalance issue.  The locking sequence structure
    "lock_seq_stat" contains the reader counter and it is used to check if
    the locking sequence is balance or not between acquiring and releasing.
    
    If the tool wrongly frees "lock_seq_stat" when "read_count" isn't zero,
    the "read_count" will be reset to zero when allocate a new structure at
    the next time; thus it causes the wrong counting for reader and finally
    results in imbalance issue.
    
    To fix this issue, if detects "read_count" is not zero (means still have
    read user in the locking sequence), goto the "end" tag to skip freeing
    structure "lock_seq_stat".
    
    Fixes: e4cef1f65061 ("perf lock: Fix state machine to recognize lock sequence")
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Link: https://lore.kernel.org/r/20201104094229.17509-2-leo.yan@linaro.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e25dfc5a536b5bd88310df70a5e9fd41ab97c23
Author: Fabio Estevam <festevam@gmail.com>
Date:   Thu Nov 5 18:13:20 2020 -0300

    ARM: dts: imx50-evk: Fix the chip select 1 IOMUX
    
    [ Upstream commit 33d0d843872c5ddbe28457a92fc6f2487315fb9f ]
    
    The SPI chip selects are represented as:
    
    cs-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>, <&gpio4 13 GPIO_ACTIVE_LOW>;
    
    , which means that they are used in GPIO function instead of native
    SPI mode.
    
    Fix the IOMUX for the chip select 1 to use GPIO4_13 instead of
    the native CSPI_SSI function.
    
    Fixes: c605cbf5e135 ("ARM: dts: imx: add device tree support for Freescale imx50evk board")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2290f132c71f93619d1f2c0968f6c32f2e70d0b4
Author: Sergey Matyukevich <geomatsi@gmail.com>
Date:   Sat Oct 24 23:11:20 2020 +0300

    arm: dts: imx6qdl-udoo: fix rgmii phy-mode for ksz9031 phy
    
    [ Upstream commit 7dd8f0ba88fce98e2953267a66af74c6f4792a56 ]
    
    Commit bcf3440c6dd7 ("net: phy: micrel: add phy-mode support for the
    KSZ9031 PHY") fixed micrel phy driver adding proper support for phy
    modes. Adapt imx6q-udoo board phy settings : explicitly set required
    delay configuration using "rgmii-id".
    
    Fixes: cbd54fe0b2bc ("ARM: dts: imx6dl-udoo: Add board support based off imx6q-udoo")
    Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f575c174b55ded4b6181ca933afbc1331260c5f
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Oct 23 12:44:40 2020 -0700

    MIPS: export has_transparent_hugepage() for modules
    
    [ Upstream commit 31b4d8e172f614adc53ddecb4b6b2f6411a49b84 ]
    
    MIPS should export its local version of "has_transparent_hugepage"
    so that loadable modules (dax) can use it.
    
    Fixes this build error:
    ERROR: modpost: "has_transparent_hugepage" [drivers/dax/dax.ko] undefined!
    
    Fixes: fd8cfd300019 ("arch: fix has_transparent_hugepage()")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: linux-mips@vger.kernel.org
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: linux-nvdimm@lists.01.org
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d90dd9d89b2101facf68fc8c2161493545c00768
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Oct 26 17:10:09 2020 -0700

    Input: adxl34x - clean up a data type in adxl34x_probe()
    
    [ Upstream commit 33b6c39e747c552fa770eecebd1776f1f4a222b1 ]
    
    The "revid" is used to store negative error codes so it should be an int
    type.
    
    Fixes: e27c729219ad ("Input: add driver for ADXL345/346 Digital Accelerometers")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Michael Hennerich <michael.hennerich@analog.com>
    Link: https://lore.kernel.org/r/20201026072824.GA1620546@mwanda
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0c2738f8f0e7e1122b622510c2e323251fa1799
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Tue Nov 10 16:49:29 2020 -0800

    vfs: remove lockdep bogosity in __sb_start_write
    
    [ Upstream commit 22843291efc986ce7722610073fcf85a39b4cb13 ]
    
    __sb_start_write has some weird looking lockdep code that claims to
    exist to handle nested freeze locking requests from xfs.  The code as
    written seems broken -- if we think we hold a read lock on any of the
    higher freeze levels (e.g. we hold SB_FREEZE_WRITE and are trying to
    lock SB_FREEZE_PAGEFAULT), it converts a blocking lock attempt into a
    trylock.
    
    However, it's not correct to downgrade a blocking lock attempt to a
    trylock unless the downgrading code or the callers are prepared to deal
    with that situation.  Neither __sb_start_write nor its callers handle
    this at all.  For example:
    
    sb_start_pagefault ignores the return value completely, with the result
    that if xfs_filemap_fault loses a race with a different thread trying to
    fsfreeze, it will proceed without pagefault freeze protection (thereby
    breaking locking rules) and then unlocks the pagefault freeze lock that
    it doesn't own on its way out (thereby corrupting the lock state), which
    leads to a system hang shortly afterwards.
    
    Normally, this won't happen because our ownership of a read lock on a
    higher freeze protection level blocks fsfreeze from grabbing a write
    lock on that higher level.  *However*, if lockdep is offline,
    lock_is_held_type unconditionally returns 1, which means that
    percpu_rwsem_is_held returns 1, which means that __sb_start_write
    unconditionally converts blocking freeze lock attempts into trylocks,
    even when we *don't* hold anything that would block a fsfreeze.
    
    Apparently this all held together until 5.10-rc1, when bugs in lockdep
    caused lockdep to shut itself off early in an fstests run, and once
    fstests gets to the "race writes with freezer" tests, kaboom.  This
    might explain the long trail of vanishingly infrequent livelocks in
    fstests after lockdep goes offline that I've never been able to
    diagnose.
    
    We could fix it by spinning on the trylock if wait==true, but AFAICT the
    locking works fine if lockdep is not built at all (and I didn't see any
    complaints running fstests overnight), so remove this snippet entirely.
    
    NOTE: Commit f4b554af9931 in 2015 created the current weird logic (which
    used to exist in a different form in commit 5accdf82ba25c from 2012) in
    __sb_start_write.  XFS solved this whole problem in the late 2.6 era by
    creating a variant of transactions (XFS_TRANS_NO_WRITECOUNT) that don't
    grab intwrite freeze protection, thus making lockdep's solution
    unnecessary.  The commit claims that Dave Chinner explained that the
    trylock hack + comment could be removed, but nobody ever did.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2ee9ea98d45fe314f6047bf49896eee1dd51a24
Author: Will Deacon <will@kernel.org>
Date:   Fri Nov 6 09:57:55 2020 +0000

    arm64: psci: Avoid printing in cpu_psci_cpu_die()
    
    [ Upstream commit 891deb87585017d526b67b59c15d38755b900fea ]
    
    cpu_psci_cpu_die() is called in the context of the dying CPU, which
    will no longer be online or tracked by RCU. It is therefore not generally
    safe to call printk() if the PSCI "cpu off" request fails, so remove the
    pr_crit() invocation.
    
    Cc: Qian Cai <cai@redhat.com>
    Cc: "Paul E. McKenney" <paulmck@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Link: https://lore.kernel.org/r/20201106103602.9849-2-will@kernel.org
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbb9ea89a40f08fe5afc12b8eb9396784d1b49de
Author: Jianqun Xu <jay.xu@rock-chips.com>
Date:   Tue Oct 13 14:37:30 2020 +0800

    pinctrl: rockchip: enable gpio pclk for rockchip_gpio_to_irq
    
    [ Upstream commit 63fbf8013b2f6430754526ef9594f229c7219b1f ]
    
    There need to enable pclk_gpio when do irq_create_mapping, since it will
    do access to gpio controller.
    
    Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
    Reviewed-by: Heiko Stuebner <heiko@sntech.de>
    Reviewed-by: Kever Yang<kever.yang@rock-chips.com>
    Link: https://lore.kernel.org/r/20201013063731.3618-3-jay.xu@rock-chips.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06e2132572229678c024f338617cdacf078f7d00
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Tue Nov 17 19:33:52 2020 +0200

    mlxsw: core: Use variable timeout for EMAD retries
    
    [ Upstream commit 1f492eab67bced119a0ac7db75ef2047e29a30c6 ]
    
    The driver sends Ethernet Management Datagram (EMAD) packets to the
    device for configuration purposes and waits for up to 200ms for a reply.
    A request is retried up to 5 times.
    
    When the system is under heavy load, replies are not always processed in
    time and EMAD transactions fail.
    
    Make the process more robust to such delays by using exponential
    backoff. First wait for up to 200ms, then retransmit and wait for up to
    400ms and so on.
    
    Fixes: caf7297e7ab5 ("mlxsw: core: Introduce support for asynchronous EMAD register access")
    Reported-by: Denis Yulevich <denisyu@nvidia.com>
    Tested-by: Denis Yulevich <denisyu@nvidia.com>
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Jiri Pirko <jiri@nvidia.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 808aadeddccba2e7b3bf3453e743fdb08d0bedba
Author: Joel Stanley <joel@jms.id.au>
Date:   Tue Nov 17 13:14:48 2020 +1030

    net: ftgmac100: Fix crash when removing driver
    
    [ Upstream commit 3d5179458d22dc0b4fdc724e4bed4231a655112a ]
    
    When removing the driver we would hit BUG_ON(!list_empty(&dev->ptype_specific))
    in net/core/dev.c due to still having the NC-SI packet handler
    registered.
    
     # echo 1e660000.ethernet > /sys/bus/platform/drivers/ftgmac100/unbind
      ------------[ cut here ]------------
      kernel BUG at net/core/dev.c:10254!
      Internal error: Oops - BUG: 0 [#1] SMP ARM
      CPU: 0 PID: 115 Comm: sh Not tainted 5.10.0-rc3-next-20201111-00007-g02e0365710c4 #46
      Hardware name: Generic DT based system
      PC is at netdev_run_todo+0x314/0x394
      LR is at cpumask_next+0x20/0x24
      pc : [<806f5830>]    lr : [<80863cb0>]    psr: 80000153
      sp : 855bbd58  ip : 00000001  fp : 855bbdac
      r10: 80c03d00  r9 : 80c06228  r8 : 81158c54
      r7 : 00000000  r6 : 80c05dec  r5 : 80c05d18  r4 : 813b9280
      r3 : 813b9054  r2 : 8122c470  r1 : 00000002  r0 : 00000002
      Flags: Nzcv  IRQs on  FIQs off  Mode SVC_32  ISA ARM  Segment none
      Control: 00c5387d  Table: 85514008  DAC: 00000051
      Process sh (pid: 115, stack limit = 0x7cb5703d)
     ...
      Backtrace:
      [<806f551c>] (netdev_run_todo) from [<80707eec>] (rtnl_unlock+0x18/0x1c)
       r10:00000051 r9:854ed710 r8:81158c54 r7:80c76bb0 r6:81158c10 r5:8115b410
       r4:813b9000
      [<80707ed4>] (rtnl_unlock) from [<806f5db8>] (unregister_netdev+0x2c/0x30)
      [<806f5d8c>] (unregister_netdev) from [<805a8180>] (ftgmac100_remove+0x20/0xa8)
       r5:8115b410 r4:813b9000
      [<805a8160>] (ftgmac100_remove) from [<805355e4>] (platform_drv_remove+0x34/0x4c)
    
    Fixes: bd466c3fb5a4 ("net/faraday: Support NCSI mode")
    Signed-off-by: Joel Stanley <joel@jms.id.au>
    Link: https://lore.kernel.org/r/20201117024448.1170761-1-joel@jms.id.au
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ca9ff6300c66f6a5f768e2a8cee0205cf0f5b48
Author: Ryan Sharpelletti <sharpelletti@google.com>
Date:   Mon Nov 16 17:44:13 2020 +0000

    tcp: only postpone PROBE_RTT if RTT is < current min_rtt estimate
    
    [ Upstream commit 1b9e2a8c99a5c021041bfb2d512dc3ed92a94ffd ]
    
    During loss recovery, retransmitted packets are forced to use TCP
    timestamps to calculate the RTT samples, which have a millisecond
    granularity. BBR is designed using a microsecond granularity. As a
    result, multiple RTT samples could be truncated to the same RTT value
    during loss recovery. This is problematic, as BBR will not enter
    PROBE_RTT if the RTT sample is <= the current min_rtt sample, meaning
    that if there are persistent losses, PROBE_RTT will constantly be
    pushed off and potentially never re-entered. This patch makes sure
    that BBR enters PROBE_RTT by checking if RTT sample is < the current
    min_rtt sample, rather than <=.
    
    The Netflix transport/TCP team discovered this bug in the Linux TCP
    BBR code during lab tests.
    
    Fixes: 0f8782ea1497 ("tcp_bbr: add BBR congestion control")
    Signed-off-by: Ryan Sharpelletti <sharpelletti@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Link: https://lore.kernel.org/r/20201116174412.1433277-1-sharpelletti.kdev@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed6663de4a2b4226b7ecccefbe7ec6a66634067e
Author: Filip Moc <dev@moc6.cz>
Date:   Tue Nov 17 18:36:31 2020 +0100

    net: usb: qmi_wwan: Set DTR quirk for MR400
    
    [ Upstream commit df8d85d8c69d6837817e54dcb73c84a8b5a13877 ]
    
    LTE module MR400 embedded in TL-MR6400 v4 requires DTR to be set.
    
    Signed-off-by: Filip Moc <dev@moc6.cz>
    Acked-by: Bjørn Mork <bjorn@mork.no>
    Link: https://lore.kernel.org/r/20201117173631.GA550981@moc6.cz
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0cf7f03531a213449b9325aa21b53c2e6012cd0
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sat Nov 14 13:22:53 2020 +0800

    sctp: change to hold/put transport for proto_unreach_timer
    
    [ Upstream commit 057a10fa1f73d745c8e69aa54ab147715f5630ae ]
    
    A call trace was found in Hangbin's Codenomicon testing with debug kernel:
    
      [ 2615.981988] ODEBUG: free active (active state 0) object type: timer_list hint: sctp_generate_proto_unreach_event+0x0/0x3a0 [sctp]
      [ 2615.995050] WARNING: CPU: 17 PID: 0 at lib/debugobjects.c:328 debug_print_object+0x199/0x2b0
      [ 2616.095934] RIP: 0010:debug_print_object+0x199/0x2b0
      [ 2616.191533] Call Trace:
      [ 2616.194265]  <IRQ>
      [ 2616.202068]  debug_check_no_obj_freed+0x25e/0x3f0
      [ 2616.207336]  slab_free_freelist_hook+0xeb/0x140
      [ 2616.220971]  kfree+0xd6/0x2c0
      [ 2616.224293]  rcu_do_batch+0x3bd/0xc70
      [ 2616.243096]  rcu_core+0x8b9/0xd00
      [ 2616.256065]  __do_softirq+0x23d/0xacd
      [ 2616.260166]  irq_exit+0x236/0x2a0
      [ 2616.263879]  smp_apic_timer_interrupt+0x18d/0x620
      [ 2616.269138]  apic_timer_interrupt+0xf/0x20
      [ 2616.273711]  </IRQ>
    
    This is because it holds asoc when transport->proto_unreach_timer starts
    and puts asoc when the timer stops, and without holding transport the
    transport could be freed when the timer is still running.
    
    So fix it by holding/putting transport instead for proto_unreach_timer
    in transport, just like other timers in transport.
    
    v1->v2:
      - Also use sctp_transport_put() for the "out_unlock:" path in
        sctp_generate_proto_unreach_event(), as Marcelo noticed.
    
    Fixes: 50b5d6ad6382 ("sctp: Fix a race between ICMP protocol unreachable and connect()")
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Link: https://lore.kernel.org/r/102788809b554958b13b95d33440f5448113b8d6.1605331373.git.lucien.xin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7562aefff5416345edf5e4aa3046f868fc95a3d
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Fri Nov 13 14:16:26 2020 +0800

    qlcnic: fix error return code in qlcnic_83xx_restart_hw()
    
    [ Upstream commit 3beb9be165083c2964eba1923601c3bfac0b02d4 ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 3ced0a88cd4c ("qlcnic: Add support to run firmware POST")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605248186-16013-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06ee3d5ec9695ad87ab27f0726ce2fe1b8d923bf
Author: Xie He <xie.he.0141@gmail.com>
Date:   Thu Nov 12 02:35:06 2020 -0800

    net: x25: Increase refcnt of "struct x25_neigh" in x25_rx_call_request
    
    [ Upstream commit 4ee18c179e5e815fa5575e0d2db0c05795a804ee ]
    
    The x25_disconnect function in x25_subr.c would decrease the refcount of
    "x25->neighbour" (struct x25_neigh) and reset this pointer to NULL.
    
    However, the x25_rx_call_request function in af_x25.c, which is called
    when we receive a connection request, does not increase the refcount when
    it assigns the pointer.
    
    Fix this issue by increasing the refcount of "struct x25_neigh" in
    x25_rx_call_request.
    
    This patch fixes frequent kernel crashes when using AF_X25 sockets.
    
    Fixes: 4becb7ee5b3d ("net/x25: Fix x25_neigh refcnt leak when x25 disconnect")
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Link: https://lore.kernel.org/r/20201112103506.5875-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3291019ca8c69203cb9c787bead04d04be819777
Author: Aya Levin <ayal@nvidia.com>
Date:   Wed Nov 18 10:19:22 2020 +0200

    net/mlx4_core: Fix init_hca fields offset
    
    [ Upstream commit 6d9c8d15af0ef20a66a0b432cac0d08319920602 ]
    
    Slave function read the following capabilities from the wrong offset:
    1. log_mc_entry_sz
    2. fs_log_entry_sz
    3. log_mc_hash_sz
    
    Fix that by adjusting these capabilities offset to match firmware
    layout.
    
    Due to the wrong offset read, the following issues might occur:
    1+2. Negative value reported at max_mcast_qp_attach.
    3. Driver to init FW with multicast hash size of zero.
    
    Fixes: a40ded604365 ("net/mlx4_core: Add masking for a few queries on HCA caps")
    Signed-off-by: Aya Levin <ayal@nvidia.com>
    Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Eran Ben Elisha <eranbe@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://lore.kernel.org/r/20201118081922.553-1-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b55215a73d8f1c4fda57e305e040a3665ceaac98
Author: Paul Moore <paul@paul-moore.com>
Date:   Fri Nov 13 16:30:40 2020 -0500

    netlabel: fix an uninitialized warning in netlbl_unlabel_staticlist()
    
    [ Upstream commit 1ba86d4366e023d96df3dbe415eea7f1dc08c303 ]
    
    Static checking revealed that a previous fix to
    netlbl_unlabel_staticlist() leaves a stack variable uninitialized,
    this patches fixes that.
    
    Fixes: 866358ec331f ("netlabel: fix our progress tracking in netlbl_unlabel_staticlist()")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Reviewed-by: James Morris <jamorris@linux.microsoft.com>
    Link: https://lore.kernel.org/r/160530304068.15651.18355773009751195447.stgit@sifl
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 627da8ffaaf1aecfe512f1c4d8be314c3cc8dc20
Author: Paul Moore <paul@paul-moore.com>
Date:   Sun Nov 8 09:08:26 2020 -0500

    netlabel: fix our progress tracking in netlbl_unlabel_staticlist()
    
    [ Upstream commit 866358ec331f8faa394995fb4b511af1db0247c8 ]
    
    The current NetLabel code doesn't correctly keep track of the netlink
    dump state in some cases, in particular when multiple interfaces with
    large configurations are loaded.  The problem manifests itself by not
    reporting the full configuration to userspace, even though it is
    loaded and active in the kernel.  This patch fixes this by ensuring
    that the dump state is properly reset when necessary inside the
    netlbl_unlabel_staticlist() function.
    
    Fixes: 8cc44579d1bd ("NetLabel: Introduce static network labels for unlabeled connections")
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Link: https://lore.kernel.org/r/160484450633.3752.16512718263560813473.stgit@sifl
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3722985b5872e60ee5e5ebcf3ea066d6e702398b
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Nov 16 19:52:34 2020 -0800

    net: Have netpoll bring-up DSA management interface
    
    [ Upstream commit 1532b9778478577152201adbafa7738b1e844868 ]
    
    DSA network devices rely on having their DSA management interface up and
    running otherwise their ndo_open() will return -ENETDOWN. Without doing
    this it would not be possible to use DSA devices as netconsole when
    configured on the command line. These devices also do not utilize the
    upper/lower linking so the check about the netpoll device having upper
    is not going to be a problem.
    
    The solution adopted here is identical to the one done for
    net/ipv4/ipconfig.c with 728c02089a0e ("net: ipv4: handle DSA enabled
    master network devices"), with the network namespace scope being
    restricted to that of the process configuring netpoll.
    
    Fixes: 04ff53f96a93 ("net: dsa: Add netconsole support")
    Tested-by: Vladimir Oltean <olteanv@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20201117035236.22658-1-f.fainelli@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41456415b831c1df8da98014e113c4f4a3db22a8
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Fri Nov 13 10:27:27 2020 +0100

    net: bridge: add missing counters to ndo_get_stats64 callback
    
    [ Upstream commit 7a30ecc9237681bb125cbd30eee92bef7e86293d ]
    
    In br_forward.c and br_input.c fields dev->stats.tx_dropped and
    dev->stats.multicast are populated, but they are ignored in
    ndo_get_stats64.
    
    Fixes: 28172739f0a2 ("net: fix 64 bit counters on 32 bit arches")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Link: https://lore.kernel.org/r/58ea9963-77ad-a7cf-8dfd-fc95ab95f606@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2e45a424c200a593f87cf6831c16d941141b828
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Tue Nov 17 11:02:11 2020 +0800

    net: b44: fix error return code in b44_init_one()
    
    [ Upstream commit 7b027c249da54f492699c43e26cba486cfd48035 ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 39a6f4bce6b4 ("b44: replace the ssb_dma API with the generic DMA API")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Reviewed-by: Michael Chan <michael.chan@broadcom.com>
    Link: https://lore.kernel.org/r/1605582131-36735-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1555c9c3e8d80a18f14cd06dff0719bbc51c8d8
Author: Wang Hai <wanghai38@huawei.com>
Date:   Mon Nov 16 16:20:18 2020 +0800

    inet_diag: Fix error path to cancel the meseage in inet_req_diag_fill()
    
    [ Upstream commit e33de7c5317e2827b2ba6fd120a505e9eb727b05 ]
    
    nlmsg_cancel() needs to be called in the error path of
    inet_req_diag_fill to cancel the message.
    
    Fixes: d545caca827b ("net: inet: diag: expose the socket mark to privileged processes.")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20201116082018.16496-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 138c1563a1606281df88faf8b9ae4c48b58294b3
Author: Wang Hai <wanghai38@huawei.com>
Date:   Fri Nov 13 19:16:22 2020 +0800

    devlink: Add missing genlmsg_cancel() in devlink_nl_sb_port_pool_fill()
    
    [ Upstream commit 849920c703392957f94023f77ec89ca6cf119d43 ]
    
    If sb_occ_port_pool_get() failed in devlink_nl_sb_port_pool_fill(),
    msg should be canceled by genlmsg_cancel().
    
    Fixes: df38dafd2559 ("devlink: implement shared buffer occupancy monitoring interface")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20201113111622.11040-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 043cb594000f3c189496259e46676d8fbbf29add
Author: Edwin Peer <edwin.peer@broadcom.com>
Date:   Sun Nov 15 19:27:49 2020 -0500

    bnxt_en: read EEPROM A2h address using page 0
    
    [ Upstream commit 4260330b32b14330cfe427d568ac5f5b29b5be3d ]
    
    The module eeprom address range returned by bnxt_get_module_eeprom()
    should be 256 bytes of A0h address space, the lower half of the A2h
    address space, and page 0 for the upper half of the A2h address space.
    
    Fix the firmware call by passing page_number 0 for the A2h slave address
    space.
    
    Fixes: 42ee18fe4ca2 ("bnxt_en: Add Support for ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPRO")
    Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aab5d313a719582e784cda15f06720ce0bf8404e
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Mon Nov 16 17:21:14 2020 +0100

    atm: nicstar: Unmap DMA on send error
    
    [ Upstream commit 6dceaa9f56e22d0f9b4c4ad2ed9e04e315ce7fe5 ]
    
    The `skb' is mapped for DMA in ns_send() but does not unmap DMA in case
    push_scqe() fails to submit the `skb'. The memory of the `skb' is
    released so only the DMA mapping is leaking.
    
    Unmap the DMA mapping in case push_scqe() failed.
    
    Fixes: 864a3ff635fa7 ("atm: [nicstar] remove virt_to_bus() and support 64-bit platforms")
    Cc: Chas Williams <3chas3@gmail.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d6f77b1e06ee25ce28188ad900fb1c47e1f6b1e
Author: Zhang Changzhong <zhangchangzhong@huawei.com>
Date:   Tue Nov 17 10:45:05 2020 +0800

    ah6: fix error return code in ah6_input()
    
    [ Upstream commit a5ebcbdf34b65fcc07f38eaf2d60563b42619a59 ]
    
    Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1605581105-35295-1-git-send-email-zhangchangzhong@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>