28 Jul, 2020

8 commits

  • Use Read-Write locks for reading/writing segment in blockmap.
    This should allow parallel reads when there are
    multiple reads within same segment.

    A small optimization in pending_reads_read(). Since
    incfs_collect_pending_reads() already iterate to
    populate buffer, new_max_sn - highest serial number
    among all the pending read buffer can be done in the same
    loop instead of looping again in pending_reads_read().

    Bug: 161566104
    Test: kernel selftest - incfs_test and incfs_perf

    Signed-off-by: Akilesh Kailash
    Change-Id: Id00376b0e4cb8c0c0bc8264cdddd6f38c4aa85f0

    Akilesh Kailash
     
  • - Add the hook to apply vendor's performance tune for owner
    of rwsem.

    - Add the hook for the waiter list of rwsem to allow
    vendor perform waiting queue enhancement

    - ANDROID_VENDOR_DATA added to rw_semaphore

    Bug: 161400830

    Signed-off-by: JianMin Liu
    Change-Id: I007a5e26f3db2adaeaf4e5ccea414ce7abfa83b8

    JianMin Liu
     
  • - To apply vendor's performance tune for blocked binder transaction,
    add the hook on the begin/end of transaction.

    - ANDROID_VENDOR_DATA added to binder_transaction.

    Bug: 161400830

    Signed-off-by: JianMin Liu
    Change-Id: If60870623ce2669200238172737dd8455ac34b02

    JianMin Liu
     
  • The new kernel release format is: w.x.y-zz-k where,
    w.x.y are the current values
    zzz is the Android Release value
    k is the KMI Generation number

    This allows one to identify the kernel module interface version using
    `uname -r`. The KMI Generation number is used to identify any KMI
    changes that occur after the KMI freeze. This should only occur in an
    unlikely event that a security patch requires a KMI update.

    Here is a local example:
    5.4.51-android12-0-00153-ga972f59040e4-dirty

    Signed-off-by: Will McVicker
    Bug: 159842160
    Change-Id: I33f40e424ca967b85d810cdb12c6a2c58e4197b7
    [willmcvicker: squash with commit 0c0d417747d8e289b2808c3fca32c845f82fd5e5]

    Will McVicker
     
  • Make some scheduler APIs exports to allow vendor
    modules to use them. It is necessary for the modules
    to migrate tasks as they want.

    activate_task:
    To make an inactive and migrated task runnable.

    deactivate_task:
    To make an active task migratible.

    check_preempt_curr:
    To check whether a migrated task needs to preempt
    current task and if so, to do it.

    set_task_cpu:
    To set a cpu for a migratible task and force
    the task to be migrated.

    stop_one_cpu_nowait:
    To move a queued task, stopper should be used.

    Bug: 155241766

    Signed-off-by: Choonghoon Park
    Change-Id: Ied940640525101efbbcef6eca0c39f15eb580007

    Choonghoon Park
     
  • Bug: 162260581
    Test: builds with defconfig
    Signed-off-by: Paul Lawrence
    Change-Id: I743fa7a989f5a464f755a22b6a03299fb462e74c

    Paul Lawrence
     
  • Bug: 162255528
    Test: incfs_test passes with fewer annoying debug messages
    Signed-off-by: Paul Lawrence
    Change-Id: Ib347d3d5dd8a3c5545a0760fc674147211aa8c9d

    Paul Lawrence
     
  • Fix of bug 161565969 added EBADF when backing path doesn't
    exist. However, .log and .pending reads doesn't have
    backing path causing incfs_test to fail.

    Bug: 162243475
    Test: incfs_test on QEMU passes

    Signed-off-by: Akilesh Kailash
    Change-Id: Iba303bbc42b431fe4a4fbacb40584faaff4b14b7

    Akilesh Kailash
     

27 Jul, 2020

