Skip to content
Permalink
Cong-Wang/net_…
Switch branches/tags

Commits on Sep 13, 2021

  1. net_sched: introduce eBPF based Qdisc

    This *incomplete* patch introduces a programmable Qdisc with
    eBPF.  The goal is to make this Qdisc as programmable as possible,
    that is, to replace as many existing Qdisc's as we can, no matter
    in tree or out of tree. And we want to make programmer's and researcher's
    life as easy as possible, so that they don't have to write a complete
    Qdisc kernel module just to experiment some queuing theory.
    
    The design was discussed during last LPC:
    https://linuxplumbersconf.org/event/7/contributions/679/attachments/520/1188/sch_bpf.pdf
    
    Here is a summary of design decisions I made:
    
    1. Avoid eBPF struct_ops, as it would be really hard to program
       a Qdisc with this approach, literally all the struct Qdisc_ops
       and struct Qdisc_class_ops are needed to implement. This is almost
       as hard as programming a Qdisc kernel module.
    
    2. Avoid exposing skb's to user-space, which means we don't introduce
       a map to store skb's. Instead, store them in kernel without exposure
       to user-space. There are three different reasons behind this:
    
       2a) User-space does not need to read skb, there is no use case to let
       user-space make decisions, so far.
    
       2b) Kernel would lose the visibility of the "queues", as maps are only
       shared between eBPF programs and user-space. These queues still have to
       interact with the kernel, for example, kernel wants to reset all queues
       when we reset the network interface, kernel wants to adjust number of
       queues if they are mapped to hardware queues.
    
       2c) It is harder to interact with existing TC infra. See below.
    
    3. Integrate with existing TC infra. For example, if the user doesn't want
       to implement her own filters (e.g. a flow dissector), she should be able
       to re-use the existing TC filters. And each queue can be easily mapped
       to a TC class and dump its stats easily via netlink. Users can use this
       Qdisc together with any other Qdisc's too, pretty much like a regular
       Qdisc.
    
    So I choose to use priority queues to store skb's inside a flow and to
    store flows inside a Qdisc, and let eBPF programs decide the *relative*
    position of the skb within the flow and the *relative* order of the flows
    too, upon each enqueue and dequeue. Each flow is also exposed to user as
    a TC class, like many other classful Qdisc's.
    
    Although the biggest limitation is obviously that users can not traverse
    the packets or flows inside the Qdisc, I think at least they could store
    those global information of interest inside their own hashmap.
    
    Any high-level feedbacks are welcome. Please do not review any coding details
    until RFC tag is removed.
    
    TODO:
    1. actually test it
    2. write a document for this Qdisc
    3. add test cases and sample code
    
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: Cong Wang <cong.wang@bytedance.com>
    Cong Wang authored and intel-lab-lkp committed Sep 13, 2021
  2. net: wwan: iosm: firmware flashing and coredump collection

    This patch brings-in support for M.2 7560 Device firmware flashing &
    coredump collection using devlink.
    - Driver Registers with Devlink framework.
    - Register devlink params callback for configuring device params
      required in flashing or coredump flow.
    - Implements devlink ops flash_update callback that programs modem
      firmware.
    - Creates region & snapshot required for device coredump log collection.
    
    On early detection of device in boot rom stage. Driver registers with
    Devlink framework and establish transport channel for PSI (Primary Signed
    Image) injection. Once PSI is injected to device, the device execution
    stage details are read to determine whether device is in flash or
    exception mode. The collected information is reported to devlink user
    space application & based on this informationi, application proceeds with
    either modem firmware flashing or coredump collection.
    
    Signed-off-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    mchetankumar authored and davem330 committed Sep 13, 2021
  3. Merge branch 'nfc-printk-cleanup'

    Krzysztof Kozlowski says:
    
    ====================
    nfc: minor printk cleanup
    
    Changes since v1:
    1. Remove unused variable in pn533 (reported by kbuild).
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Sep 13, 2021
  4. nfc: mrvl: drop unneeded memory allocation fail messages

    nci_skb_alloc() already prints an error message on memory allocation
    failure.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  5. nfc: microread: drop unneeded memory allocation fail messages

    nfc_mei_phy_alloc() already prints an error message on memory allocation
    failure.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  6. nfc: pn544: drop unneeded memory allocation fail messages

    nfc_mei_phy_alloc() already prints an error message on memory allocation
    failure.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  7. nfc: pn544: drop unneeded debug prints

    ftrace is a preferred and standard way to debug entering and exiting
    functions so drop useless debug prints.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  8. nfc: pn533: use dev_err() instead of pr_err()

    Print error message with reference to a device.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  9. nfc: pn533: drop unneeded debug prints

    ftrace is a preferred and standard way to debug entering and exiting
    functions so drop useless debug prints.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  10. nfc: fdp: drop unneeded debug prints

    ftrace is a preferred and standard way to debug entering and exiting
    functions so drop useless debug prints.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  11. nfc: do not break pr_debug() call into separate lines

    Remove unneeded line break between pr_debug and arguments.
    
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    krzk authored and davem330 committed Sep 13, 2021
  12. nfp: Prefer struct_size over open coded arithmetic

    As noted in the "Deprecated Interfaces, Language Features, Attributes,
    and Conventions" documentation [1], size calculations (especially
    multiplication) should not be performed in memory allocator (or similar)
    function arguments due to the risk of them overflowing. This could lead
    to values wrapping around and a smaller allocation being made than the
    caller was expecting. Using those allocations could lead to linear
    overflows of heap memory and other misbehaviors.
    
    So, use the struct_size() helper to do the arithmetic instead of the
    argument "size + count * size" in the kzalloc() function.
    
    [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
    
    Signed-off-by: Len Baker <len.baker@gmx.com>
    Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Reviewed-by: Simon Horman <simon.horman@corigine.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Len Baker authored and davem330 committed Sep 13, 2021
  13. qed: Improve the stack space of filter_config()

    As it was reported and discussed in: https://lore.kernel.org/lkml/CAHk-=whF9F89vsfH8E9TGc0tZA-yhzi2Di8wOtquNB5vRkFX5w@mail.gmail.com/
    This patch improves the stack space of qede_config_rx_mode() by
    splitting filter_config() to 3 functions and removing the
    union qed_filter_type_params.
    
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Ariel Elior <aelior@marvell.com>
    Signed-off-by: Shai Malin <smalin@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    smalin1 authored and davem330 committed Sep 13, 2021

Commits on Sep 7, 2021

  1. Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes and stragglers from Jakub Kicinski:
     "Networking stragglers and fixes, including changes from netfilter,
      wireless and can.
    
      Current release - regressions:
    
       - qrtr: revert check in qrtr_endpoint_post(), fixes audio and wifi
    
       - ip_gre: validate csum_start only on pull
    
       - bnxt_en: fix 64-bit doorbell operation on 32-bit kernels
    
       - ionic: fix double use of queue-lock, fix a sleeping in atomic
    
       - can: c_can: fix null-ptr-deref on ioctl()
    
       - cs89x0: disable compile testing on powerpc
    
      Current release - new code bugs:
    
       - bridge: mcast: fix vlan port router deadlock, consistently disable
         BH
    
      Previous releases - regressions:
    
       - dsa: tag_rtl4_a: fix egress tags, only port 0 was working
    
       - mptcp: fix possible divide by zero
    
       - netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex
    
       - netfilter: socket: icmp6: fix use-after-scope
    
       - stmmac: fix MAC not working when system resume back with WoL active
    
      Previous releases - always broken:
    
       - ip/ip6_gre: use the same logic as SIT interfaces when computing
         v6LL address
    
       - seg6: set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
    
       - mptcp: only send extra TCP acks in eligible socket states
    
       - dsa: lantiq_gswip: fix maximum frame length
    
       - stmmac: fix overall budget calculation for rxtx_napi
    
       - bnxt_en: fix firmware version reporting via devlink
    
       - renesas: sh_eth: add missing barrier to fix freeing wrong tx
         descriptor
    
      Stragglers:
    
       - netfilter: conntrack: switch to siphash
    
       - netfilter: refuse insertion if chain has grown too large
    
       - ncsi: add get MAC address command to get Intel i210 MAC address"
    
    * tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (76 commits)
      ieee802154: Remove redundant initialization of variable ret
      net: stmmac: fix MAC not working when system resume back with WoL active
      net: phylink: add suspend/resume support
      net: renesas: sh_eth: Fix freeing wrong tx descriptor
      bonding: 3ad: pass parameter bond_params by reference
      cxgb3: fix oops on module removal
      can: c_can: fix null-ptr-deref on ioctl()
      can: rcar_canfd: add __maybe_unused annotation to silence warning
      net: wwan: iosm: Unify IO accessors used in the driver
      net: wwan: iosm: Replace io.*64_lo_hi() with regular accessors
      net: qcom/emac: Replace strlcpy with strscpy
      ip6_gre: Revert "ip6_gre: add validation for csum_start"
      net: hns3: make hclgevf_cmd_caps_bit_map0 and hclge_cmd_caps_bit_map0 static
      selftests/bpf: Test XDP bonding nest and unwind
      bonding: Fix negative jump label count on nested bonding
      MAINTAINERS: add VM SOCKETS (AF_VSOCK) entry
      stmmac: dwmac-loongson:Fix missing return value
      iwlwifi: fix printk format warnings in uefi.c
      net: create netdev->dev_addr assignment helpers
      bnxt_en: Fix possible unintended driver initiated error recovery
      ...
    torvalds committed Sep 7, 2021
  2. Merge tag 'linux-watchdog-5.15-rc1' of git://www.linux-watchdog.org/l…

    …inux-watchdog
    
    Pull watchdog updates from Wim Van Sebroeck:
    
     - add Mediatek MT7986 & MT8195 wdt support
    
     - add Maxim MAX63xx
    
     - drop bd70528 support
    
     - rewrite ixp4xx to watchdog framework
    
     - constify static struct watchdog_ops for sl28cpld_wdt, mpc8xxx_wdt and
       tqmx86
    
     - introduce watchdog_dev_suspend/resume
    
     - several fixes and improvements
    
    * tag 'linux-watchdog-5.15-rc1' of git://www.linux-watchdog.org/linux-watchdog:
      dt-bindings: watchdog: Add compatible for Mediatek MT7986
      watchdog: ixp4xx: Rewrite driver to use core
      watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate
      watchdog: max63xx_wdt: Add device tree probing
      dt-bindings: watchdog: Add Maxim MAX63xx bindings
      watchdog: mediatek: mt8195: add wdt support
      dt-bindings: reset: mt8195: add toprgu reset-controller header file
      watchdog: tqmx86: Constify static struct watchdog_ops
      watchdog: mpc8xxx_wdt: Constify static struct watchdog_ops
      watchdog: sl28cpld_wdt: Constify static struct watchdog_ops
      watchdog: iTCO_wdt: Fix detection of SMI-off case
      watchdog: bcm2835_wdt: consider system-power-controller property
      watchdog: imx2_wdg: notify wdog core to stop ping worker on suspend
      watchdog: introduce watchdog_dev_suspend/resume
      watchdog: Fix NULL pointer dereference when releasing cdev
      watchdog: only run driver set_pretimeout op if device supports it
      watchdog: bd70528 drop bd70528 support
    torvalds committed Sep 7, 2021
  3. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull KVM updates from Paolo Bonzini:
     "ARM:
       - Page ownership tracking between host EL1 and EL2
       - Rely on userspace page tables to create large stage-2 mappings
       - Fix incompatibility between pKVM and kmemleak
       - Fix the PMU reset state, and improve the performance of the virtual
         PMU
       - Move over to the generic KVM entry code
       - Address PSCI reset issues w.r.t. save/restore
       - Preliminary rework for the upcoming pKVM fixed feature
       - A bunch of MM cleanups
       - a vGIC fix for timer spurious interrupts
       - Various cleanups
    
      s390:
       - enable interpretation of specification exceptions
       - fix a vcpu_idx vs vcpu_id mixup
    
      x86:
       - fast (lockless) page fault support for the new MMU
       - new MMU now the default
       - increased maximum allowed VCPU count
       - allow inhibit IRQs on KVM_RUN while debugging guests
       - let Hyper-V-enabled guests run with virtualized LAPIC as long as
         they do not enable the Hyper-V "AutoEOI" feature
       - fixes and optimizations for the toggling of AMD AVIC (virtualized
         LAPIC)
       - tuning for the case when two-dimensional paging (EPT/NPT) is
         disabled
       - bugfixes and cleanups, especially with respect to vCPU reset and
         choosing a paging mode based on CR0/CR4/EFER
       - support for 5-level page table on AMD processors
    
      Generic:
       - MMU notifier invalidation callbacks do not take mmu_lock unless
         necessary
       - improved caching of LRU kvm_memory_slot
       - support for histogram statistics
       - add statistics for halt polling and remote TLB flush requests"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (210 commits)
      KVM: Drop unused kvm_dirty_gfn_invalid()
      KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted
      KVM: MMU: mark role_regs and role accessors as maybe unused
      KVM: MIPS: Remove a "set but not used" variable
      x86/kvm: Don't enable IRQ when IRQ enabled in kvm_wait
      KVM: stats: Add VM stat for remote tlb flush requests
      KVM: Remove unnecessary export of kvm_{inc,dec}_notifier_count()
      KVM: x86/mmu: Move lpage_disallowed_link further "down" in kvm_mmu_page
      KVM: x86/mmu: Relocate kvm_mmu_page.tdp_mmu_page for better cache locality
      Revert "KVM: x86: mmu: Add guest physical address check in translate_gpa()"
      KVM: x86/mmu: Remove unused field mmio_cached in struct kvm_mmu_page
      kvm: x86: Increase KVM_SOFT_MAX_VCPUS to 710
      kvm: x86: Increase MAX_VCPUS to 1024
      kvm: x86: Set KVM_MAX_VCPU_ID to 4*KVM_MAX_VCPUS
      KVM: VMX: avoid running vmx_handle_exit_irqoff in case of emulation
      KVM: x86/mmu: Don't freak out if pml5_root is NULL on 4-level host
      KVM: s390: index kvm->arch.idle_mask by vcpu_idx
      KVM: s390: Enable specification exception interpretation
      KVM: arm64: Trim guest debug exception handling
      KVM: SVM: Add 5-level page table support for SVM
      ...
    torvalds committed Sep 7, 2021
  4. Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/jdelvare/staging
    
    Pull dmi fix from Jean Delvare.
    
    Unbreak some existing udev/hwdb modalias matches due to misplaced
    product_sku field.
    
    * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
      firmware: dmi: Move product_sku info to the end of the modalias
    torvalds committed Sep 7, 2021
  5. Merge tag 'ntb-5.15' of git://github.com/jonmason/ntb

    Pull NTB updates from Jon Mason:
     "Bug fixes and clean-ups for Linux v5.15"
    
    * tag 'ntb-5.15' of git://github.com/jonmason/ntb:
      NTB: switch from 'pci_' to 'dma_' API
      ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data
      NTB: perf: Fix an error code in perf_setup_inbuf()
      NTB: Fix an error code in ntb_msit_probe()
      ntb: intel: remove invalid email address in header comment
    torvalds committed Sep 7, 2021
  6. Merge tag 'rproc-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/andersson/remoteproc
    
    Pull remoteproc updates from Bjorn Andersson:
    
     - move the crash recovery worker to the freezable work queue to avoid
       interaction with other drivers during suspend & resume
    
     - fix a couple of typos in comments
    
     - add support for handling the audio DSP on SDM660
    
     - fix a race between the Qualcomm wireless subsystem driver and the
       associated driver for the RF chip
    
    * tag 'rproc-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
      remoteproc: q6v5_pas: Add sdm660 ADSP PIL compatible
      dt-bindings: remoteproc: qcom: adsp: Add SDM660 ADSP
      remoteproc: use freezable workqueue for crash notifications
      remoteproc: fix kernel doc for struct rproc_ops
      remoteproc: fix an typo in fw_elf_get_class code comments
      remoteproc: qcom: wcnss: Fix race with iris probe
    torvalds committed Sep 7, 2021
  7. Merge tag 'backlight-next-5.15' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/lee/backlight
    
    Pull backlight updates from Lee Jones:
     "Fix-ups:
       - Improve bootloader/kernel device handover
    
      Bug Fixes:
       - Stabilise backlight in ktd253 driver"
    
    * tag 'backlight-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
      backlight: pwm_bl: Improve bootloader/kernel device handover
      backlight: ktd253: Stabilize backlight
    torvalds committed Sep 7, 2021
  8. Merge tag 'mfd-next-5.15' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/lee/mfd
    
    Pull MFD updates from Lee Jones:
     "Core Frameworks:
       - Add support for registering devices via MFD cells to Simple MFD (I2C)
    
      New Drivers:
       - Add support for Renesas Synchronization Management Unit (SMU)
    
      New Device Support:
       - Add support for N5010 to Intel M10 BMC
       - Add support for Cannon Lake to Intel LPSS ACPI
       - Add support for Samsung SSG{1,2} to ST-Ericsson's U8500 family
       - Add support for TQMx110EB and TQMxE40x to TQ-Systems PLD TQMx86
    
      New Functionality:
       - Add support for GPIO to Intel LPC ICH
       - Add support for Reset to Texas Instruments TPS65086
    
      Fix-ups:
       - Trivial, sorting, whitespace, renaming, etc; mt6360-core, db8500-prcmu-regs, tqmx86
       - Device Tree fiddling; syscon, axp20x, qcom,pm8008, ti,tps65086, brcm,cru
       - Use proper APIs for IRQ map resolution; ab8500-core, stmpe, tc3589x, wm8994-irq
       - Pass 'supplied-from' property through axp288_fuel_gauge via swnode
       - Remove unused file entry; MAINTAINERS
       - Make interrupt line optional; tps65086
       - Rename db8500-cpuidle driver symbol; db8500-prcmu
       - Remove support for unused hardware; tqmx86
       - Provide a standard LPC clock frequency for unknown boards; tqmx86
       - Remove unused code; ti_am335x_tscadc
       - Use of_iomap() instead of ioremap(); syscon
    
      Bug Fixes:
       - Clear GPIO IRQ resource flags when no IRQ is set; tqmx86
       - Fix incorrect/misleading frequencies; db8500-prcmu
       - Mitigate namespace clash with other GPIOBASE users"
    
    * tag 'mfd-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (31 commits)
      mfd: lpc_sch: Rename GPIOBASE to prevent build error
      mfd: syscon: Use of_iomap() instead of ioremap()
      dt-bindings: mfd: Add Broadcom CRU
      mfd: ti_am335x_tscadc: Delete superfluous error message
      mfd: tqmx86: Assume 24MHz LPC clock for unknown boards
      mfd: tqmx86: Add support for TQ-Systems DMI IDs
      mfd: tqmx86: Add support for TQMx110EB and TQMxE40x
      mfd: tqmx86: Fix typo in "platform"
      mfd: tqmx86: Remove incorrect TQMx90UC board ID
      mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
      mfd: simple-mfd-i2c: Add support for registering devices via MFD cells
      mfd/cpuidle: ux500: Rename driver symbol
      mfd: tps65086: Add cell entry for reset driver
      mfd: tps65086: Make interrupt line optional
      dt-bindings: mfd: Convert tps65086.txt to YAML
      MAINTAINERS: Adjust ARM/NOMADIK/Ux500 ARCHITECTURES to file renaming
      mfd: db8500-prcmu: Handle missing FW variant
      mfd: db8500-prcmu: Rename register header
      mfd: axp20x: Add supplied-from property to axp288_fuel_gauge cell
      mfd: Don't use irq_create_mapping() to resolve a mapping
      ...
    torvalds committed Sep 7, 2021
  9. Merge tag 'gpio-updates-for-v5.15' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/brgl/linux
    
    Pull gpio updates from Bartosz Golaszewski:
     "We mostly have various improvements and refactoring all over the place
      but also some interesting new features - like the virtio GPIO driver
      that allows guest VMs to use host's GPIOs. We also have a new/old GPIO
      driver for rockchip - this one has been split out of the pinctrl
      driver.
    
      Summary:
    
       - new driver: gpio-virtio allowing a guest VM running linux to access
         GPIO lines provided by the host
    
       - split the GPIO driver out of the rockchip pin control driver
    
       - add support for a new model to gpio-aspeed-sgpio, refactor the
         driver and use generic device property interfaces, improve property
         sanitization
    
       - add ACPI support to gpio-tegra186
    
       - improve the code setting the line names to support multiple GPIO
         banks per device
    
       - constify a bunch of OF functions in the core GPIO code and make the
         declaration for one of the core OF functions we use consistent
         within its header
    
       - use software nodes in intel_quark_i2c_gpio
    
       - add support for the gpio-line-names property in gpio-mt7621
    
       - use the standard GPIO function for setting the GPIO names in
         gpio-brcmstb
    
       - fix a bunch of leaks and other bugs in gpio-mpc8xxx
    
       - use generic pm callbacks in gpio-ml-ioh
    
       - improve resource management and PM handling in gpio-mlxbf2
    
       - modernize and improve the gpio-dwapb driver
    
       - coding style improvements in gpio-rcar
    
       - documentation fixes and improvements
    
       - update the MAINTAINERS entry for gpio-zynq
    
       - minor tweaks in several drivers"
    
    * tag 'gpio-updates-for-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (35 commits)
      gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak
      gpio: mpc8xxx: Fix a potential double iounmap call in 'mpc8xxx_probe()'
      gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()'
      gpio: viperboard: remove platform_set_drvdata() call in probe
      gpio: virtio: Add missing mailings lists in MAINTAINERS entry
      gpio: virtio: Fix sparse warnings
      gpio: remove the obsolete MX35 3DS BOARD MC9S08DZ60 GPIO functions
      gpio: max730x: Use the right include
      gpio: Add virtio-gpio driver
      gpio: mlxbf2: Use DEFINE_RES_MEM_NAMED() helper macro
      gpio: mlxbf2: Use devm_platform_ioremap_resource()
      gpio: mlxbf2: Drop wrong use of ACPI_PTR()
      gpio: mlxbf2: Convert to device PM ops
      gpio: dwapb: Get rid of legacy platform data
      mfd: intel_quark_i2c_gpio: Convert GPIO to use software nodes
      gpio: dwapb: Read GPIO base from gpio-base property
      gpio: dwapb: Unify ACPI enumeration checks in get_irq() and configure_irqs()
      gpiolib: Deduplicate forward declaration in the consumer.h header
      MAINTAINERS: update gpio-zynq.yaml reference
      gpio: tegra186: Add ACPI support
      ...
    torvalds committed Sep 7, 2021
  10. Merge tag 'fuse-update-5.15' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/mszeredi/fuse
    
    Pull fuse updates from Miklos Szeredi:
    
     - Allow mounting an active fuse device. Previously the fuse device
       would always be mounted during initialization, and sharing a fuse
       superblock was only possible through mount or namespace cloning
    
     - Fix data flushing in syncfs (virtiofs only)
    
     - Fix data flushing in copy_file_range()
    
     - Fix a possible deadlock in atomic O_TRUNC
    
     - Misc fixes and cleanups
    
    * tag 'fuse-update-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
      fuse: remove unused arg in fuse_write_file_get()
      fuse: wait for writepages in syncfs
      fuse: flush extending writes
      fuse: truncate pagecache on atomic_o_trunc
      fuse: allow sharing existing sb
      fuse: move fget() to fuse_get_tree()
      fuse: move option checking into fuse_fill_super()
      fuse: name fs_context consistently
      fuse: fix use after free in fuse_read_interrupt()
    torvalds committed Sep 7, 2021
  11. Merge tag 'kgdb-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/danielt/linux
    
    Pull kgdb updates from Daniel Thompson:
     "Changes for kgdb/kdb this cycle are dominated by a change from Sumit
      that removes as small (256K) private heap from kdb. This is change
      I've hoped for ever since I discovered how few users of this heap
      remained in the kernel, so many thanks to Sumit for hunting these
      down.
    
      The other change is an incremental step towards SPDX headers"
    
    * tag 'kgdb-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
      kernel: debug: Convert to SPDX identifier
      kdb: Rename members of struct kdbtab_t
      kdb: Simplify kdb_defcmd macro logic
      kdb: Get rid of redundant kdb_register_flags()
      kdb: Rename struct defcmd_set to struct kdb_macro
      kdb: Get rid of custom debug heap allocator
    torvalds committed Sep 7, 2021
  12. Revert "memcg: enable accounting for pollfd and select bits arrays"

    This reverts commit b655843.
    
    Just like with the memcg lock accounting, the kernel test robot reports
    a sizeable performance regression for this commit, and while it clearly
    does the rigth thing in theory, we'll need to look at just how to avoid
    or minimize the performance overhead of the memcg accounting.
    
    People already have suggestions on how to do that, but it's "future
    work".
    
    So revert it for now.
    
    [ Note: the first link below is for this same commit but a different
      commit ID, because it's the kernel test robot ended up noticing it in
      Andrew Morton's patch queue ]
    
    Link: https://lore.kernel.org/lkml/20210905132732.GC15026@xsang-OptiPlex-9020/
    Link: https://lore.kernel.org/lkml/20210907150757.GE17617@xsang-OptiPlex-9020/
    Acked-by: Jens Axboe <axboe@kernel.dk>
    Acked-by: Shakeel Butt <shakeelb@google.com>
    Acked-by: Roman Gushchin <guro@fb.com>
    Cc: Tejun Heo <tj@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Sep 7, 2021
  13. Revert "memcg: enable accounting for file lock caches"

    This reverts commit 0f12156.
    
    The kernel test robot reports a sizeable performance regression for this
    commit, and while it clearly does the rigth thing in theory, we'll need
    to look at just how to avoid or minimize the performance overhead of the
    memcg accounting.
    
    People already have suggestions on how to do that, but it's "future
    work".
    
    So revert it for now.
    
    Link: https://lore.kernel.org/lkml/20210907150757.GE17617@xsang-OptiPlex-9020/
    Acked-by: Jens Axboe <axboe@kernel.dk>
    Acked-by: Shakeel Butt <shakeelb@google.com>
    Acked-by: Roman Gushchin <guro@fb.com>
    Cc: Tejun Heo <tj@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Sep 7, 2021
  14. Revert "mm/gup: remove try_get_page(), call try_get_compound_head() d…

    …irectly"
    
    This reverts commit 9857a17.
    
    That commit was completely broken, and I should have caught on to it
    earlier.  But happily, the kernel test robot noticed the breakage fairly
    quickly.
    
    The breakage is because "try_get_page()" is about avoiding the page
    reference count overflow case, but is otherwise the exact same as a
    plain "get_page()".
    
    In contrast, "try_get_compound_head()" is an entirely different beast,
    and uses __page_cache_add_speculative() because it's not just about the
    page reference count, but also about possibly racing with the underlying
    page going away.
    
    So all the commentary about how
    
     "try_get_page() has fallen a little behind in terms of maintenance,
      try_get_compound_head() handles speculative page references more
      thoroughly"
    
    was just completely wrong: yes, try_get_compound_head() handles
    speculative page references, but the point is that try_get_page() does
    not, and must not.
    
    So there's no lack of maintainance - there are fundamentally different
    semantics.
    
    A speculative page reference would be entirely wrong in "get_page()",
    and it's entirely wrong in "try_get_page()".  It's not about
    speculation, it's purely about "uhhuh, you can't get this page because
    you've tried to increment the reference count too much already".
    
    The reason the kernel test robot noticed this bug was that it hit the
    VM_BUG_ON() in __page_cache_add_speculative(), which is all about
    verifying that the context of any speculative page access is correct.
    But since that isn't what try_get_page() is all about, the VM_BUG_ON()
    tests things that are not correct to test for try_get_page().
    
    Reported-by: kernel test robot <oliver.sang@intel.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Sep 7, 2021
  15. ieee802154: Remove redundant initialization of variable ret

    The variable ret is being initialized with a value that is never read, it
    is being updated later on. The assignment is redundant and can be removed.
    
    Addresses-Coverity: ("Unused value")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Colin Ian King authored and davem330 committed Sep 7, 2021
  16. Merge branch 'stmmac-wol-fix'

    Joakim Zhang says:
    
    ====================
    net: stmmac: fix WoL issue
    
    This patch set fixes stmmac not working after system resume back with WoL
    active. Thanks a lot for Russell King keeps looking into this issue.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Sep 7, 2021
  17. net: stmmac: fix MAC not working when system resume back with WoL active

    We can reproduce this issue with below steps:
    1) enable WoL on the host
    2) host system suspended
    3) remote client send out wakeup packets
    We can see that host system resume back, but can't work, such as ping failed.
    
    After a bit digging, this issue is introduced by the commit 46f69de
    ("net: stmmac: Use resolved link config in mac_link_up()"), which use
    the finalised link parameters in mac_link_up() rather than the
    parameters in mac_config().
    
    There are two scenarios for MAC suspend/resume in STMMAC driver:
    
    1) MAC suspend with WoL inactive, stmmac_suspend() call
    phylink_mac_change() to notify phylink machine that a change in MAC
    state, then .mac_link_down callback would be invoked. Further, it will
    call phylink_stop() to stop the phylink instance. When MAC resume back,
    firstly phylink_start() is called to start the phylink instance, then
    call phylink_mac_change() which will finally trigger phylink machine to
    invoke .mac_config and .mac_link_up callback. All is fine since
    configuration in these two callbacks will be initialized, that means MAC
    can restore the state.
    
    2) MAC suspend with WoL active, phylink_mac_change() will put link
    down, but there is no phylink_stop() to stop the phylink instance, so it
    will link up again, that means .mac_config and .mac_link_up would be
    invoked before system suspended. After system resume back, it will do
    DMA initialization and SW reset which let MAC lost the hardware setting
    (i.e MAC_Configuration register(offset 0x0) is reset). Since link is up
    before system suspended, so .mac_link_up would not be invoked after
    system resume back, lead to there is no chance to initialize the
    configuration in .mac_link_up callback, as a result, MAC can't work any
    longer.
    
    After discussed with Russell King [1], we confirm that phylink framework
    have not take WoL into consideration yet. This patch calls
    phylink_suspend()/phylink_resume() functions which is newly introduced
    by Russell King to fix this issue.
    
    [1] https://lore.kernel.org/netdev/20210901090228.11308-1-qiangqing.zhang@nxp.com/
    
    Fixes: 46f69de ("net: stmmac: Use resolved link config in mac_link_up()")
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Joakim Zhang authored and davem330 committed Sep 7, 2021
  18. net: phylink: add suspend/resume support

    Joakim Zhang reports that Wake-on-Lan with the stmmac ethernet driver broke
    when moving the incorrect handling of mac link state out of mac_config().
    This reason this breaks is because the stmmac's WoL is handled by the MAC
    rather than the PHY, and phylink doesn't cater for that scenario.
    
    This patch adds the necessary phylink code to handle suspend/resume events
    according to whether the MAC still needs a valid link or not. This is the
    barest minimum for this support.
    
    Reported-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Tested-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Russell King (Oracle) authored and davem330 committed Sep 7, 2021
  19. net: renesas: sh_eth: Fix freeing wrong tx descriptor

    The cur_tx counter must be incremented after TACT bit of
    txdesc->status was set. However, a CPU is possible to reorder
    instructions and/or memory accesses between cur_tx and
    txdesc->status. And then, if TX interrupt happened at such a
    timing, the sh_eth_tx_free() may free the descriptor wrongly.
    So, add wmb() before cur_tx++.
    Otherwise NETDEV WATCHDOG timeout is possible to happen.
    
    Fixes: 86a74ff ("net: sh_eth: add support for Renesas SuperH Ethernet")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    shimoday authored and davem330 committed Sep 7, 2021
  20. bonding: 3ad: pass parameter bond_params by reference

    The parameter bond_params is a relatively large 192 byte sized
    struct so pass it by reference rather than by value to reduce
    copying.
    
    Addresses-Coverity: ("Big parameter passed by value")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Colin Ian King authored and davem330 committed Sep 7, 2021
  21. Merge tag 'linux-can-fixes-for-5.15-20210907' of git://git.kernel.org…

    …/pub/scm/linux/kernel/git/mkl/linux-can
    
    linux-can-fixes-for-5.15-20210907
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Sep 7, 2021
  22. Merge tag 'wireless-drivers-2021-09-07' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/kvalo/wireless-drivers
    
    Kalle Valo says:
    
    ====================
    wireless-drivers fixes for v5.15
    
    First set of fixes for v5.15 and only iwlwifi patches this time. Most
    important being support for new hardware and new firmware API.
    
    I had already earlier applied a fix which also Linus applied to this
    tree as commit 1476ff2 ("iwl: fix debug printf format strings"),
    but this doesn't seem to cause any conflicts so I left it there.
    
    iwlwifi
    
    * add support for firmware API 66
    
    * add support for Samsung Galaxy Book Flex2 Alpha
    
    * fix a leak happening every time module is loaded
    
    * fix a printk compiler warning
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Sep 7, 2021
Older