Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 5.4-1.0.0-imx to v5.4.58 from stable #103

Merged
merged 80 commits into from
Aug 11, 2020

Commits on Aug 7, 2020

  1. random32: update the net random state on interrupt and activity

    commit f227e3e upstream.
    
    This modifies the first 32 bits out of the 128 bits of a random CPU's
    net_rand_state on interrupt or CPU activity to complicate remote
    observations that could lead to guessing the network RNG's internal
    state.
    
    Note that depending on some network devices' interrupt rate moderation
    or binding, this re-seeding might happen on every packet or even almost
    never.
    
    In addition, with NOHZ some CPUs might not even get timer interrupts,
    leaving their local state rarely updated, while they are running
    networked processes making use of the random state.  For this reason, we
    also perform this update in update_process_times() in order to at least
    update the state when there is user or system activity, since it's the
    only case we care about.
    
    Reported-by: Amit Klein <aksecurity@gmail.com>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wtarreau authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    c15a77b View commit details
    Browse the repository at this point in the history
  2. ARM: percpu.h: fix build error

    commit aa54ea9 upstream.
    
    Fix build error for the case:
      defined(CONFIG_SMP) && !defined(CONFIG_CPU_V6)
    
    config: keystone_defconfig
    
      CC      arch/arm/kernel/signal.o
      In file included from ../include/linux/random.h:14,
                        from ../arch/arm/kernel/signal.c:8:
      ../arch/arm/include/asm/percpu.h: In function ‘__my_cpu_offset’:
      ../arch/arm/include/asm/percpu.h:29:34: error: ‘current_stack_pointer’ undeclared (first use in this function); did you mean ‘user_stack_pointer’?
          : "Q" (*(const unsigned long *)current_stack_pointer));
                                         ^~~~~~~~~~~~~~~~~~~~~
                                         user_stack_pointer
    
    Fixes: f227e3e ("random32: update the net random state on interrupt and activity")
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    grygoriyS authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    50bf896 View commit details
    Browse the repository at this point in the history
  3. random: fix circular include dependency on arm64 after addition of pe…

    …rcpu.h
    
    commit 1c9df90 upstream.
    
    Daniel Díaz and Kees Cook independently reported that commit
    f227e3e ("random32: update the net random state on interrupt and
    activity") broke arm64 due to a circular dependency on include files
    since the addition of percpu.h in random.h.
    
    The correct fix would definitely be to move all the prandom32 stuff out
    of random.h but for backporting, a smaller solution is preferred.
    
    This one replaces linux/percpu.h with asm/percpu.h, and this fixes the
    problem on x86_64, arm64, arm, and mips.  Note that moving percpu.h
    around didn't change anything and that removing it entirely broke
    differently.  When backporting, such options might still be considered
    if this patch fails to help.
    
    [ It turns out that an alternate fix seems to be to just remove the
      troublesome <asm/pointer_auth.h> remove from the arm64 <asm/smp.h>
      that causes the circular dependency.
    
      But we might as well do the whole belt-and-suspenders thing, and
      minimize inclusion in <linux/random.h> too. Either will fix the
      problem, and both are good changes.   - Linus ]
    
    Reported-by: Daniel Díaz <daniel.diaz@linaro.org>
    Reported-by: Kees Cook <keescook@chromium.org>
    Tested-by: Marc Zyngier <maz@kernel.org>
    Fixes: f227e3e
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wtarreau authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    7471f32 View commit details
    Browse the repository at this point in the history
  4. random32: remove net_rand_state from the latent entropy gcc plugin

    commit 83bdc72 upstream.
    
    It turns out that the plugin right now ends up being really unhappy
    about the change from 'static' to 'extern' storage that happened in
    commit f227e3e ("random32: update the net random state on interrupt
    and activity").
    
    This is probably a trivial fix for the latent_entropy plugin, but for
    now, just remove net_rand_state from the list of things the plugin
    worries about.
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Emese Revfy <re.emese@gmail.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    torvalds authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    c131009 View commit details
    Browse the repository at this point in the history
  5. random32: move the pseudo-random 32-bit definitions to prandom.h

    commit c0842fb upstream.
    
    The addition of percpu.h to the list of includes in random.h revealed
    some circular dependencies on arm64 and possibly other platforms.  This
    include was added solely for the pseudo-random definitions, which have
    nothing to do with the rest of the definitions in this file but are
    still there for legacy reasons.
    
    This patch moves the pseudo-random parts to linux/prandom.h and the
    percpu.h include with it, which is now guarded by _LINUX_PRANDOM_H and
    protected against recursive inclusion.
    
    A further cleanup step would be to remove this from <linux/random.h>
    entirely, and make people who use the prandom infrastructure include
    just the new header file.  That's a bit of a churn patch, but grepping
    for "prandom_" and "next_pseudo_random32" "struct rnd_state" should
    catch most users.
    
    But it turns out that that nice cleanup step is fairly painful, because
    a _lot_ of code currently seems to depend on the implicit include of
    <linux/random.h>, which can currently come in a lot of ways, including
    such fairly core headfers as <linux/net.h>.
    
    So the "nice cleanup" part may or may never happen.
    
    Fixes: 1c9df90 ("random: fix circular include dependency on arm64 after addition of percpu.h")
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    torvalds authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    f06d60f View commit details
    Browse the repository at this point in the history
  6. arm64: Workaround circular dependency in pointer_auth.h

    With the backport of f227e3e ("random32: update the net random
    state on interrupt and activity") and its associated fixes, the
    arm64 build explodes early:
    
    In file included from ../include/linux/smp.h:67,
                      from ../include/linux/percpu.h:7,
                      from ../include/linux/prandom.h:12,
                      from ../include/linux/random.h:118,
                      from ../arch/arm64/include/asm/pointer_auth.h:6,
                      from ../arch/arm64/include/asm/processor.h:39,
                      from ../include/linux/mutex.h:19,
                      from ../include/linux/kernfs.h:12,
                      from ../include/linux/sysfs.h:16,
                      from ../include/linux/kobject.h:20,
                      from ../include/linux/of.h:17,
                      from ../include/linux/irqdomain.h:35,
                      from ../include/linux/acpi.h:13,
                      from ../include/acpi/apei.h:9,
                      from ../include/acpi/ghes.h:5,
                      from ../include/linux/arm_sdei.h:8,
                      from ../arch/arm64/kernel/asm-offsets.c:10:
    ../arch/arm64/include/asm/smp.h:100:29: error: field ‘ptrauth_key’ has
    incomplete type
    
    This is due to struct ptrauth_keys_kernel not being defined before
    we transitively include asm/smp.h from linux/random.h.
    
    Paper over it by moving the inclusion of linux/random.h *after* the
    type has been defined.
    
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Marc Zyngier authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    6330b0c View commit details
    Browse the repository at this point in the history
  7. ext4: fix direct I/O read error

    This patch is used to fix ext4 direct I/O read error when
    the read size is not aligned with block size.
    
    Then, I will use a test to explain the error.
    
    (1) Make a file that is not aligned with block size:
    	$dd if=/dev/zero of=./test.jar bs=1000 count=3
    
    (2) I wrote a source file named "direct_io_read_file.c" as following:
    
    	#include <stdio.h>
    	#include <stdlib.h>
    	#include <unistd.h>
    	#include <sys/file.h>
    	#include <sys/types.h>
    	#include <sys/stat.h>
    	#include <string.h>
    	#define BUF_SIZE 1024
    
    	int main()
    	{
    		int fd;
    		int ret;
    
    		unsigned char *buf;
    		ret = posix_memalign((void **)&buf, 512, BUF_SIZE);
    		if (ret) {
    			perror("posix_memalign failed");
    			exit(1);
    		}
    		fd = open("./test.jar", O_RDONLY | O_DIRECT, 0755);
    		if (fd < 0){
    			perror("open ./test.jar failed");
    			exit(1);
    		}
    
    		do {
    			ret = read(fd, buf, BUF_SIZE);
    			printf("ret=%d\n",ret);
    			if (ret < 0) {
    				perror("write test.jar failed");
    			}
    		} while (ret > 0);
    
    		free(buf);
    		close(fd);
    	}
    
    (3) Compile the source file:
    	$gcc direct_io_read_file.c -D_GNU_SOURCE
    
    (4) Run the test program:
    	$./a.out
    
    	The result is as following:
    	ret=1024
    	ret=1024
    	ret=952
    	ret=-1
    	write test.jar failed: Invalid argument.
    
    I have tested this program on XFS filesystem, XFS does not have
    this problem, because XFS use iomap_dio_rw() to do direct I/O
    read. And the comparing between read offset and file size is done
    in iomap_dio_rw(), the code is as following:
    
    	if (pos < size) {
    		retval = filemap_write_and_wait_range(mapping, pos,
    				pos + iov_length(iov, nr_segs) - 1);
    
    		if (!retval) {
    			retval = mapping->a_ops->direct_IO(READ, iocb,
    						iov, pos, nr_segs);
    		}
    		...
    	}
    
    ...only when "pos < size", direct I/O can be done, or 0 will be return.
    
    I have tested the fix patch on Ext4, it is up to the mustard of
    EINVAL in man2(read) as following:
    	#include <unistd.h>
    	ssize_t read(int fd, void *buf, size_t count);
    
    	EINVAL
    		fd is attached to an object which is unsuitable for reading;
    		or the file was opened with the O_DIRECT flag, and either the
    		address specified in buf, the value specified in count, or the
    		current file offset is not suitably aligned.
    
    So I think this patch can be applied to fix ext4 direct I/O error.
    
    However Ext4 introduces direct I/O read using iomap infrastructure
    on kernel 5.5, the patch is commit <b1b4705d54ab>
    ("ext4: introduce direct I/O read using iomap infrastructure"),
    then Ext4 will be the same as XFS, they all use iomap_dio_rw() to do direct
    I/O read. So this problem does not exist on kernel 5.5 for Ext4.
    
    >From above description, we can see this problem exists on all the kernel
    versions between kernel 3.14 and kernel 5.4. It will cause the Applications
    to fail to read. For example, when the search service downloads a new full
    index file, the search engine is loading the previous index file and is
    processing the search request, it can not use buffer io that may squeeze
    the previous index file in use from pagecache, so the serch service must
    use direct I/O read.
    
    Please apply this patch on these kernel versions, or please use the method
    on kernel 5.5 to fix this problem.
    
    Fixes: 9fe55ee ("Fix race when checking i_size on direct i/o read")
    Reviewed-by: Jan Kara <jack@suse.cz>
    Co-developed-by: Wang Long <wanglong19@meituan.com>
    Signed-off-by: Wang Long <wanglong19@meituan.com>
    Signed-off-by: Jiang Ying <jiangying8582@126.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    xinxinhaier authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    c776104 View commit details
    Browse the repository at this point in the history
  8. selftests: bpf: Fix detach from sockmap tests

    commit f43cb0d upstream.
    
    Fix sockmap tests which rely on old bpf_prog_dispatch behaviour.
    In the first case, the tests check that detaching without giving
    a program succeeds. Since these are not the desired semantics,
    invert the condition. In the second case, the clean up code doesn't
    supply the necessary program fds.
    
    Fixes: bb0de31 ("bpf: sockmap: Require attach_bpf_fd when detaching a program")
    Reported-by: Martin KaFai Lau <kafai@fb.com>
    Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/bpf/20200709115151.75829-1-lmb@cloudflare.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lmb authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    9fe975a View commit details
    Browse the repository at this point in the history
  9. bpf: sockmap: Require attach_bpf_fd when detaching a program

    commit bb0de31 upstream.
    
    The sockmap code currently ignores the value of attach_bpf_fd when
    detaching a program. This is contrary to the usual behaviour of
    checking that attach_bpf_fd represents the currently attached
    program.
    
    Ensure that attach_bpf_fd is indeed the currently attached
    program. It turns out that all sockmap selftests already do this,
    which indicates that this is unlikely to cause breakage.
    
    Fixes: 604326b ("bpf, sockmap: convert to generic sk_msg interface")
    Signed-off-by: Lorenz Bauer <lmb@cloudflare.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20200629095630.7933-5-lmb@cloudflare.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lmb authored and gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    ca7ace8 View commit details
    Browse the repository at this point in the history
  10. Linux 5.4.57

    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 7, 2020
    Configuration menu
    Copy the full SHA
    d993928 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2020

  1. USB: serial: qcserial: add EM7305 QDL product ID

    commit d2a4309 upstream.
    
    When running qmi-firmware-update on the Sierra Wireless EM7305 in a Toshiba
    laptop, it changed product ID to 0x9062 when entering QDL mode:
    
    usb 2-4: new high-speed USB device number 78 using xhci_hcd
    usb 2-4: New USB device found, idVendor=1199, idProduct=9062, bcdDevice= 0.00
    usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    usb 2-4: Product: EM7305
    usb 2-4: Manufacturer: Sierra Wireless, Incorporated
    
    The upgrade could complete after running
     # echo 1199 9062 > /sys/bus/usb-serial/drivers/qcserial/new_id
    
    qcserial 2-4:1.0: Qualcomm USB modem converter detected
    usb 2-4: Qualcomm USB modem converter now attached to ttyUSB0
    
    Signed-off-by: Erik Ekman <erik@kryo.se>
    Link: https://lore.kernel.org/r/20200717185118.3640219-1-erik@kryo.se
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    yarrick authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    aabba1b View commit details
    Browse the repository at this point in the history
  2. perf/core: Fix endless multiplex timer

    commit 90c91df upstream.
    
    Kan and Andi reported that we fail to kill rotation when the flexible
    events go empty, but the context does not. XXX moar
    
    Fixes: fd7d551 ("perf/cgroups: Don't rotate events for cgroups unnecessarily")
    Reported-by: Andi Kleen <ak@linux.intel.com>
    Reported-by: Kan Liang <kan.liang@linux.intel.com>
    Tested-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20200305123851.GX2596@hirez.programming.kicks-ass.net
    Cc: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Peter Zijlstra authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    68a2350 View commit details
    Browse the repository at this point in the history
  3. USB: iowarrior: fix up report size handling for some devices

    commit 17a8271 upstream.
    
    In previous patches that added support for new iowarrior devices, the
    handling of the report size was not done correct.
    
    Fix that up and update the copyright date for the driver
    
    Reworked from an original patch written by Christoph Jung.
    
    Fixes: bab5417 ("USB: misc: iowarrior: add support for the 100 device")
    Fixes: 5f6f8da ("USB: misc: iowarrior: add support for the 28 and 28L devices")
    Fixes: 461d8de ("USB: misc: iowarrior: add support for 2 OEMed devices")
    Cc: stable <stable@kernel.org>
    Reported-by: Christoph Jung <jung@codemercs.com>
    Link: https://lore.kernel.org/r/20200726094939.1268978-1-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    7173ac5 View commit details
    Browse the repository at this point in the history
  4. usb: xhci: define IDs for various ASMedia host controllers

    commit 1841cb2 upstream.
    
    Not all ASMedia host controllers have a device ID that matches its part
    number. #define some of these IDs to make it clearer at a glance which
    chips require what quirks.
    
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Forest Crossman <cyrozap@gmail.com>
    Link: https://lore.kernel.org/r/20200728042408.180529-2-cyrozap@gmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    cyrozap authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    e7ad225 View commit details
    Browse the repository at this point in the history
  5. usb: xhci: Fix ASMedia ASM1142 DMA addressing

    commit ec37198 upstream.
    
    I've confirmed that the ASMedia ASM1142 has the same problem as the
    ASM2142/ASM3142, in that it too reports that it supports 64-bit DMA
    addresses when in fact it does not. As with the ASM2142/ASM3142, this
    can cause problems on systems where the upper bits matter, and adding
    the XHCI_NO_64BIT_SUPPORT quirk completely fixes the issue.
    
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Forest Crossman <cyrozap@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200728042408.180529-3-cyrozap@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    cyrozap authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    67afa25 View commit details
    Browse the repository at this point in the history
  6. io_uring: prevent re-read of sqe->opcode

    Liu reports that he can trigger a NULL pointer dereference with
    IORING_OP_SENDMSG, by changing the sqe->opcode after we've validated
    that the previous opcode didn't need a file and didn't assign one.
    
    Ensure we validate and read the opcode only once.
    
    Reported-by: Liu Yong <pkfxxxing@gmail.com>
    Tested-by: Liu Yong <pkfxxxing@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    axboe authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    a4d61e6 View commit details
    Browse the repository at this point in the history
  7. io_uring: Fix use-after-free in io_sq_wq_submit_work()

    when ctx->sqo_mm is zero, io_sq_wq_submit_work() frees 'req'
    without deleting it from 'task_list'. After that, 'req' is
    accessed in io_ring_ctx_wait_and_kill() which lead to
    a use-after-free.
    
    Signed-off-by: Guoyu Huang <hgy5945@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Hpasserby authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    e8053c6 View commit details
    Browse the repository at this point in the history
  8. Revert "ALSA: hda: call runtime_allow() for all hda controllers"

    commit 07c9983 upstream.
    
    This reverts commit 9a64184 ("ALSA: hda: call runtime_allow()
    for all hda controllers").
    
    The reverted patch already introduced some regressions on some
    machines:
     - on gemini-lake machines, the error of "azx_get_response timeout"
       happens in the hda driver.
     - on the machines with alc662 codec, the audio jack detection doesn't
       work anymore.
    
    Fixes: 9a64184 ("ALSA: hda: call runtime_allow() for all hda controllers")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208511
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20200803064638.6139-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jason77-wang authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    864468a View commit details
    Browse the repository at this point in the history
  9. ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops

    commit f1ec5be upstream.
    
    There are several Loongson-3 based laptops produced by CZC or Lemote,
    they use alc269/alc662 codecs and need specific pin-tables, this patch
    add their pin-tables.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/1596360400-32425-1-git-send-email-chenhc@lemote.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chenhuacai authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    1d05ad7 View commit details
    Browse the repository at this point in the history
  10. ALSA: hda/ca0132 - Add new quirk ID for Recon3D.

    commit cc5edb1 upstream.
    
    Add a new quirk ID for the Recon3D, as tested by me.
    
    Signed-off-by: Connor McAdams <conmanx360@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200803002928.8638-2-conmanx360@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Conmanx360 authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    8777577 View commit details
    Browse the repository at this point in the history
  11. ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.

    commit a00dc40 upstream.
    
    When the ZxR headphone gain control was added, the ca0132_switch_get
    function was not updated, which meant that the changes to the control
    state were not saved when entering/exiting alsamixer.
    
    Signed-off-by: Connor McAdams <conmanx360@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200803002928.8638-1-conmanx360@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Conmanx360 authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    b8ce075 View commit details
    Browse the repository at this point in the history
  12. ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.

    commit 7fe3530 upstream.
    
    The ca0113 command had the wrong group_id, 0x48 when it should've been
    0x30. The front microphone selection should now work.
    
    Signed-off-by: Connor McAdams <conmanx360@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200803002928.8638-3-conmanx360@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Conmanx360 authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    3ebdc7b View commit details
    Browse the repository at this point in the history
  13. ALSA: seq: oss: Serialize ioctls

    commit 80982c7 upstream.
    
    Some ioctls via OSS sequencer API may race and lead to UAF when the
    port create and delete are performed concurrently, as spotted by a
    couple of syzkaller cases.  This patch is an attempt to address it by
    serializing the ioctls with the existing register_mutex.
    
    Basically OSS sequencer API is an obsoleted interface and was designed
    without much consideration of the concurrency.  There are very few
    applications with it, and the concurrent performance isn't asked,
    hence this "big hammer" approach should be good enough.
    
    Reported-by: syzbot+1a54a94bd32716796edd@syzkaller.appspotmail.com
    Reported-by: syzbot+9d2abfef257f3e2d4713@syzkaller.appspotmail.com
    Suggested-by: Hillf Danton <hdanton@sina.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200804185815.2453-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    tiwai authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    4d81a7b View commit details
    Browse the repository at this point in the history
  14. staging: android: ashmem: Fix lockdep warning for write operation

    commit 3e338d3 upstream.
    
    syzbot report [1] describes a deadlock when write operation against an
    ashmem fd executed at the time when ashmem is shrinking its cache results
    in the following lock sequence:
    
    Possible unsafe locking scenario:
    
            CPU0                    CPU1
            ----                    ----
       lock(fs_reclaim);
                                    lock(&sb->s_type->i_mutex_key#13);
                                    lock(fs_reclaim);
       lock(&sb->s_type->i_mutex_key#13);
    
    kswapd takes fs_reclaim and then inode_lock while generic_perform_write
    takes inode_lock and then fs_reclaim. However ashmem does not support
    writing into backing shmem with a write syscall. The only way to change
    its content is to mmap it and operate on mapped memory. Therefore the race
    that lockdep is warning about is not valid. Resolve this by introducing a
    separate lockdep class for the backing shmem inodes.
    
    [1]: https://lkml.kernel.org/lkml/0000000000000b5f9d059aa2037f@google.com/
    
    Reported-by: syzbot+7a0d9d0b26efefe61780@syzkaller.appspotmail.com
    Signed-off-by: Suren Baghdasaryan <surenb@google.com>
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    Link: https://lore.kernel.org/r/20200730192632.3088194-1-surenb@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    surenbaghdasaryan authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    6a7626c View commit details
    Browse the repository at this point in the history
  15. staging: rtl8712: handle firmware load failure

    commit b4383c9 upstream.
    
    when firmware fails to load we should not call unregister_netdev()
    this patch fixes a race condition between rtl871x_load_fw_cb() and
    r871xu_dev_remove() and fixes the bug reported by syzbot
    
    Reported-by: syzbot+80899a8a8efe8968cde7@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=80899a8a8efe8968cde7
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200716151324.1036204-1-rkovhaev@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    rustylife authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    af707d9 View commit details
    Browse the repository at this point in the history
  16. Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode

    commit 1153644 upstream.
    
    The variable authmode can be uninitialized. The danger would be if
    it equals to _WPA_IE_ID_ (0xdd) or _WPA2_IE_ID_ (0x33). We can avoid
    this by setting it to zero instead. This is the approach that was
    used in the rtl8723bs driver.
    
    Fixes: 7b464c9 ("staging: r8188eu: Add files for new driver - part 4")
    Co-developed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200728072153.9202-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dinghaoliu authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    a8b8b53 View commit details
    Browse the repository at this point in the history
  17. Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result…

    …_evt()
    
    commit 51c19bf upstream.
    
    Check upon `num_rsp` is insufficient. A malformed event packet with a
    large `num_rsp` number makes hci_extended_inquiry_result_evt() go out
    of bounds. Fix it.
    
    This patch fixes the following syzbot bug:
    
        https://syzkaller.appspot.com/bug?id=4bf11aa05c4ca51ce0df86e500fce486552dc8d2
    
    Reported-by: syzbot+d8489a79b781849b9c46@syzkaller.appspotmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    peilin-ye authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    c26eaaf View commit details
    Browse the repository at this point in the history
  18. Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()

    commit 75bbd2e upstream.
    
    Check `num_rsp` before using it as for-loop counter.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    peilin-ye authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    70d1e88 View commit details
    Browse the repository at this point in the history
  19. Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi…

    …_evt()
    
    commit 629b49c upstream.
    
    Check `num_rsp` before using it as for-loop counter. Add `unlock` label.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    peilin-ye authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    b78763e View commit details
    Browse the repository at this point in the history
  20. omapfb: dss: Fix max fclk divider for omap36xx

    commit 254503a upstream.
    
    The drm/omap driver was fixed to correct an issue where using a
    divider of 32 breaks the DSS despite the TRM stating 32 is a valid
    number.  Through experimentation, it appears that 31 works, and
    it is consistent with the value used by the drm/omap driver.
    
    This patch fixes the divider for fbdev driver instead of the drm.
    
    Fixes: f76ee89 ("omapfb: copy omapdss & displays for omapfb")
    Cc: <stable@vger.kernel.org> Freescale#4.5+
    Signed-off-by: Adam Ford <aford173@gmail.com>
    Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Dave Airlie <airlied@gmail.com>
    Cc: Rob Clark <robdclark@gmail.com>
    [b.zolnierkie: mark patch as applicable to stable 4.5+ (was 4.9+)]
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200630182636.439015-1-aford173@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    aford173 authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    da47eae View commit details
    Browse the repository at this point in the history
  21. binder: Prevent context manager from incrementing ref 0

    commit 4b836a1 upstream.
    
    Binder is designed such that a binder_proc never has references to
    itself. If this rule is violated, memory corruption can occur when a
    process sends a transaction to itself; see e.g.
    <https://syzkaller.appspot.com/bug?extid=09e05aba06723a94d43d>.
    
    There is a remaining edgecase through which such a transaction-to-self
    can still occur from the context of a task with BINDER_SET_CONTEXT_MGR
    access:
    
     - task A opens /dev/binder twice, creating binder_proc instances P1
       and P2
     - P1 becomes context manager
     - P2 calls ACQUIRE on the magic handle 0, allocating index 0 in its
       handle table
     - P1 dies (by closing the /dev/binder fd and waiting a bit)
     - P2 becomes context manager
     - P2 calls ACQUIRE on the magic handle 0, allocating index 1 in its
       handle table
       [this triggers a warning: "binder: 1974:1974 tried to acquire
       reference to desc 0, got 1 instead"]
     - task B opens /dev/binder once, creating binder_proc instance P3
     - P3 calls P2 (via magic handle 0) with (void*)1 as argument (two-way
       transaction)
     - P2 receives the handle and uses it to call P3 (two-way transaction)
     - P3 calls P2 (via magic handle 0) (two-way transaction)
     - P2 calls P2 (via handle 1) (two-way transaction)
    
    And then, if P2 does *NOT* accept the incoming transaction work, but
    instead closes the binder fd, we get a crash.
    
    Solve it by preventing the context manager from using ACQUIRE on ref 0.
    There shouldn't be any legitimate reason for the context manager to do
    that.
    
    Additionally, print a warning if someone manages to find another way to
    trigger a transaction-to-self bug in the future.
    
    Cc: stable@vger.kernel.org
    Fixes: 457b9a6 ("Staging: android: add binder driver")
    Acked-by: Todd Kjos <tkjos@google.com>
    Signed-off-by: Jann Horn <jannh@google.com>
    Reviewed-by: Martijn Coenen <maco@android.com>
    Link: https://lore.kernel.org/r/20200727120424.1627555-1-jannh@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    thejh authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    c5665ca View commit details
    Browse the repository at this point in the history
  22. Smack: fix use-after-free in smk_write_relabel_self()

    commit beb4ee6 upstream.
    
    smk_write_relabel_self() frees memory from the task's credentials with
    no locking, which can easily cause a use-after-free because multiple
    tasks can share the same credentials structure.
    
    Fix this by using prepare_creds() and commit_creds() to correctly modify
    the task's credentials.
    
    Reproducer for "BUG: KASAN: use-after-free in smk_write_relabel_self":
    
    	#include <fcntl.h>
    	#include <pthread.h>
    	#include <unistd.h>
    
    	static void *thrproc(void *arg)
    	{
    		int fd = open("/sys/fs/smackfs/relabel-self", O_WRONLY);
    		for (;;) write(fd, "foo", 3);
    	}
    
    	int main()
    	{
    		pthread_t t;
    		pthread_create(&t, NULL, thrproc, NULL);
    		thrproc(NULL);
    	}
    
    Reported-by: syzbot+e6416dabb497a650da40@syzkaller.appspotmail.com
    Fixes: 38416e5 ("Smack: limited capability for changing process label")
    Cc: <stable@vger.kernel.org> # v4.4+
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ebiggers authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5f5fb7c View commit details
    Browse the repository at this point in the history
  23. scripts: add dummy report mode to add_namespace.cocci

    commit 55c7549 upstream.
    
    When running `make coccicheck` in report mode using the
    add_namespace.cocci file, it will fail for files that contain
    MODULE_LICENSE. Those match the replacement precondition, but spatch
    errors out as virtual.ns is not set.
    
    In order to fix that, add the virtual rule nsdeps and only do search and
    replace if that rule has been explicitly requested.
    
    In order to make spatch happy in report mode, we also need a dummy rule,
    as otherwise it errors out with "No rules apply". Using a script:python
    rule appears unrelated and odd, but this is the shortest I could come up
    with.
    
    Adjust scripts/nsdeps accordingly to set the nsdeps rule when run trough
    `make nsdeps`.
    
    Suggested-by: Julia Lawall <julia.lawall@inria.fr>
    Fixes: c7c4e29 ("scripts: add_namespace: Fix coccicheck failed")
    Cc: YueHaibing <yuehaibing@huawei.com>
    Cc: jeyu@kernel.org
    Cc: cocci@systeme.lip6.fr
    Cc: stable@vger.kernel.org
    Signed-off-by: Matthias Maennich <maennich@google.com>
    Reported-by: Shuah Khan <skhan@linuxfoundation.org>
    Acked-by: Julia Lawall <julia.lawall@inria.fr>
    Link: https://lore.kernel.org/r/20200604164145.173925-1-maennich@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    metti authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    1ae21e9 View commit details
    Browse the repository at this point in the history
  24. vgacon: Fix for missing check in scrollback handling

    commit ebfdfee upstream.
    
    vgacon_scrollback_update() always leaves enbough room in the scrollback
    buffer for the next call, but if the console size changed that room
    might not actually be enough, and so we need to re-check.
    
    The check should be in the loop since vgacon_scrollback_cur->tail is
    updated in the loop and count may be more than 1 when triggered by CSI M,
    as Jiri's PoC:
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <sys/ioctl.h>
    #include <fcntl.h>
    
    int main(int argc, char** argv)
    {
            int fd = open("/dev/tty1", O_RDWR);
            unsigned short size[3] = {25, 200, 0};
            ioctl(fd, 0x5609, size); // VT_RESIZE
    
            write(fd, "\e[1;1H", 6);
            for (int i = 0; i < 30; i++)
                    write(fd, "\e[10M", 5);
    }
    
    It leads to various crashes as vgacon_scrollback_update writes out of
    the buffer:
     BUG: unable to handle page fault for address: ffffc900001752a0
     #PF: supervisor write access in kernel mode
     #PF: error_code(0x0002) - not-present page
     RIP: 0010:mutex_unlock+0x13/0x30
    ...
     Call Trace:
      n_tty_write+0x1a0/0x4d0
      tty_write+0x1a0/0x2e0
    
    Or to KASAN reports:
    BUG: KASAN: slab-out-of-bounds in vgacon_scroll+0x57a/0x8ed
    
    This fixes CVE-2020-14331.
    
    Reported-by: 张云海 <zhangyunhai@nsfocus.com>
    Reported-by: Yang Yingliang <yangyingliang@huawei.com>
    Reported-by: Kyungtae Kim <kt0755@gmail.com>
    Fixes: 15bdab9 ([PATCH] vgacon: Add support for soft scrollback)
    Cc: stable@vger.kernel.org
    Cc: linux-fbdev@vger.kernel.org
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Solar Designer <solar@openwall.com>
    Cc: "Srivatsa S. Bhat" <srivatsa@csail.mit.edu>
    Cc: Anthony Liguori <aliguori@amazon.com>
    Cc: Yang Yingliang <yangyingliang@huawei.com>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: Yunhai Zhang <zhangyunhai@nsfocus.com>
    Link: https://lore.kernel.org/r/9fb43895-ca91-9b07-ebfd-808cf854ca95@nsfocus.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Yunhai Zhang authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    8c3215a View commit details
    Browse the repository at this point in the history
  25. mtd: properly check all write ioctls for permissions

    commit f7e6b19 upstream.
    
    When doing a "write" ioctl call, properly check that we have permissions
    to do so before copying anything from userspace or anything else so we
    can "fail fast".  This includes also covering the MEMWRITE ioctl which
    previously missed checking for this.
    
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Vignesh Raghavendra <vigneshr@ti.com>
    Cc: stable <stable@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [rw: Fixed locking issue]
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    9a53e8b View commit details
    Browse the repository at this point in the history
  26. leds: wm831x-status: fix use-after-free on unbind

    commit 47a459e upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 8d3b6a4 ("leds: wm831x-status: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    635f8fc View commit details
    Browse the repository at this point in the history
  27. leds: lm36274: fix use-after-free on unbind

    commit a0972ff upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot use devres so that
    deregistration ends up being tied to the parent device, something which
    leads to use-after-free on driver unbind when the class device is
    released while still being registered.
    
    Fixes: 11e1bbc ("leds: lm36274: Introduce the TI LM36274 LED driver")
    Cc: stable <stable@vger.kernel.org>     # 5.3
    Cc: Dan Murphy <dmurphy@ti.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    bde8f23 View commit details
    Browse the repository at this point in the history
  28. leds: da903x: fix use-after-free on unbind

    commit 6f4aa35 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: eed1625 ("leds: da903x: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    385c1ae View commit details
    Browse the repository at this point in the history
  29. leds: lm3533: fix use-after-free on unbind

    commit d584221 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 50154e2 ("leds: lm3533: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    3564cdd View commit details
    Browse the repository at this point in the history
  30. leds: 88pm860x: fix use-after-free on unbind

    commit eca21c2 upstream.
    
    Several MFD child drivers register their class devices directly under
    the parent device. This means you cannot blindly do devres conversions
    so that deregistration ends up being tied to the parent device,
    something which leads to use-after-free on driver unbind when the class
    device is released while still being registered.
    
    Fixes: 375446d ("leds: 88pm860x: Use devm_led_classdev_register")
    Cc: stable <stable@vger.kernel.org>     # 4.6
    Cc: Amitoj Kaur Chawla <amitoj1606@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    fe6402e View commit details
    Browse the repository at this point in the history
  31. net/9p: validate fds in p9_fd_open

    [ Upstream commit a39c460 ]
    
    p9_fd_open just fgets file descriptors passed in from userspace, but
    doesn't verify that they are valid for read or writing.  This gets
    cought down in the VFS when actually attempting a read or write, but
    a new warning added in linux-next upsets syzcaller.
    
    Fix this by just verifying the fds early on.
    
    Link: http://lkml.kernel.org/r/20200710085722.435850-1-hch@lst.de
    Reported-by: syzbot+e6f77e16ff68b2434a2c@syzkaller.appspotmail.com
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    [Dominique: amend goto as per Doug Nazar's review]
    Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Christoph Hellwig authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    e0c47a5 View commit details
    Browse the repository at this point in the history
  32. drm/nouveau/fbcon: fix module unload when fbcon init has failed for s…

    …ome reason
    
    [ Upstream commit 498595a ]
    
    Stale pointer was tripping up the unload path.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Ben Skeggs authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5955ccb View commit details
    Browse the repository at this point in the history
  33. drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure

    [ Upstream commit 15fbc3b ]
    
    This is tripping up the format modifier patches.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Ben Skeggs authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    802df1e View commit details
    Browse the repository at this point in the history
  34. nvme-pci: prevent SK hynix PC400 from using Write Zeroes command

    [ Upstream commit 5611ec2 ]
    
    After commit 6e02318 ("nvme: add support for the Write Zeroes
    command"), SK hynix PC400 becomes very slow with the following error
    message:
    
    [  224.567695] blk_update_request: operation not supported error, dev nvme1n1, sector 499384320 op 0x9:(WRITE_ZEROES) flags 0x1000000 phys_seg 0 prio class 0]
    
    SK Hynix PC400 has a buggy firmware that treats NLB as max value instead
    of a range, so the NLB passed isn't a valid value to the firmware.
    
    According to SK hynix there are three commands are affected:
    - Write Zeroes
    - Compare
    - Write Uncorrectable
    
    Right now only Write Zeroes is implemented, so disable it completely on
    SK hynix PC400.
    
    BugLink: https://bugs.launchpad.net/bugs/1872383
    Cc: kyounghwan sohn <kyounghwan.sohn@sk.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    khfeng authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    8e6af82 View commit details
    Browse the repository at this point in the history
  35. drm/drm_fb_helper: fix fbdev with sparc64

    [ Upstream commit 2a1658b ]
    
    Recent kernels have been reported to panic using the bochs_drm
    framebuffer under qemu-system-sparc64 which was bisected to
    commit 7a0483a ("drm/bochs: switch to generic drm fbdev emulation").
    
    The backtrace indicates that the shadow framebuffer copy in
    drm_fb_helper_dirty_blit_real() is trying to access the real
    framebuffer using a virtual address rather than use an IO access
    typically implemented using a physical (ASI_PHYS) access on SPARC.
    
    The fix is to replace the memcpy with memcpy_toio() from io.h.
    
    memcpy_toio() uses writeb() where the original fbdev code
    used sbus_memcpy_toio(). The latter uses sbus_writeb().
    
    The difference between writeb() and sbus_memcpy_toio() is
    that writeb() writes bytes in little-endian, where sbus_writeb() writes
    bytes in big-endian. As endian does not matter for byte writes they are
    the same. So we can safely use memcpy_toio() here.
    
    Note that this only fixes bochs, in general fbdev helpers still have
    issues with mixing up system memory and __iomem space. Fixing that will
    require a lot more work.
    
    v3:
      - Improved changelog (Daniel)
      - Added FIXME to fbdev_use_iomem (Daniel)
    
    v2:
      - Added missing __iomem cast (kernel test robot)
      - Made changelog readable and fix typos (Mark)
      - Add flag to select iomem - and set it in the bochs driver
    
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reported-by: kernel test robot <lkp@intel.com>
    Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Gerd Hoffmann <kraxel@redhat.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: sparclinux@vger.kernel.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20200709193016.291267-1-sam@ravnborg.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20200725191012.GA434957@ravnborg.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    sravnborg authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    4bba72b View commit details
    Browse the repository at this point in the history
  36. i2c: slave: improve sanity check when registering

    [ Upstream commit 1b1be3b ]
    
    Add check for ERR_PTR and simplify code while here.
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Alain Volmat <alain.volmat@st.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Wolfram Sang authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    fa0195d View commit details
    Browse the repository at this point in the history
  37. i2c: slave: add sanity check when unregistering

    [ Upstream commit 8808981 ]
    
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Alain Volmat <alain.volmat@st.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Wolfram Sang authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    871b5a5 View commit details
    Browse the repository at this point in the history
  38. usb: hso: check for return value in hso_serial_common_create()

    [ Upstream commit e911e99 ]
    
    in case of an error tty_register_device_attr() returns ERR_PTR(),
    add IS_ERR() check
    
    Reported-and-tested-by: syzbot+67b2bd0e34f952d0321e@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=67b2bd0e34f952d0321e
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    rustylife authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    fd601f3 View commit details
    Browse the repository at this point in the history
  39. net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for …

    …mt7623
    
    [ Upstream commit 19016d9 ]
    
    Modify mtk_gmac0_rgmii_adjust() so it can always be called.
    mtk_gmac0_rgmii_adjust() sets-up the TRGMII clocks.
    
    Signed-off-by: René van Dorst <opensource@vdorst.com>
    Signed-off-By: David Woodhouse <dwmw2@infradead.org>
    Tested-by: Frank Wunderlich <frank-w@public-files.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    vDorst authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    eb96e4f View commit details
    Browse the repository at this point in the history
  40. ALSA: hda: fix NULL pointer dereference during suspend

    [ Upstream commit 7fcd9bb ]
    
    When the ASoC card registration fails and the codec component driver
    never probes, the codec device is not initialized and therefore
    memory for codec->wcaps is not allocated. This results in a NULL pointer
    dereference when the codec driver suspend callback is invoked during
    system suspend. Fix this by returning without performing any actions
    during codec suspend/resume if the card was not registered successfully.
    
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Link: https://lore.kernel.org/r/20200728231011.1454066-1-ranjani.sridharan@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ranj063 authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    01fdcb8 View commit details
    Browse the repository at this point in the history
  41. firmware: Fix a reference count leak.

    [ Upstream commit fe3c606 ]
    
    kobject_init_and_add() takes reference even when it fails.
    If this function returns an error, kobject_put() must be called to
    properly clean up the memory associated with the object.
    Callback function fw_cfg_sysfs_release_entry() in kobject_put()
    can handle the pointer "entry" properly.
    
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Link: https://lore.kernel.org/r/20200613190533.15712-1-wu000273@umn.edu
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    QiushiWu authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    83ea637 View commit details
    Browse the repository at this point in the history
  42. cfg80211: check vendor command doit pointer before use

    [ Upstream commit 4052d3d ]
    
    In the case where a vendor command does not implement doit, and has no
    flags set, doit would not be validated and a NULL pointer dereference
    would occur, for example when invoking the vendor command via iw.
    
    I encountered this while developing new vendor commands.  Perhaps in
    practice it is advisable to always implement doit along with dumpit,
    but it seems reasonable to me to always check doit anyway, not just
    when NEED_WDEV.
    
    Signed-off-by: Julian Squires <julian@cipht.net>
    Link: https://lore.kernel.org/r/20200706211353.2366470-1-julian@cipht.net
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    tokenrove authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    7c8a863 View commit details
    Browse the repository at this point in the history
  43. igb: reinit_locked() should be called with rtnl_lock

    [ Upstream commit 024a816 ]
    
    We observed two panics involving races with igb_reset_task.
    The first panic is caused by this race condition:
    
    	kworker			reboot -f
    
    	igb_reset_task
    	igb_reinit_locked
    	igb_down
    	napi_synchronize
    				__igb_shutdown
    				igb_clear_interrupt_scheme
    				igb_free_q_vectors
    				igb_free_q_vector
    				adapter->q_vector[v_idx] = NULL;
    	napi_disable
    	Panics trying to access
    	adapter->q_vector[v_idx].napi_state
    
    The second panic (a divide error) is caused by this race:
    
    kworker		reboot -f	tx packet
    
    igb_reset_task
    		__igb_shutdown
    		rtnl_lock()
    		...
    		igb_clear_interrupt_scheme
    		igb_free_q_vectors
    		adapter->num_tx_queues = 0
    		...
    		rtnl_unlock()
    rtnl_lock()
    igb_reinit_locked
    igb_down
    igb_up
    netif_tx_start_all_queues
    				dev_hard_start_xmit
    				igb_xmit_frame
    				igb_tx_queue_mapping
    				Panics on
    				r_idx % adapter->num_tx_queues
    
    This commit applies to igb_reset_task the same changes that
    were applied to ixgbe in commit 2f90b86 ("ixgbe: this patch
    adds support for DCB to the kernel and ixgbe driver"),
    commit 8f4c5c9 ("ixgbe: reinit_locked() should be called with
    rtnl_lock") and commit 88adce4 ("ixgbe: fix possible race in
    reset subtask").
    
    Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Francesco Ruggeri authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5414f27 View commit details
    Browse the repository at this point in the history
  44. atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent

    [ Upstream commit 51875da ]
    
    atmtcp_remove_persistent() invokes atm_dev_lookup(), which returns a
    reference of atm_dev with increased refcount or NULL if fails.
    
    The refcount leaks issues occur in two error handling paths. If
    dev_data->persist is zero or PRIV(dev)->vcc isn't NULL, the function
    returns 0 without decreasing the refcount kept by a local variable,
    resulting in refcount leaks.
    
    Fix the issue by adding atm_dev_put() before returning 0 both when
    dev_data->persist is zero or PRIV(dev)->vcc isn't NULL.
    
    Signed-off-by: Xin Xiong <xiongx18@fudan.edu.cn>
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Conchy-Conchy authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    414f105 View commit details
    Browse the repository at this point in the history
  45. tools lib traceevent: Fix memory leak in process_dynamic_array_len

    [ Upstream commit e24c644 ]
    
    I compiled with AddressSanitizer and I had these memory leaks while I
    was using the tep_parse_format function:
    
        Direct leak of 28 byte(s) in 4 object(s) allocated from:
            #0 0x7fb07db49ffe in __interceptor_realloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10dffe)
            Freescale#1 0x7fb07a724228 in extend_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:985
            Freescale#2 0x7fb07a724c21 in __read_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1140
            Freescale#3 0x7fb07a724f78 in read_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1206
            Freescale#4 0x7fb07a725191 in __read_expect_type /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1291
            Freescale#5 0x7fb07a7251df in read_expect_type /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1299
            Freescale#6 0x7fb07a72e6c8 in process_dynamic_array_len /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:2849
            Freescale#7 0x7fb07a7304b8 in process_function /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3161
            Freescale#8 0x7fb07a730900 in process_arg_token /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3207
            Freescale#9 0x7fb07a727c0b in process_arg /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:1786
            Freescale#10 0x7fb07a731080 in event_read_print_args /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3285
            Freescale#11 0x7fb07a731722 in event_read_print /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:3369
            Freescale#12 0x7fb07a740054 in __tep_parse_format /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6335
            Freescale#13 0x7fb07a74047a in __parse_event /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6389
            Freescale#14 0x7fb07a740536 in tep_parse_format /home/pduplessis/repo/linux/tools/lib/traceevent/event-parse.c:6431
            Freescale#15 0x7fb07a785acf in parse_event ../../../src/fs-src/fs.c:251
            Freescale#16 0x7fb07a785ccd in parse_systems ../../../src/fs-src/fs.c:284
            Freescale#17 0x7fb07a786fb3 in read_metadata ../../../src/fs-src/fs.c:593
            Freescale#18 0x7fb07a78760e in ftrace_fs_source_init ../../../src/fs-src/fs.c:727
            Freescale#19 0x7fb07d90c19c in add_component_with_init_method_data ../../../../src/lib/graph/graph.c:1048
            Freescale#20 0x7fb07d90c87b in add_source_component_with_initialize_method_data ../../../../src/lib/graph/graph.c:1127
            Freescale#21 0x7fb07d90c92a in bt_graph_add_source_component ../../../../src/lib/graph/graph.c:1152
            Freescale#22 0x55db11aa632e in cmd_run_ctx_create_components_from_config_components ../../../src/cli/babeltrace2.c:2252
            Freescale#23 0x55db11aa6fda in cmd_run_ctx_create_components ../../../src/cli/babeltrace2.c:2347
            Freescale#24 0x55db11aa780c in cmd_run ../../../src/cli/babeltrace2.c:2461
            Freescale#25 0x55db11aa8a7d in main ../../../src/cli/babeltrace2.c:2673
            Freescale#26 0x7fb07d5460b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
    
    The token variable in the process_dynamic_array_len function is
    allocated in the read_expect_type function, but is not freed before
    calling the read_token function.
    
    Free the token variable before calling read_token in order to plug the
    leak.
    
    Signed-off-by: Philippe Duplessis-Guindon <pduplessis@efficios.com>
    Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: https://lore.kernel.org/linux-trace-devel/20200730150236.5392-1-pduplessis@efficios.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    Philippe Duplessis-Guindon authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    3429579 View commit details
    Browse the repository at this point in the history
  46. Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)

    [ Upstream commit ddc9d35 ]
    
    When a Linux hv_sock app tries to connect to a Service GUID on which no
    host app is listening, a recent host (RS3+) sends a
    CHANNELMSG_TL_CONNECT_RESULT (23) message to Linux and this triggers such
    a warning:
    
    unknown msgtype=23
    WARNING: CPU: 2 PID: 0 at drivers/hv/vmbus_drv.c:1031 vmbus_on_msg_dpc
    
    Actually Linux can safely ignore the message because the Linux app's
    connect() will time out in 2 seconds: see VSOCK_DEFAULT_CONNECT_TIMEOUT
    and vsock_stream_connect(). We don't bother to make use of the message
    because: 1) it's only supported on recent hosts; 2) a non-trivial effort
    is required to use the message in Linux, but the benefit is small.
    
    So, let's not see the warning by silently ignoring the message.
    
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    dcui authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    6059000 View commit details
    Browse the repository at this point in the history
  47. xattr: break delegations in {set,remove}xattr

    commit 08b5d50 upstream.
    
    set/removexattr on an exported filesystem should break NFS delegations.
    This is true in general, but also for the upcoming support for
    RFC 8726 (NFSv4 extended attribute support). Make sure that they do.
    
    Additionally, they need to grow a _locked variant, since callers might
    call this with i_rwsem held (like the NFS server code).
    
    Cc: stable@vger.kernel.org # v4.9+
    Cc: linux-fsdevel@vger.kernel.org
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Frank van der Linden <fllinden@amazon.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    fllinden authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    11e6414 View commit details
    Browse the repository at this point in the history
  48. Revert "powerpc/kasan: Fix shadow pages allocation failure"

    commit b506923 upstream.
    
    This reverts commit d2a91ce.
    
    This commit moved too much work in kasan_init(). The allocation
    of shadow pages has to be moved for the reason explained in that
    patch, but the allocation of page tables still need to be done
    before switching to the final hash table.
    
    First revert the incorrect commit, following patch redoes it
    properly.
    
    Fixes: d2a91ce ("powerpc/kasan: Fix shadow pages allocation failure")
    Cc: stable@vger.kernel.org
    Reported-by: Erhard F. <erhard_f@mailbox.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208181
    Link: https://lore.kernel.org/r/3667deb0911affbf999b99f87c31c77d5e870cd2.1593690707.git.christophe.leroy@csgroup.eu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chleroy authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    ceff42e View commit details
    Browse the repository at this point in the history
  49. PCI: tegra: Revert tegra124 raw_violation_fixup

    commit e7b856d upstream.
    
    As reported in https://bugzilla.kernel.org/206217 , raw_violation_fixup
    is causing more harm than good in some common use-cases.
    
    This patch is a partial revert of commit:
    
    191cd6f ("PCI: tegra: Add SW fixup for RAW violations")
    
    and fixes the following regression since then.
    
    * Description:
    
    When both the NIC and MMC are used one can see the following message:
    
      NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out
    
    and
    
      pcieport 0000:00:02.0: AER: Uncorrected (Non-Fatal) error received: 0000:01:00.0
      r8169 0000:01:00.0: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
      r8169 0000:01:00.0: AER:   device [10ec:8168] error status/mask=00004000/00400000
      r8169 0000:01:00.0: AER:    [14] CmpltTO                (First)
      r8169 0000:01:00.0: AER: can't recover (no error_detected callback)
      pcieport 0000:00:02.0: AER: device recovery failed
    
    After that, the ethernet NIC is not functional anymore even after
    reloading the r8169 module. After a reboot, this is reproducible by
    copying a large file over the NIC to the MMC.
    
    For some reason this is not reproducible when files are copied to a tmpfs.
    
    * Little background on the fixup, by Manikanta Maddireddy:
      "In the internal testing with dGPU on Tegra124, CmplTO is reported by
    dGPU. This happened because FIFO queue in AFI(AXI to PCIe) module
    get full by upstream posted writes. Back to back upstream writes
    interleaved with infrequent reads, triggers RAW violation and CmpltTO.
    This is fixed by reducing the posted write credits and by changing
    updateFC timer frequency. These settings are fixed after stress test.
    
    In the current case, RTL NIC is also reporting CmplTO. These settings
    seems to be aggravating the issue instead of fixing it."
    
    Link: https://lore.kernel.org/r/20200718100710.15398-1-kwizart@gmail.com
    Fixes: 191cd6f ("PCI: tegra: Add SW fixup for RAW violations")
    Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    kwizart authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    4913f71 View commit details
    Browse the repository at this point in the history
  50. ipv4: Silence suspicious RCU usage warning

    [ Upstream commit 83f3522 ]
    
    fib_trie_unmerge() is called with RTNL held, but not from an RCU
    read-side critical section. This leads to the following warning [1] when
    the FIB alias list in a leaf is traversed with
    hlist_for_each_entry_rcu().
    
    Since the function is always called with RTNL held and since
    modification of the list is protected by RTNL, simply use
    hlist_for_each_entry() and silence the warning.
    
    [1]
    WARNING: suspicious RCU usage
    5.8.0-rc4-custom-01520-gc1f937f3f83b Freescale#30 Not tainted
    -----------------------------
    net/ipv4/fib_trie.c:1867 RCU-list traversed in non-reader section!!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    1 lock held by ip/164:
     #0: ffffffff85a27850 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x49a/0xbd0
    
    stack backtrace:
    CPU: 0 PID: 164 Comm: ip Not tainted 5.8.0-rc4-custom-01520-gc1f937f3f83b Freescale#30
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-2.fc32 04/01/2014
    Call Trace:
     dump_stack+0x100/0x184
     lockdep_rcu_suspicious+0x153/0x15d
     fib_trie_unmerge+0x608/0xdb0
     fib_unmerge+0x44/0x360
     fib4_rule_configure+0xc8/0xad0
     fib_nl_newrule+0x37a/0x1dd0
     rtnetlink_rcv_msg+0x4f7/0xbd0
     netlink_rcv_skb+0x17a/0x480
     rtnetlink_rcv+0x22/0x30
     netlink_unicast+0x5ae/0x890
     netlink_sendmsg+0x98a/0xf40
     ____sys_sendmsg+0x879/0xa00
     ___sys_sendmsg+0x122/0x190
     __sys_sendmsg+0x103/0x1d0
     __x64_sys_sendmsg+0x7d/0xb0
     do_syscall_64+0x54/0xa0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7fc80a234e97
    Code: Bad RIP value.
    RSP: 002b:00007ffef8b66798 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc80a234e97
    RDX: 0000000000000000 RSI: 00007ffef8b66800 RDI: 0000000000000003
    RBP: 000000005f141b1c R08: 0000000000000001 R09: 0000000000000000
    R10: 00007fc80a2a8ac0 R11: 0000000000000246 R12: 0000000000000001
    R13: 0000000000000000 R14: 00007ffef8b67008 R15: 0000556fccb10020
    
    Fixes: 0ddcf43 ("ipv4: FIB Local/MAIN table collapse")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    idosch authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    9b37a7b View commit details
    Browse the repository at this point in the history
  51. ipv6: fix memory leaks on IPV6_ADDRFORM path

    [ Upstream commit 8c0de6e ]
    
    IPV6_ADDRFORM causes resource leaks when converting an IPv6 socket
    to IPv4, particularly struct ipv6_ac_socklist. Similar to
    struct ipv6_mc_socklist, we should just close it on this path.
    
    This bug can be easily reproduced with the following C program:
    
      #include <stdio.h>
      #include <string.h>
      #include <sys/types.h>
      #include <sys/socket.h>
      #include <arpa/inet.h>
    
      int main()
      {
        int s, value;
        struct sockaddr_in6 addr;
        struct ipv6_mreq m6;
    
        s = socket(AF_INET6, SOCK_DGRAM, 0);
        addr.sin6_family = AF_INET6;
        addr.sin6_port = htons(5000);
        inet_pton(AF_INET6, "::ffff:192.168.122.194", &addr.sin6_addr);
        connect(s, (struct sockaddr *)&addr, sizeof(addr));
    
        inet_pton(AF_INET6, "fe80::AAAA", &m6.ipv6mr_multiaddr);
        m6.ipv6mr_interface = 5;
        setsockopt(s, SOL_IPV6, IPV6_JOIN_ANYCAST, &m6, sizeof(m6));
    
        value = AF_INET;
        setsockopt(s, SOL_IPV6, IPV6_ADDRFORM, &value, sizeof(value));
    
        close(s);
        return 0;
      }
    
    Reported-by: ch3332xr@gmail.com
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    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>
    congwang authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    89c12bc View commit details
    Browse the repository at this point in the history
  52. ipv6: Fix nexthop refcnt leak when creating ipv6 route info

    [ Upstream commit 706ec91 ]
    
    ip6_route_info_create() invokes nexthop_get(), which increases the
    refcount of the "nh".
    
    When ip6_route_info_create() returns, local variable "nh" becomes
    invalid, so the refcount should be decreased to keep refcount balanced.
    
    The reference counting issue happens in one exception handling path of
    ip6_route_info_create(). When nexthops can not be used with source
    routing, the function forgets to decrease the refcnt increased by
    nexthop_get(), causing a refcnt leak.
    
    Fix this issue by pulling up the error source routing handling when
    nexthops can not be used with source routing.
    
    Fixes: f88d8ea ("ipv6: Plumb support for nexthop object in a fib6_info")
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    sherlly authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    bd68177 View commit details
    Browse the repository at this point in the history
  53. net: ethernet: mtk_eth_soc: fix MTU warnings

    [ Upstream commit 555a893 ]
    
    in recent kernel versions there are warnings about incorrect MTU size
    like these:
    
    eth0: mtu greater than device maximum
    mtk_soc_eth 1b100000.ethernet eth0: error -22 setting MTU to include DSA overhead
    
    Fixes: bfcb813 ("net: dsa: configure the MTU for switch ports")
    Fixes: 72579e1 ("net: dsa: don't fail to probe if we couldn't set the MTU")
    Fixes: 7a4c53b ("net: report invalid mtu value via netlink extack")
    Signed-off-by: Landen Chao <landen.chao@mediatek.com>
    Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Landen Chao authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    6f93547 View commit details
    Browse the repository at this point in the history
  54. rxrpc: Fix race between recvmsg and sendmsg on immediate call failure

    [ Upstream commit 6555009 ]
    
    There's a race between rxrpc_sendmsg setting up a call, but then failing to
    send anything on it due to an error, and recvmsg() seeing the call
    completion occur and trying to return the state to the user.
    
    An assertion fails in rxrpc_recvmsg() because the call has already been
    released from the socket and is about to be released again as recvmsg deals
    with it.  (The recvmsg_q queue on the socket holds a ref, so there's no
    problem with use-after-free.)
    
    We also have to be careful not to end up reporting an error twice, in such
    a way that both returns indicate to userspace that the user ID supplied
    with the call is no longer in use - which could cause the client to
    malfunction if it recycles the user ID fast enough.
    
    Fix this by the following means:
    
     (1) When sendmsg() creates a call after the point that the call has been
         successfully added to the socket, don't return any errors through
         sendmsg(), but rather complete the call and let recvmsg() retrieve
         them.  Make sendmsg() return 0 at this point.  Further calls to
         sendmsg() for that call will fail with ESHUTDOWN.
    
         Note that at this point, we haven't send any packets yet, so the
         server doesn't yet know about the call.
    
     (2) If sendmsg() returns an error when it was expected to create a new
         call, it means that the user ID wasn't used.
    
     (3) Mark the call disconnected before marking it completed to prevent an
         oops in rxrpc_release_call().
    
     (4) recvmsg() will then retrieve the error and set MSG_EOR to indicate
         that the user ID is no longer known by the kernel.
    
    An oops like the following is produced:
    
    	kernel BUG at net/rxrpc/recvmsg.c:605!
    	...
    	RIP: 0010:rxrpc_recvmsg+0x256/0x5ae
    	...
    	Call Trace:
    	 ? __init_waitqueue_head+0x2f/0x2f
    	 ____sys_recvmsg+0x8a/0x148
    	 ? import_iovec+0x69/0x9c
    	 ? copy_msghdr_from_user+0x5c/0x86
    	 ___sys_recvmsg+0x72/0xaa
    	 ? __fget_files+0x22/0x57
    	 ? __fget_light+0x46/0x51
    	 ? fdget+0x9/0x1b
    	 do_recvmmsg+0x15e/0x232
    	 ? _raw_spin_unlock+0xa/0xb
    	 ? vtime_delta+0xf/0x25
    	 __x64_sys_recvmmsg+0x2c/0x2f
    	 do_syscall_64+0x4c/0x78
    	 entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 357f5ef ("rxrpc: Call rxrpc_release_call() on error in rxrpc_new_client_call()")
    Reported-by: syzbot+b54969381df354936d96@syzkaller.appspotmail.com
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    dhowells authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    106b415 View commit details
    Browse the repository at this point in the history
  55. vxlan: Ensure FDB dump is performed under RCU

    [ Upstream commit b514191 ]
    
    The commit cited below removed the RCU read-side critical section from
    rtnl_fdb_dump() which means that the ndo_fdb_dump() callback is invoked
    without RCU protection.
    
    This results in the following warning [1] in the VXLAN driver, which
    relied on the callback being invoked from an RCU read-side critical
    section.
    
    Fix this by calling rcu_read_lock() in the VXLAN driver, as already done
    in the bridge driver.
    
    [1]
    WARNING: suspicious RCU usage
    5.8.0-rc4-custom-01521-g481007553ce6 Freescale#29 Not tainted
    -----------------------------
    drivers/net/vxlan.c:1379 RCU-list traversed in non-reader section!!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    1 lock held by bridge/166:
     #0: ffffffff85a27850 (rtnl_mutex){+.+.}-{3:3}, at: netlink_dump+0xea/0x1090
    
    stack backtrace:
    CPU: 1 PID: 166 Comm: bridge Not tainted 5.8.0-rc4-custom-01521-g481007553ce6 Freescale#29
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-2.fc32 04/01/2014
    Call Trace:
     dump_stack+0x100/0x184
     lockdep_rcu_suspicious+0x153/0x15d
     vxlan_fdb_dump+0x51e/0x6d0
     rtnl_fdb_dump+0x4dc/0xad0
     netlink_dump+0x540/0x1090
     __netlink_dump_start+0x695/0x950
     rtnetlink_rcv_msg+0x802/0xbd0
     netlink_rcv_skb+0x17a/0x480
     rtnetlink_rcv+0x22/0x30
     netlink_unicast+0x5ae/0x890
     netlink_sendmsg+0x98a/0xf40
     __sys_sendto+0x279/0x3b0
     __x64_sys_sendto+0xe6/0x1a0
     do_syscall_64+0x54/0xa0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7fe14fa2ade0
    Code: Bad RIP value.
    RSP: 002b:00007fff75bb5b88 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    RAX: ffffffffffffffda RBX: 00005614b1ba0020 RCX: 00007fe14fa2ade0
    RDX: 000000000000011c RSI: 00007fff75bb5b90 RDI: 0000000000000003
    RBP: 00007fff75bb5b90 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00005614b1b89160
    R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
    
    Fixes: 5e6d243 ("bridge: netlink dump interface at par with brctl")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    idosch authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    31489ed View commit details
    Browse the repository at this point in the history
  56. net: lan78xx: replace bogus endpoint lookup

    [ Upstream commit ea060b3 ]
    
    Drop the bogus endpoint-lookup helper which could end up accepting
    interfaces based on endpoints belonging to unrelated altsettings.
    
    Note that the returned bulk pipes and interrupt endpoint descriptor
    were never actually used. Instead the bulk-endpoint numbers are
    hardcoded to 1 and 2 (matching the specification), while the interrupt-
    endpoint descriptor was assumed to be the third descriptor created by
    USB core.
    
    Try to bring some order to this by dropping the bogus lookup helper and
    adding the missing endpoint sanity checks while keeping the interrupt-
    descriptor assumption for now.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jhovold authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    3787b5a View commit details
    Browse the repository at this point in the history
  57. appletalk: Fix atalk_proc_init() return path

    [ Upstream commit d0f6ba2 ]
    
    Add a missing return statement to atalk_proc_init so it doesn't return
    -ENOMEM when successful.  This allows the appletalk module to load
    properly.
    
    Fixes: e2bcd8b ("appletalk: use remove_proc_subtree to simplify procfs code")
    Link: https://www.downtowndougbrown.com/2020/08/hacking-up-a-fix-for-the-broken-appletalk-kernel-module-in-linux-5-1-and-newer/
    Reported-by: Christopher KOBAYASHI <chris@disavowed.jp>
    Reported-by: Doug Brown <doug@downtowndougbrown.com>
    Signed-off-by: Vincent Duvert <vincent.ldev@duvert.net>
    [lukas: add missing tags]
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: stable@vger.kernel.org # v5.1+
    Cc: Yue Haibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    VinDuv authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5a963aa View commit details
    Browse the repository at this point in the history
  58. dpaa2-eth: Fix passing zero to 'PTR_ERR' warning

    [ Upstream commit 02afa9c ]
    
    Fix smatch warning:
    
    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c:2419
     alloc_channel() warn: passing zero to 'ERR_PTR'
    
    setup_dpcon() should return ERR_PTR(err) instead of zero in error
    handling case.
    
    Fixes: d7f5a9d ("dpaa2-eth: defer probe on object allocate")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    YueHaibing authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    3a82f4b View commit details
    Browse the repository at this point in the history
  59. hv_netvsc: do not use VF device if link is down

    [ Upstream commit 7c9864b ]
    
    If the accelerated networking SRIOV VF device has lost carrier
    use the synthetic network device which is available as backup
    path. This is a rare case since if VF link goes down, normally
    the VMBus device will also loose external connectivity as well.
    But if the communication is between two VM's on the same host
    the VMBus device will still work.
    
    Reported-by: "Shah, Ashish N" <ashish.n.shah@intel.com>
    Fixes: 0c19556 ("netvsc: transparent VF management")
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
    Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    shemminger authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5d791d3 View commit details
    Browse the repository at this point in the history
  60. net: gre: recompute gre csum for sctp over gre tunnels

    [ Upstream commit 622e32b ]
    
    The GRE tunnel can be used to transport traffic that does not rely on a
    Internet checksum (e.g. SCTP). The issue can be triggered creating a GRE
    or GRETAP tunnel and transmitting SCTP traffic ontop of it where CRC
    offload has been disabled. In order to fix the issue we need to
    recompute the GRE csum in gre_gso_segment() not relying on the inner
    checksum.
    The issue is still present when we have the CRC offload enabled.
    In this case we need to disable the CRC offload if we require GRE
    checksum since otherwise skb_checksum() will report a wrong value.
    
    Fixes: 90017ac ("sctp: Add GSO support")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    LorenzoBianconi authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    786a936 View commit details
    Browse the repository at this point in the history
  61. net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()

    [ Upstream commit bab9693 ]
    
    A dead lock was triggered on thunderx driver:
    
            CPU0                    CPU1
            ----                    ----
       [01] lock(&(&nic->rx_mode_wq_lock)->rlock);
                               [11] lock(&(&mc->mca_lock)->rlock);
                               [12] lock(&(&nic->rx_mode_wq_lock)->rlock);
       [02] <Interrupt> lock(&(&mc->mca_lock)->rlock);
    
    The path for each is:
    
      [01] worker_thread() -> process_one_work() -> nicvf_set_rx_mode_task()
      [02] mld_ifc_timer_expire()
      [11] ipv6_add_dev() -> ipv6_dev_mc_inc() -> igmp6_group_added() ->
      [12] dev_mc_add() -> __dev_set_rx_mode() -> nicvf_set_rx_mode()
    
    To fix it, it needs to disable bh on [1], so that the timer on [2]
    wouldn't be triggered until rx_mode_wq_lock is released. So change
    to use spin_lock_bh() instead of spin_lock().
    
    Thanks to Paolo for helping with this.
    
    v1->v2:
      - post to netdev.
    
    Reported-by: Rafael P. <rparrazo@redhat.com>
    Tested-by: Dean Nelson <dnelson@redhat.com>
    Fixes: 469998c ("net: thunderx: prevent concurrent data re-writing by nicvf_set_rx_mode")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    lxin authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    ba729a9 View commit details
    Browse the repository at this point in the history
  62. openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()

    [ Upstream commit 9aba6c5 ]
    
    ovs_ct_put_key() is potentially copying uninitialized kernel stack memory
    into socket buffers, since the compiler may leave a 3-byte hole at the end
    of `struct ovs_key_ct_tuple_ipv4` and `struct ovs_key_ct_tuple_ipv6`. Fix
    it by initializing `orig` with memset().
    
    Fixes: 9dd7f89 ("openvswitch: Add original direction conntrack tuple to sw_flow_key.")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    peilin-ye authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    daff7f0 View commit details
    Browse the repository at this point in the history
  63. Revert "vxlan: fix tos value before xmit"

    [ Upstream commit a0dced1 ]
    
    This reverts commit 71130f2.
    
    In commit 71130f2 ("vxlan: fix tos value before xmit") we want to
    make sure the tos value are filtered by RT_TOS() based on RFC1349.
    
           0     1     2     3     4     5     6     7
        +-----+-----+-----+-----+-----+-----+-----+-----+
        |   PRECEDENCE    |          TOS          | MBZ |
        +-----+-----+-----+-----+-----+-----+-----+-----+
    
    But RFC1349 has been obsoleted by RFC2474. The new DSCP field defined like
    
           0     1     2     3     4     5     6     7
        +-----+-----+-----+-----+-----+-----+-----+-----+
        |          DS FIELD, DSCP           | ECN FIELD |
        +-----+-----+-----+-----+-----+-----+-----+-----+
    
    So with
    
    IPTOS_TOS_MASK          0x1E
    RT_TOS(tos)		((tos)&IPTOS_TOS_MASK)
    
    the first 3 bits DSCP info will get lost.
    
    To take all the DSCP info in xmit, we should revert the patch and just push
    all tos bits to ip_tunnel_ecn_encap(), which will handling ECN field later.
    
    Fixes: 71130f2 ("vxlan: fix tos value before xmit")
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Acked-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    liuhangbin authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    b8f2d34 View commit details
    Browse the repository at this point in the history
  64. selftests/net: relax cpu affinity requirement in msg_zerocopy test

    [ Upstream commit 16f6458 ]
    
    The msg_zerocopy test pins the sender and receiver threads to separate
    cores to reduce variance between runs.
    
    But it hardcodes the cores and skips core 0, so it fails on machines
    with the selected cores offline, or simply fewer cores.
    
    The test mainly gives code coverage in automated runs. The throughput
    of zerocopy ('-z') and non-zerocopy runs is logged for manual
    inspection.
    
    Continue even when sched_setaffinity fails. Just log to warn anyone
    interpreting the data.
    
    Fixes: 07b65c5 ("test: add msg_zerocopy test")
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Acked-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    wdebruij authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    848e15a View commit details
    Browse the repository at this point in the history
  65. tcp: apply a floor of 1 for RTT samples from TCP timestamps

    [ Upstream commit 730e700 ]
    
    For retransmitted packets, TCP needs to resort to using TCP timestamps
    for computing RTT samples. In the common case where the data and ACK
    fall in the same 1-millisecond interval, TCP senders with millisecond-
    granularity TCP timestamps compute a ca_rtt_us of 0. This ca_rtt_us
    of 0 propagates to rs->rtt_us.
    
    This value of 0 can cause performance problems for congestion control
    modules. For example, in BBR, the zero min_rtt sample can bring the
    min_rtt and BDP estimate down to 0, reduce snd_cwnd and result in a
    low throughput. It would be hard to mitigate this with filtering in
    the congestion control module, because the proper floor to apply would
    depend on the method of RTT sampling (using timestamp options or
    internally-saved transmission timestamps).
    
    This fix applies a floor of 1 for the RTT sample delta from TCP
    timestamps, so that seq_rtt_us, ca_rtt_us, and rs->rtt_us will be at
    least 1 * (USEC_PER_SEC / TCP_TS_HZ).
    
    Note that the receiver RTT computation in tcp_rcv_rtt_measure() and
    min_rtt computation in tcp_update_rtt_min() both already apply a floor
    of 1 timestamp tick, so this commit makes the code more consistent in
    avoiding this edge case of a value of 0.
    
    Signed-off-by: Jianfeng Wang <jfwang@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Kevin Yang <yyd@google.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    jianfenw authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    fb26450 View commit details
    Browse the repository at this point in the history
  66. ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime

    commit 311aa6a upstream.
    
    The IMA_APPRAISE_BOOTPARAM config allows enabling different "ima_appraise="
    modes - log, fix, enforce - at run time, but not when IMA architecture
    specific policies are enabled.  This prevents properly labeling the
    filesystem on systems where secure boot is supported, but not enabled on the
    platform.  Only when secure boot is actually enabled should these IMA
    appraise modes be disabled.
    
    This patch removes the compile time dependency and makes it a runtime
    decision, based on the secure boot state of that platform.
    
    Test results as follows:
    
    -> x86-64 with secure boot enabled
    
    [    0.015637] Kernel command line: <...> ima_policy=appraise_tcb ima_appraise=fix
    [    0.015668] ima: Secure boot enabled: ignoring ima_appraise=fix boot parameter option
    
    -> powerpc with secure boot disabled
    
    [    0.000000] Kernel command line: <...> ima_policy=appraise_tcb ima_appraise=fix
    [    0.000000] Secure boot mode disabled
    
    -> Running the system without secure boot and with both options set:
    
    CONFIG_IMA_APPRAISE_BOOTPARAM=y
    CONFIG_IMA_ARCH_POLICY=y
    
    Audit prompts "missing-hash" but still allow execution and, consequently,
    filesystem labeling:
    
    type=INTEGRITY_DATA msg=audit(07/09/2020 12:30:27.778:1691) : pid=4976
    uid=root auid=root ses=2
    subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 op=appraise_data
    cause=missing-hash comm=bash name=/usr/bin/evmctl dev="dm-0" ino=493150
    res=no
    
    Cc: stable@vger.kernel.org
    Fixes: d958083 ("x86/ima: define arch_get_ima_policy() for x86")
    Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
    Cc: stable@vger.kernel.org # 5.0
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    bmeneg authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    df6aeb5 View commit details
    Browse the repository at this point in the history
  67. nfsd: Fix NFSv4 READ on RDMA when using readv

    commit 4120553 upstream.
    
    svcrdma expects that the payload falls precisely into the xdr_buf
    page vector. This does not seem to be the case for
    nfsd4_encode_readv().
    
    This code is called only when fops->splice_read is missing or when
    RQ_SPLICE_OK is clear, so it's not a noticeable problem in many
    common cases.
    
    Add new transport method: ->xpo_read_payload so that when a READ
    payload does not fit exactly in rq_res's page vector, the XDR
    encoder can inform the RPC transport exactly where that payload is,
    without the payload's XDR pad.
    
    That way, when a Write chunk is present, the transport knows what
    byte range in the Reply message is supposed to be matched with the
    chunk.
    
    Note that the Linux NFS server implementation of NFS/RDMA can
    currently handle only one Write chunk per RPC-over-RDMA message.
    This simplifies the implementation of this fix.
    
    Fixes: b042098 ("nfsd4: allow exotic read compounds")
    Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=198053
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Cc: Timo Rothenpieler <timo@rothenpieler.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    chucklever authored and gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    512570b View commit details
    Browse the repository at this point in the history
  68. Linux 5.4.58

    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    gregkh committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    cad17fe View commit details
    Browse the repository at this point in the history
  69. Merge tag 'v5.4.57' into 5.4-1.0.0-imx

    This is the 5.4.57 stable release
    
    Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
    zandrey committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    145665a View commit details
    Browse the repository at this point in the history
  70. Merge tag 'v5.4.58' into 5.4-1.0.0-imx

    This is the 5.4.58 stable release
    
    Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
    zandrey committed Aug 11, 2020
    Configuration menu
    Copy the full SHA
    5818a5e View commit details
    Browse the repository at this point in the history