9 commits

  • Linux 5.8-rc7

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: Ia667c4883cc0479b5dfc2bc3825086610896a2ce

    Greg Kroah-Hartman
     
  • Linus Torvalds
     
  • …/masahiroy/linux-kbuild into master

    Pull Kbuild fixes from Masahiro Yamada:

    - do not use non-portable strsep() in a host program

    - fix single target builds for external modules

    - change Clang's --prefix option to make it work for the latest Clang

    * tag 'kbuild-fixes-v5.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
    kbuild: fix single target builds for external modules
    modpost: remove use of non-standard strsep() in HOSTCC code

    Linus Torvalds
     
  • …ler/parisc-linux into master

    Pull parisc fixes from Helge Deller:
    "Two fixes:

    - Add the cmpxchg() function for pointers to u8 values. This fixes a
    kernel linking error when building the tusb1210 driver (from Liam
    Beguin).

    - Add a define for atomic64_set_release() to fix CPU soft lockups
    which happen because of missing unlocks while processing bit
    operations (from John David Anglin)"

    * 'parisc-5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Add atomic64_set_release() define to avoid CPU soft lockups
    parisc: add support for cmpxchg on u8 pointers

    Linus Torvalds
     
  • …regkh/char-misc into master

    Pull char/misc driver fixes from Greg KH:
    "Here are a few small driver fixes for 5.8-rc7

    They include:

    - habanalabs fixes

    - tiny fpga driver fixes

    - /dev/mem fixup from previous changes

    - interconnect driver fixes

    - binder fix

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    interconnect: msm8916: Fix buswidth of pcnoc_s nodes
    interconnect: Do not skip aggregation for disabled paths
    /dev/mem: Add missing memory barriers for devmem_inode
    binder: Don't use mmput() from shrinker function.
    habanalabs: prevent possible out-of-bounds array access
    fpga: dfl: fix bug in port reset handshake
    fpga: dfl: pci: reduce the scope of variable 'ret'
    habanalabs: set 4s timeout for message to device CPU
    habanalabs: set clock gating per engine
    habanalabs: block WREG_BULK packet on PDMA

    Linus Torvalds
     
  • …/gregkh/driver-core into master

    Pull driver core fix from Greg KH:
    "A single driver core fix for 5.8-rc7. It resolves a problem found in
    the previous fix for this code made in 5.8-rc6. Hopefully this is all
    now cleared up, as this seems to be the last of the reported issues in
    this area, and was tested on the problem hardware.

    This patch has been in linux-next with no reported problems"

    * tag 'driver-core-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    device property: Avoid NULL pointer dereference in device_get_next_child_node()

    Linus Torvalds
     
  • …gkh/staging into master

    Pull staging driver fixes from Greg KH:
    "Five small staging driver fixes for 5.8-rc7 to resolve some reported
    problems:

    - four comedi driver fixes for problems found with them

    - a syzbot-found fix for the wlang-ng driver that resolves a much
    reported problem.

    All of these have been in linux-next with no reported issues"

    * tag 'staging-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: wlan-ng: properly check endpoint types
    staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support

    Linus Torvalds
     
  • Pull tty/serial/fbcon fixes from Greg KH:
    "Here are some small tty and serial and fbcon fixes for 5.8-rc7 to
    resolve some reported issues.

    The fbcon fix is in here as it was simpler to take it this way (and it
    was acked by the maintainer) as it was related to the vt console fix
    as well, both of which resolve syzbot-found issues in the console
    handling code.

    The other serial driver fixes are for small issues reported in the -rc
    releases.

    All of these have been in linux-next with no reported issues"

    * tag 'tty-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
    fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
    serial: 8250_mtk: Fix high-speed baud rates clamping
    serial: 8250: fix null-ptr-deref in serial8250_start_tx()
    serial: tegra: drop bogus NULL tty-port checks
    serial: tegra: fix CREAD handling for PIO
    tty: xilinx_uartps: Really fix id assignment
    vt: Reject zero-sized screen buffer size.

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Three small USB XHCI driver fixes for 5.8-rc7.

    They all resolve some minor issues that have been reported on some
    different platforms.

    All of these have been in linux-next with no reported issues"

    * tag 'usb-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: tegra: Fix allocation for the FPCI context
    usb: xhci: Fix ASM2142/ASM3142 DMA addressing
    usb: xhci-mtk: fix the failure of bandwidth allocation

    Linus Torvalds
     

