1. 08 May, 2020 4 commits
    • Lei Xue's avatar
      cachefiles: Fix race between read_waiter and read_copier involving op->to_do · 7bb0c533
      Lei Xue authored
      There is a potential race in fscache operation enqueuing for reading and
      copying multiple pages from cachefiles to netfs.  The problem can be seen
      easily on a heavy loaded system (for example many processes reading files
      continually on an NFS share covered by fscache triggered this problem within
      a few minutes).
      
      The race is due to cachefiles_read_waiter() adding the op to the monitor
      to_do list and then then drop the object->work_lock spinlock before
      completing fscache_enqueue_operation().  Once the lock is dropped,
      cachefiles_read_copier() grabs the op, completes processing it, and
      makes it through fscache_retrieval_complete() which sets the op->state to
      the final state of FSCACHE_OP_ST_COMPLETE(4).  When cachefiles_read_waiter()
      finally gets through the remainder of fscache_enqueue_operation()
      it sees the invalid state, and hits the ASSERTCMP and the following
      oops is seen:
      [ 2259.612361] FS-Cache:
      [ 2259.614785] FS-Cache: Assertion failed
      [ 2259.618639] FS-Cache: 4 == 5 is false
      [ 2259.622456] ------------[ cut here ]------------
      [ 2259.627190] kernel BUG at fs/fscache/operation.c:70!
      ...
      [ 2259.791675] RIP: 0010:[<ffffffffc061b4cf>]  [<ffffffffc061b4cf>] fscache_enqueue_operation+0xff/0x170 [fscache]
      [ 2259.802059] RSP: 0000:ffffa0263d543be0  EFLAGS: 00010046
      [ 2259.807521] RAX: 0000000000000019 RBX: ffffa01a4d390480 RCX: 0000000000000006
      [ 2259.814847] RDX: 0000000000000000 RSI: 0000000000000046 RDI: ffffa0263d553890
      [ 2259.822176] RBP: ffffa0263d543be8 R08: 0000000000000000 R09: ffffa0263c2d8708
      [ 2259.829502] R10: 0000000000001e7f R11: 0000000000000000 R12: ffffa01a4d390480
      [ 2259.844483] R13: ffff9fa9546c5920 R14: ffffa0263d543c80 R15: ffffa0293ff9bf10
      [ 2259.859554] FS:  00007f4b6efbd700(0000) GS:ffffa0263d540000(0000) knlGS:0000000000000000
      [ 2259.875571] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 2259.889117] CR2: 00007f49e1624ff0 CR3: 0000012b38b38000 CR4: 00000000007607e0
      [ 2259.904015] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [ 2259.918764] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [ 2259.933449] PKRU: 55555554
      [ 2259.943654] Call Trace:
      [ 2259.953592]  <IRQ>
      [ 2259.955577]  [<ffffffffc03a7c12>] cachefiles_read_waiter+0x92/0xf0 [cachefiles]
      [ 2259.978039]  [<ffffffffa34d3942>] __wake_up_common+0x82/0x120
      [ 2259.991392]  [<ffffffffa34d3a63>] __wake_up_common_lock+0x83/0xc0
      [ 2260.004930]  [<ffffffffa34d3510>] ? task_rq_unlock+0x20/0x20
      [ 2260.017863]  [<ffffffffa34d3ab3>] __wake_up+0x13/0x20
      [ 2260.030230]  [<ffffffffa34c72a0>] __wake_up_bit+0x50/0x70
      [ 2260.042535]  [<ffffffffa35bdcdb>] unlock_page+0x2b/0x30
      [ 2260.054495]  [<ffffffffa35bdd09>] page_endio+0x29/0x90
      [ 2260.066184]  [<ffffffffa368fc81>] mpage_end_io+0x51/0x80
      
      CPU1
      cachefiles_read_waiter()
       20 static int cachefiles_read_waiter(wait_queue_entry_t *wait, unsigned mode,
       21                                   int sync, void *_key)
       22 {
      ...
       61         spin_lock(&object->work_lock);
       62         list_add_tail(&monitor->op_link, &op->to_do);
       63         spin_unlock(&object->work_lock);
      <begin race window>
       64
       65         fscache_enqueue_retrieval(op);
      182 static inline void fscache_enqueue_retrieval(struct fscache_retrieval *op)
      183 {
      184         fscache_enqueue_operation(&op->op);
      185 }
       58 void fscache_enqueue_operation(struct fscache_operation *op)
       59 {
       60         struct fscache_cookie *cookie = op->object->cookie;
       61
       62         _enter("{OBJ%x OP%x,%u}",
       63                op->object->debug_id, op->debug_id, atomic_read(&op->usage));
       64
       65         ASSERT(list_empty(&op->pend_link));
       66         ASSERT(op->processor != NULL);
       67         ASSERT(fscache_object_is_available(op->object));
       68         ASSERTCMP(atomic_read(&op->usage), >, 0);
      <end race window>
      
      CPU2
      cachefiles_read_copier()
      168         while (!list_empty(&op->to_do)) {
      ...
      202                 fscache_end_io(op, monitor->netfs_page, error);
      203                 put_page(monitor->netfs_page);
      204                 fscache_retrieval_complete(op, 1);
      
      CPU1
       58 void fscache_enqueue_operation(struct fscache_operation *op)
       59 {
      ...
       69         ASSERTIFCMP(op->state != FSCACHE_OP_ST_IN_PROGRESS,
       70                     op->state, ==,  FSCACHE_OP_ST_CANCELLED);
      Signed-off-by: default avatarLei Xue <carmark.dlut@gmail.com>
      Signed-off-by: default avatarDave Wysochanski <dwysocha@redhat.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      7bb0c533
    • Dave Wysochanski's avatar
      NFSv4: Fix fscache cookie aux_data to ensure change_attr is included · 50eaa652
      Dave Wysochanski authored
      Commit 402cb8dd ("fscache: Attach the index key and aux data to
      the cookie") added the aux_data and aux_data_len to parameters to
      fscache_acquire_cookie(), and updated the callers in the NFS client.
      In the process it modified the aux_data to include the change_attr,
      but missed adding change_attr to a couple places where aux_data was
      used.  Specifically, when opening a file and the change_attr is not
      added, the following attempt to lookup an object will fail inside
      cachefiles_check_object_xattr() = -116 due to
      nfs_fscache_inode_check_aux() failing memcmp on auxdata and returning
      FSCACHE_CHECKAUX_OBSOLETE.
      
      Fix this by adding nfs_fscache_update_auxdata() to set the auxdata
      from all relevant fields in the inode, including the change_attr.
      
      Fixes: 402cb8dd ("fscache: Attach the index key and aux data to the cookie")
      Signed-off-by: default avatarDave Wysochanski <dwysocha@redhat.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      50eaa652
    • Dave Wysochanski's avatar
      NFS: Fix fscache super_cookie allocation · 15751612
      Dave Wysochanski authored
      Commit f2aedb71 ("NFS: Add fs_context support.") reworked
      NFS mount code paths for fs_context support which included
      super_block initialization.  In the process there was an extra
      return left in the code and so we never call
      nfs_fscache_get_super_cookie even if 'fsc' is given on as mount
      option.  In addition, there is an extra check inside
      nfs_fscache_get_super_cookie for the NFS_OPTION_FSCACHE which
      is unnecessary since the only caller nfs_get_cache_cookie
      checks this flag.
      
      Fixes: f2aedb71 ("NFS: Add fs_context support.")
      Signed-off-by: default avatarDave Wysochanski <dwysocha@redhat.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      15751612
    • Dave Wysochanski's avatar
      NFS: Fix fscache super_cookie index_key from changing after umount · d9bfced1
      Dave Wysochanski authored
      Commit 402cb8dd ("fscache: Attach the index key and aux data to
      the cookie") added the index_key and index_key_len parameters to
      fscache_acquire_cookie(), and updated the callers in the NFS client.
      One of the callers was inside nfs_fscache_get_super_cookie()
      and was changed to use the full struct nfs_fscache_key as the
      index_key.  However, a couple members of this structure contain
      pointers and thus will change each time the same NFS share is
      remounted.  Since index_key is used for fscache_cookie->key_hash
      and this subsequently is used to compare cookies, the effectiveness
      of fscache with NFS is reduced to the point at which a umount
      occurs.   Any subsequent remount of the same share will cause a
      unique NFS super_block index_key and key_hash to be generated for
      the same data, rendering any prior fscache data unable to be
      found.  A simple reproducer demonstrates the problem.
      
      1. Mount share with 'fsc', create a file, drop page cache
      systemctl start cachefilesd
      mount -o vers=3,fsc 127.0.0.1:/export /mnt
      dd if=/dev/zero of=/mnt/file1.bin bs=4096 count=1
      echo 3 > /proc/sys/vm/drop_caches
      
      2. Read file into page cache and fscache, then unmount
      dd if=/mnt/file1.bin of=/dev/null bs=4096 count=1
      umount /mnt
      
      3. Remount and re-read which should come from fscache
      mount -o vers=3,fsc 127.0.0.1:/export /mnt
      echo 3 > /proc/sys/vm/drop_caches
      dd if=/mnt/file1.bin of=/dev/null bs=4096 count=1
      
      4. Check for READ ops in mountstats - there should be none
      grep READ: /proc/self/mountstats
      
      Looking at the history and the removed function, nfs_super_get_key(),
      we should only use nfs_fscache_key.key plus any uniquifier, for
      the fscache index_key.
      
      Fixes: 402cb8dd ("fscache: Attach the index key and aux data to the cookie")
      Signed-off-by: default avatarDave Wysochanski <dwysocha@redhat.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      d9bfced1
  2. 04 May, 2020 1 commit
    • David Howells's avatar
      cachefiles: Fix corruption of the return value in cachefiles_read_or_alloc_pages() · c5f9d9db
      David Howells authored
      The patch which changed cachefiles from calling ->bmap() to using the
      bmap() wrapper overwrote the running return value with the result of
      calling bmap().  This causes an assertion failure elsewhere in the code.
      
      Fix this by using ret2 rather than ret to hold the return value.
      
      The oops looks like:
      
      	kernel BUG at fs/nfs/fscache.c:468!
      	...
      	RIP: 0010:__nfs_readpages_from_fscache+0x18b/0x190 [nfs]
      	...
      	Call Trace:
      	 nfs_readpages+0xbf/0x1c0 [nfs]
      	 ? __alloc_pages_nodemask+0x16c/0x320
      	 read_pages+0x67/0x1a0
      	 __do_page_cache_readahead+0x1cf/0x1f0
      	 ondemand_readahead+0x172/0x2b0
      	 page_cache_async_readahead+0xaa/0xe0
      	 generic_file_buffered_read+0x852/0xd50
      	 ? mem_cgroup_commit_charge+0x6e/0x140
      	 ? nfs4_have_delegation+0x19/0x30 [nfsv4]
      	 generic_file_read_iter+0x100/0x140
      	 ? nfs_revalidate_mapping+0x176/0x2b0 [nfs]
      	 nfs_file_read+0x6d/0xc0 [nfs]
      	 new_sync_read+0x11a/0x1c0
      	 __vfs_read+0x29/0x40
      	 vfs_read+0x8e/0x140
      	 ksys_read+0x61/0xd0
      	 __x64_sys_read+0x1a/0x20
      	 do_syscall_64+0x60/0x1e0
      	 entry_SYSCALL_64_after_hwframe+0x44/0xa9
      	RIP: 0033:0x7f5d148267e0
      
      Fixes: 10d83e11 ("cachefiles: drop direct usage of ->bmap method.")
      Reported-by: default avatarDavid Wysochanski <dwysocha@redhat.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarDavid Wysochanski <dwysocha@redhat.com>
      cc: Carlos Maiolino <cmaiolino@redhat.com>
      c5f9d9db
  3. 26 Apr, 2020 11 commits
    • Linus Torvalds's avatar
      Linux 5.7-rc3 · 6a8b55ed
      Linus Torvalds authored
      6a8b55ed
    • Linus Torvalds's avatar
      Merge tag '5.7-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · d4fb4bfb
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Five cifs/smb3 fixes:two for DFS reconnect failover, one lease fix for
        stable and the others to fix a missing spinlock during reconnect"
      
      * tag '5.7-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix uninitialised lease_key in open_shroot()
        cifs: ensure correct super block for DFS reconnect
        cifs: do not share tcons with DFS
        cifs: minor update to comments around the cifs_tcp_ses_lock mutex
        cifs: protect updating server->dstaddr with a spinlock
      d4fb4bfb
    • Linus Torvalds's avatar
      Merge tag 'usb-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e9a61afb
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a number of USB driver fixes for 5.7-rc3.
      
        Nothing huge, just the usual collection of:
      
         - xhci fixes
      
         - gadget driver fixes
      
         - syzkaller fuzzing fixes
      
         - new device ids and DT bindings
      
         - new quirks added for broken devices
      
        A few of the gadget driver fixes show up twice here as they were
        applied to my branch, and also by Felipe to his branch which I then
        pulled in as we got out of sync a bit.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (33 commits)
        USB: sisusbvga: Change port variable from signed to unsigned
        usb-storage: Add unusual_devs entry for JMicron JMS566
        USB: hub: Revert commit bd0e6c96 ("usb: hub: try old enumeration scheme first for high speed devices")
        USB: hub: Fix handling of connect changes during sleep
        usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an invalid pointer
        xhci: Don't clear hub TT buffer on ep0 protocol stall
        xhci: prevent bus suspend if a roothub port detected a over-current condition
        xhci: Fix handling halted endpoint even if endpoint ring appears empty
        usb: raw-gadget: Fix copy_to/from_user() checks
        usb: raw-gadget: fix raw_event_queue_fetch locking
        usb: gadget: udc: atmel: Fix vbus disconnect handling
        usb: dwc3: gadget: Fix request completion check
        USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
        phy: tegra: Select USB_COMMON for usb_get_maximum_speed()
        usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change
        usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
        cdc-acm: introduce a cool down
        cdc-acm: close race betrween suspend() and acm_softint
        UAS: fix deadlock in error handling and PM flushing work
        UAS: no use logging any details in case of ENODEV
        ...
      e9a61afb
    • Linus Torvalds's avatar
      Merge tag 'tty-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c5f33785
      Linus Torvalds authored
      Pull tty/serial fixes from Greg KH:
       "Here are some tty and serial driver fixes for 5.7-rc3.
      
        The "largest" in here are a number of reverts for previous changes to
        the uartps serial driver that turned out to not be a good idea at all.
      
        The others are just small fixes found by people and tools. Included in
        here is a much-reported symbol export needed by previous changes that
        happened in 5.7-rc1. All of these have been in linux-next for a while
        with no reported issues"
      
      * tag 'tty-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: hvc: fix buffer overflow during hvc_alloc().
        tty: rocket, avoid OOB access
        tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart
        vt: don't hardcode the mem allocation upper bound
        tty: serial: owl: add "much needed" clk_prepare_enable()
        vt: don't use kmalloc() for the unicode screen buffer
        tty/sysrq: Export sysrq_mask(), sysrq_toggle_support()
        serial: sh-sci: Make sure status register SCxSR is read in correct sequence
        serial: sunhv: Initialize lock for non-registered console
        Revert "serial: uartps: Register own uart console and driver structures"
        Revert "serial: uartps: Move Port ID to device data structure"
        Revert "serial: uartps: Change uart ID port allocation"
        Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES"
        Revert "serial: uartps: Fix error path when alloc failed"
        Revert "serial: uartps: Use the same dynamic major number for all ports"
        Revert "serial: uartps: Fix uartps_major handling"
      c5f33785
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · f6da8bd1
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are 4 small misc driver fixes for 5.7-rc3:
      
         - mei driver fix
      
         - interconnect driver fix
      
         - two fpga driver fixes
      
        All have been in linux-next with no reported issues"
      
      * tag 'char-misc-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        interconnect: qcom: Fix uninitialized tcs_cmd::wait
        mei: me: fix irq number stored in hw struct
        fpga: dfl: pci: fix return value of cci_pci_sriov_configure
        fpga: zynq: Remove clk_get error message for probe defer
      f6da8bd1
    • Linus Torvalds's avatar
      Merge tag 'staging-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · edf17b28
      Linus Torvalds authored
      Pull staging/IIO driver fixes from Greg KH:
       "Here are some small staging and IIO driver fixes for 5.7-rc3
      
        Lots of tiny things for reported issues in staging and IIO drivers,
        including a counter driver fix as well (the iio drivers seem to be
        tied to those). Full details of the fixes are in the shortlog.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (27 commits)
        staging: vt6656: Fix calling conditions of vnt_set_bss_mode
        staging: comedi: Fix comedi_device refcnt leak in comedi_open
        staging: vt6656: Fix pairwise key entry save.
        staging: vt6656: Fix drivers TBTT timing counter.
        staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
        MAINTAINERS: remove Stefan Popa's email
        iio: adc: ad7192: fix null pointer de-reference crash during probe
        iio: core: remove extra semi-colon from devm_iio_device_register() macro
        iio: adc: ti-ads8344: properly byte swap value
        iio: imu: inv_mpu6050: fix suspend/resume with runtime power
        iio: st_sensors: rely on odr mask to know if odr can be set
        iio: xilinx-xadc: Make sure not exceed maximum samplerate
        iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
        iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
        iio: xilinx-xadc: Fix ADC-B powerdown
        iio: dac: ad5770r: fix off-by-one check on maximum number of channels
        iio: imu: st_lsm6dsx: flush hw FIFO before resetting the device
        iio: core: Fix handling of 'dB'
        dt-bindings: iio: adc: stm32-adc: fix id relative path
        counter: 104-quad-8: Add lock guards - generic interface
        ...
      edf17b28
    • Linus Torvalds's avatar
      Merge tag 'driver-core-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · a8a0e2a9
      Linus Torvalds authored
      Pull driver core fixes from Greg KH:
       "Here are some small firmware/driver core/debugfs fixes for 5.7-rc3.
      
        The debugfs change is now possible as now the last users of
        debugfs_create_u32() have been fixed up in the different trees that
        got merged into 5.7-rc1, and I don't want it creeping back in.
      
        The firmware changes did cause a regression in linux-next, so the
        final patch here reverts part of that, re-exporting the symbol to
        resolve that issue. All of these patches, with the exception of the
        final one, have been in linux-next with only that one reported issue"
      
      * tag 'driver-core-5.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        firmware_loader: revert removal of the fw_fallback_config export
        debugfs: remove return value of debugfs_create_u32()
        firmware_loader: remove unused exports
        firmware: imx: fix compile-testing
      a8a0e2a9
    • Linus Torvalds's avatar
      Merge tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 749f0461
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Add a few notrace annotations to avoid potential crashes when
         switching ftrace tracers.
      
       - Avoid setting affinity for floating irqs in pci code.
      
       - Fix build issue found by kbuild test robot.
      
      * tag 's390-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/protvirt: fix compilation issue
        s390/pci: do not set affinity for floating irqs
        s390/ftrace: fix potential crashes when switching tracers
      749f0461
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 670bcd79
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - One important fix for a bug in the way we find the cache-line size
         from the device tree, which was leading to the wrong size being
         reported to userspace on some platforms.
      
       - A fix for 8xx STRICT_KERNEL_RWX which was leaving TLB entries around
         leading to a window at boot when the strict mapping wasn't enforced.
      
       - A fix to enable our KUAP (kernel user access prevention) debugging on
         PPC32.
      
       - A build fix for clang in lib/mpi.
      
      Thanks to: Chris Packham, Christophe Leroy, Nathan Chancellor, Qian Cai.
      
      * tag 'powerpc-5.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        lib/mpi: Fix building for powerpc with clang
        powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
        powerpc/8xx: Fix STRICT_KERNEL_RWX startup test failure
        powerpc/setup_64: Set cache-line-size based on cache-block-size
      670bcd79
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 58792882
      Linus Torvalds authored
      Pull more Devicetree fixes from Rob Herring:
       "A couple of schema and kbuild fixes"
      
      * tag 'devicetree-fixes-for-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: phy: qcom-qusb2: Fix defaults
        dt-bindings: Fix erroneous 'additionalProperties'
        dt-bindings: Fix command line length limit calling dt-mk-schema
        dt-bindings: Re-enable core schemas for dtbs_check
      58792882
    • Luis Chamberlain's avatar
      firmware_loader: revert removal of the fw_fallback_config export · 5a357703
      Luis Chamberlain authored
      Christoph's patch removed two unsused exported symbols, however, one
      symbol is used by the firmware_loader itself.  If CONFIG_FW_LOADER=m so
      the firmware_loader is modular but CONFIG_FW_LOADER_USER_HELPER=y we fail
      the build at mostpost.
      
      ERROR: modpost: "fw_fallback_config" [drivers/base/firmware_loader/firmware_class.ko] undefined!
      
      This happens because the variable fw_fallback_config is built into the
      kernel if CONFIG_FW_LOADER_USER_HELPER=y always, so we need to grant
      access to the firmware loader module by exporting it.
      
      Revert only one hunk from his patch.
      
      Fixes: 73960473 ("firmware_loader: remove unused exports")
      Reported-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarLuis Chamberlain <mcgrof@kernel.org>
      Link: https://lore.kernel.org/r/20200424184916.22843-1-mcgrof@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5a357703
  4. 25 Apr, 2020 19 commits
  5. 24 Apr, 2020 5 commits
    • Doug Berger's avatar
      net: systemport: suppress warnings on failed Rx SKB allocations · 3554e54a
      Doug Berger authored
      The driver is designed to drop Rx packets and reclaim the buffers
      when an allocation fails, and the network interface needs to safely
      handle this packet loss. Therefore, an allocation failure of Rx
      SKBs is relatively benign.
      
      However, the output of the warning message occurs with a high
      scheduling priority that can cause excessive jitter/latency for
      other high priority processing.
      
      This commit suppresses the warning messages to prevent scheduling
      problems while retaining the failure count in the statistics of
      the network interface.
      Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3554e54a
    • Doug Berger's avatar
      net: bcmgenet: suppress warnings on failed Rx SKB allocations · ecaeceb8
      Doug Berger authored
      The driver is designed to drop Rx packets and reclaim the buffers
      when an allocation fails, and the network interface needs to safely
      handle this packet loss. Therefore, an allocation failure of Rx
      SKBs is relatively benign.
      
      However, the output of the warning message occurs with a high
      scheduling priority that can cause excessive jitter/latency for
      other high priority processing.
      
      This commit suppresses the warning messages to prevent scheduling
      problems while retaining the failure count in the statistics of
      the network interface.
      Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ecaeceb8
    • Taehee Yoo's avatar
      macsec: avoid to set wrong mtu · 7f327080
      Taehee Yoo authored
      When a macsec interface is created, the mtu is calculated with the lower
      interface's mtu value.
      If the mtu of lower interface is lower than the length, which is needed
      by macsec interface, macsec's mtu value will be overflowed.
      So, if the lower interface's mtu is too low, macsec interface's mtu
      should be set to 0.
      
      Test commands:
          ip link add dummy0 mtu 10 type dummy
          ip link add macsec0 link dummy0 type macsec
          ip link show macsec0
      
      Before:
          11: macsec0@dummy0: <BROADCAST,MULTICAST,M-DOWN> mtu 4294967274
      After:
          11: macsec0@dummy0: <BROADCAST,MULTICAST,M-DOWN> mtu 0
      
      Fixes: c09440f7 ("macsec: introduce IEEE 802.1AE driver")
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7f327080
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 5ef58e29
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two minor fixes: one to update a Kconfig reference and the other to
        fix a resource leak on an error path in sg"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: Update referenced link to cdrtools
        scsi: sg: add sg_remove_request in sg_write
      5ef58e29
    • Douglas Anderson's avatar
      dt-bindings: phy: qcom-qusb2: Fix defaults · 4bc77b2d
      Douglas Anderson authored
      The defaults listed in the bindings don't match what the code is
      actually doing.  Presumably existing users care more about keeping
      existing behavior the same, so change the bindings to match the code
      in Linux.
      
      The "qcom,preemphasis-level" default has been wrong for quite a long
      time (May 2018).  The other two were recently added.
      
      As some evidence that these values are wrong, this is from the Linux
      driver:
      - qcom,preemphasis-level: sets "PORT_TUNE1", lower 2 bits.  Driver
        programs PORT_TUNE1 to 0x30 by default and (0x30 & 0x3) = 0.
      - qcom,bias-ctrl-value: sets "PLL_BIAS_CONTROL_2", lower 6 bits.
        Driver programs PLL_BIAS_CONTROL_2 to 0x20 by default and (0x20 &
        0x3f) = 0x20 = 32.
      - qcom,hsdisc-trim-value: sets "PORT_TUNE2", lower 2 bits.  Driver
        programs PORT_TUNE2 to 0x29 by default and (0x29 & 0x3) = 1.
      
      Fixes: 1e6f134e ("dt-bindings: phy: qcom-qusb2: Add support for overriding Phy tuning parameters")
      Fixes: a8b70ccf ("dt-bindings: phy-qcom-usb2: Add support to override tuning values")
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Reviewed-by: default avatarMatthias Kaehlcke <mka@chromium.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      4bc77b2d