26 Jul, 2020

11 commits

  • Pull SCSI fix from James Bottomley:
    "Small core patch to fix a corner case bug: we forgot to run the queues
    to handle starvation in the error exit from the scsi_queue_rq routine,
    which can lead to hangs on error conditions"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: core: Run queue in case of I/O resource contention failure

    Linus Torvalds
     
  • Otherwise we cannot enable VIRTIO_FS downstream.

    Bug: 161843089
    Change-Id: I317b8c425ab96a1bd484b85b41ce3cb036327117
    Signed-off-by: Alistair Delva

    Alistair Delva
     
  • …/pub/scm/linux/kernel/git/riscv/linux into master") into android-mainline

    Steps along the way to 5.8-rc7.

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I5a83926360d70527d818b76fcde967c1e42bc156

    Greg Kroah-Hartman
     
  • …/git/riscv/linux into master

    Pull RISC-V fixes from Palmer Dabbelt:
    "A few more fixes this week:

    - A fix to avoid using SBI calls during kasan initialization, as the
    SBI calls themselves have not been probed yet.

    - Three fixes related to systems with multiple memory regions"

    * tag 'riscv-for-linus-5.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    riscv: Parse all memory blocks to remove unusable memory
    RISC-V: Do not rely on initrd_start/end computed during early dt parsing
    RISC-V: Set maximum number of mapped pages correctly
    riscv: kasan: use local_tlb_flush_all() to avoid uninitialized __sbi_rfence

    Linus Torvalds
     
  • …it/tip/tip into master

    Pull x86 fixes from Ingo Molnar:
    "Misc fixes:

    - Fix a section end page alignment assumption that was causing
    crashes

    - Fix ORC unwinding on freshly forked tasks which haven't executed
    yet and which have empty user task stacks

    - Fix the debug.exception-trace=1 sysctl dumping of user stacks,
    which was broken by recent maccess changes"

    * tag 'x86-urgent-2020-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/dumpstack: Dump user space code correctly again
    x86/stacktrace: Fix reliable check for empty user task stacks
    x86/unwind/orc: Fix ORC for newly forked tasks
    x86, vmlinux.lds: Page-align end of ..page_aligned sections

    Linus Torvalds
     
  • …git/tip/tip into master

    Pull uprobe fix from Ingo Molnar:
    "Fix an interaction/regression between uprobes based shared library
    tracing & GDB"

    * tag 'perf-urgent-2020-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression

    Linus Torvalds
     
  • …l/git/tip/tip into master

    Pull timer fix from Ingo Molnar:
    "Fix a suspend/resume regression (crash) on TI AM3/AM4 SoC's"

    * tag 'timers-urgent-2020-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource/drivers/timer-ti-dm: Fix suspend and resume for am3 and am4

    Linus Torvalds
     
  • …/git/tip/tip into master

    Pull scheduler fixes from Ingo Molnar:
    "Fix a race introduced by the recent loadavg race fix, plus add a debug
    check for a hard to debug case of bogus wakeup function flags"

    * tag 'sched-urgent-2020-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Warn if garbage is passed to default_wake_function()
    sched: Fix race against ptrace_freeze_trace()

    Linus Torvalds
     
  • …it/tip/tip into master

    Pull EFI fixes from Ingo Molnar:
    "Various EFI fixes:

    - Fix the layering violation in the use of the EFI runtime services
    availability mask in users of the 'efivars' abstraction

    - Revert build fix for GCC v4.8 which is no longer supported

    - Clean up some x86 EFI stub details, some of which are borderline
    bugs that copy around garbage into padding fields - let's fix these
    out of caution.

    - Fix build issues while working on RISC-V support

    - Avoid --whole-archive when linking the stub on arm64"

    * tag 'efi-urgent-2020-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Revert "efi/x86: Fix build with gcc 4"
    efi/efivars: Expose RT service availability via efivars abstraction
    efi/libstub: Move the function prototypes to header file
    efi/libstub: Fix gcc error around __umoddi3 for 32 bit builds
    efi/libstub/arm64: link stub lib.a conditionally
    efi/x86: Only copy upto the end of setup_header
    efi/x86: Remove unused variables

    Linus Torvalds
     
  • Pull cifs fix from Steve French:
    "A fix for a recently discovered regression in rename to older servers
    caused by a recent patch"

    * tag '5.8-rc6-cifs-fix' of git://git.samba.org/sfrench/cifs-2.6:
    Revert "cifs: Fix the target file was deleted when rename failed."

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix RCU locaking in iwlwifi, from Johannes Berg.

    2) mt76 can access uninitialized NAPI struct, from Felix Fietkau.

    3) Fix race in updating pause settings in bnxt_en, from Vasundhara
    Volam.

    4) Propagate error return properly during unbind failures in ax88172a,
    from George Kennedy.

    5) Fix memleak in adf7242_probe, from Liu Jian.

    6) smc_drv_probe() can leak, from Wang Hai.

    7) Don't muck with the carrier state if register_netdevice() fails in
    the bonding driver, from Taehee Yoo.

    8) Fix memleak in dpaa_eth_probe, from Liu Jian.

    9) Need to check skb_put_padto() return value in hsr_fill_tag(), from
    Murali Karicheri.

    10) Don't lose ionic RSS hash settings across FW update, from Shannon
    Nelson.

    11) Fix clobbered SKB control block in act_ct, from Wen Xu.

    12) Missing newlink in "tx_timeout" sysfs output, from Xiongfeng Wang.

    13) IS_UDPLITE cleanup a long time ago, incorrectly handled
    transformations involving UDPLITE_RECV_CC. From Miaohe Lin.

    14) Unbalanced locking in netdevsim, from Taehee Yoo.

    15) Suppress false-positive error messages in qed driver, from Alexander
    Lobakin.

    16) Out of bounds read in ax25_connect and ax25_sendmsg, from Peilin Ye.

    17) Missing SKB release in cxgb4's uld_send(), from Navid Emamdoost.

    18) Uninitialized value in geneve_changelink(), from Cong Wang.

    19) Fix deadlock in xen-netfront, from Andera Righi.

    19) flush_backlog() frees skbs with IRQs disabled, so should use
    dev_kfree_skb_irq() instead of kfree_skb(). From Subash Abhinov
    Kasiviswanathan.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (111 commits)
    drivers/net/wan: lapb: Corrected the usage of skb_cow
    dev: Defer free of skbs in flush_backlog
    qrtr: orphan socket in qrtr_release()
    xen-netfront: fix potential deadlock in xennet_remove()
    flow_offload: Move rhashtable inclusion to the source file
    geneve: fix an uninitialized value in geneve_changelink()
    bonding: check return value of register_netdevice() in bond_newlink()
    tcp: allow at most one TLP probe per flight
    AX.25: Prevent integer overflows in connect and sendmsg
    cxgb4: add missing release on skb in uld_send()
    net: atlantic: fix PTP on AQC10X
    AX.25: Prevent out-of-bounds read in ax25_sendmsg()
    sctp: shrink stream outq when fails to do addstream reconf
    sctp: shrink stream outq only when new outcnt < old outcnt
    AX.25: Fix out-of-bounds read in ax25_connect()
    enetc: Remove the mdio bus on PF probe bailout
    net: ethernet: ti: add NETIF_F_HW_TC hw feature flag for taprio offload
    net: ethernet: ave: Fix error returns in ave_init
    drivers/net/wan/x25_asy: Fix to make it work
    ipvs: fix the connection sync failed in some cases
    ...

    Linus Torvalds
     

25 Jul, 2020

12 commits

  • Partial 5.8-rc7 merge to make the final merge easier.

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I95f1b0a379e3810333300a70c5a93f449d945c54

    Greg Kroah-Hartman
     
  • Currently, maximum physical memory allowed is equal to -PAGE_OFFSET.
    That's why we remove any memory blocks spanning beyond that size. However,
    it is done only for memblock containing linux kernel which will not work
    if there are multiple memblocks.

    Process all memory blocks to figure out how much memory needs to be removed
    and remove at the end instead of updating the memblock list in place.

    Signed-off-by: Atish Patra
    Signed-off-by: Palmer Dabbelt

    Atish Patra
     
  • Currently, initrd_start/end are computed during early_init_dt_scan
    but used during arch_setup. We will get the following panic if initrd is used
    and CONFIG_DEBUG_VIRTUAL is turned on.

    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] kernel BUG at arch/riscv/mm/physaddr.c:33!
    [ 0.000000] Kernel BUG [#1]
    [ 0.000000] Modules linked in:
    [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.8.0-rc4-00015-ged0b226fed02 #886
    [ 0.000000] epc: ffffffe0002058d2 ra : ffffffe0000053f0 sp : ffffffe001001f40
    [ 0.000000] gp : ffffffe00106e250 tp : ffffffe001009d40 t0 : ffffffe00107ee28
    [ 0.000000] t1 : 0000000000000000 t2 : ffffffe000a2e880 s0 : ffffffe001001f50
    [ 0.000000] s1 : ffffffe0001383e8 a0 : ffffffe00c087e00 a1 : 0000000080200000
    [ 0.000000] a2 : 00000000010bf000 a3 : ffffffe00106f3c8 a4 : ffffffe0010bf000
    [ 0.000000] a5 : ffffffe000000000 a6 : 0000000000000006 a7 : 0000000000000001
    [ 0.000000] s2 : ffffffe00106f068 s3 : ffffffe00106f070 s4 : 0000000080200000
    [ 0.000000] s5 : 0000000082200000 s6 : 0000000000000000 s7 : 0000000000000000
    [ 0.000000] s8 : 0000000080011010 s9 : 0000000080012700 s10: 0000000000000000
    [ 0.000000] s11: 0000000000000000 t3 : 000000000001fe30 t4 : 000000000001fe30
    [ 0.000000] t5 : 0000000000000000 t6 : ffffffe00107c471
    [ 0.000000] status: 0000000000000100 badaddr: 0000000000000000 cause: 0000000000000003
    [ 0.000000] random: get_random_bytes called from print_oops_end_marker+0x22/0x46 with crng_init=0

    To avoid the error, initrd_start/end can be computed from phys_initrd_start/size
    in setup itself. It also improves the initrd placement by aligning the start
    and size with the page size.

    Fixes: 76d2a0493a17 ("RISC-V: Init and Halt Code")
    Signed-off-by: Atish Patra
    Signed-off-by: Palmer Dabbelt

    Atish Patra
     
  • This patch fixed 2 issues with the usage of skb_cow in LAPB drivers
    "lapbether" and "hdlc_x25":

    1) After skb_cow fails, kfree_skb should be called to drop a reference
    to the skb. But in both drivers, kfree_skb is not called.

    2) skb_cow should be called before skb_push so that is can ensure the
    safety of skb_push. But in "lapbether", it is incorrectly called after
    skb_push.

    More details about these 2 issues:

    1) The behavior of calling kfree_skb on failure is also the behavior of
    netif_rx, which is called by this function with "return netif_rx(skb);".
    So this function should follow this behavior, too.

    2) In "lapbether", skb_cow is called after skb_push. This results in 2
    logical issues:
    a) skb_push is not protected by skb_cow;
    b) An extra headroom of 1 byte is ensured after skb_push. This extra
    headroom has no use in this function. It also has no use in the
    upper-layer function that this function passes the skb to
    (x25_lapb_receive_frame in net/x25/x25_dev.c).
    So logically skb_cow should instead be called before skb_push.

    Cc: Eric Dumazet
    Cc: Martin Schiller
    Signed-off-by: Xie He
    Signed-off-by: David S. Miller

    Xie He
     
  • IRQs are disabled when freeing skbs in input queue.
    Use the IRQ safe variant to free skbs here.

    Fixes: 145dd5f9c88f ("net: flush the softnet backlog in process context")
    Signed-off-by: Subash Abhinov Kasiviswanathan
    Signed-off-by: David S. Miller

    Subash Abhinov Kasiviswanathan
     
  • Currently, maximum number of mapper pages are set to the pfn calculated
    from the memblock size of the memblock containing kernel. This will work
    until that memblock spans the entire memory. However, it will be set to
    a wrong value if there are multiple memblocks defined in kernel
    (e.g. with efi runtime services).

    Set the the maximum value to the pfn calculated from dram size.

    Signed-off-by: Atish Patra
    Signed-off-by: Palmer Dabbelt

    Atish Patra
     
  • …lgaas/pci into master

    Pull PCI fixes from Bjorn Helgaas:

    - Reject invalid IRQ 0 command line argument for virtio_mmio because
    IRQ 0 now generates warnings (Bjorn Helgaas)

    - Revert "PCI/PM: Assume ports without DLL Link Active train links in
    100 ms", which broke nouveau (Bjorn Helgaas)

    * tag 'pci-v5.8-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
    virtio-mmio: Reject invalid IRQ 0 command line argument

    Linus Torvalds
     
  • We have to detach sock from socket in qrtr_release(),
    otherwise skb->sk may still reference to this socket
    when the skb is released in tun->queue, particularly
    sk->sk_wq still points to &sock->wq, which leads to
    a UAF.

    Reported-and-tested-by: syzbot+6720d64f31c081c2f708@syzkaller.appspotmail.com
    Fixes: 28fb4e59a47d ("net: qrtr: Expose tunneling endpoint to user space")
    Cc: Bjorn Andersson
    Cc: Eric Dumazet
    Signed-off-by: Cong Wang
    Reviewed-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Cong Wang
     
  • …rnel/git/kvalo/wireless-drivers

    Kalle Valo says:

    ====================
    wireless-drivers fixes for v5.8

    Second set of fixes for v5.8, and hopefully also the last. Three
    important regressions fixed.

    ath9k

    * fix a regression which broke support for all ath9k usb devices

    ath10k

    * fix a regression which broke support for all QCA4019 AHB devices

    iwlwifi

    * fix a regression which broke support for some Killer Wireless-AC 1550 cards
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • There's a potential race in xennet_remove(); this is what the driver is
    doing upon unregistering a network device:

    1. state = read bus state
    2. if state is not "Closed":
    3. request to set state to "Closing"
    4. wait for state to be set to "Closing"
    5. request to set state to "Closed"
    6. wait for state to be set to "Closed"

    If the state changes to "Closed" immediately after step 1 we are stuck
    forever in step 4, because the state will never go back from "Closed" to
    "Closing".

    Make sure to check also for state == "Closed" in step 4 to prevent the
    deadlock.

    Also add a 5 sec timeout any time we wait for the bus state to change,
    to avoid getting stuck forever in wait_event().

    Signed-off-by: Andrea Righi
    Signed-off-by: David S. Miller

    Andrea Righi
     
  • Pull nfsd fix from Bruce Fields:
    "Just one fix for a NULL dereference if someone happens to read
    /proc/fs/nfsd/client/../state at the wrong moment"

    * tag 'nfsd-5.8-2' of git://linux-nfs.org/~bfields/linux:
    nfsd4: fix NULL dereference in nfsd/clients display code

    Linus Torvalds
     
  • I noticed that touching linux/rhashtable.h causes lib/vsprintf.c to
    be rebuilt. This dependency came through a bogus inclusion in the
    file net/flow_offload.h. This patch moves it to the right place.

    This patch also removes a lingering rhashtable inclusion in cls_api
    created by the same commit.

    Fixes: 4e481908c51b ("flow_offload: move tc indirect block to...")
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu