Skip to contentSkip to conversation

Linux 5.10.157

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Dec 2, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.157 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Makefile                                                 |    2 
 arch/arm/boot/dts/am335x-pcm-953.dtsi                    |   28 
 arch/arm/boot/dts/at91sam9g20ek_common.dtsi              |    9 
 arch/arm/boot/dts/imx6q-prti6q.dts                       |    4 
 arch/arm/mach-mxs/mach-mxs.c                             |    4 
 arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts      |    2 
 arch/arm64/include/asm/syscall_wrapper.h                 |    2 
 arch/mips/include/asm/fw/fw.h                            |    2 
 arch/mips/pic32/pic32mzda/early_console.c                |   13 
 arch/mips/pic32/pic32mzda/init.c                         |    2 
 arch/nios2/boot/Makefile                                 |    2 
 arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts      |   38 +
 arch/riscv/kernel/vdso/Makefile                          |    3 
 arch/riscv/kernel/vdso/vdso.lds.S                        |    2 
 arch/s390/kernel/crash_dump.c                            |    2 
 arch/x86/kvm/svm/svm.c                                   |   16 
 arch/x86/mm/ioremap.c                                    |    8 
 block/bfq-cgroup.c                                       |    4 
 drivers/android/binder.c                                 |  437 +++++++++++++--
 drivers/ata/libata-scsi.c                                |   55 +
 drivers/bus/sunxi-rsb.c                                  |   29 
 drivers/dma-buf/dma-heap.c                               |   28 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c                  |    8 
 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c  |    3 
 drivers/gpu/drm/drm_dp_dual_mode_helper.c                |   51 -
 drivers/gpu/drm/drm_panel_orientation_quirks.c           |    6 
 drivers/gpu/drm/i915/gt/intel_gt.c                       |    4 
 drivers/gpu/drm/tegra/drm.c                              |    4 
 drivers/gpu/host1x/dev.c                                 |    4 
 drivers/hv/channel_mgmt.c                                |    6 
 drivers/hv/vmbus_drv.c                                   |    1 
 drivers/iio/industrialio-sw-trigger.c                    |    6 
 drivers/iio/light/apds9960.c                             |   12 
 drivers/iio/pressure/ms5611.h                            |   18 
 drivers/iio/pressure/ms5611_core.c                       |   56 -
 drivers/iio/pressure/ms5611_i2c.c                        |   11 
 drivers/iio/pressure/ms5611_spi.c                        |   17 
 drivers/input/misc/soc_button_array.c                    |   14 
 drivers/input/mouse/synaptics.c                          |    1 
 drivers/input/touchscreen/goodix.c                       |   11 
 drivers/irqchip/irq-gic-v3-its.c                         |    2 
 drivers/md/dm-integrity.c                                |   20 
 drivers/mmc/host/sdhci-brcmstb.c                         |   68 +-
 drivers/net/arcnet/arc-rimi.c                            |    4 
 drivers/net/arcnet/arcdevice.h                           |    6 
 drivers/net/arcnet/arcnet.c                              |   66 ++
 drivers/net/arcnet/com20020-isa.c                        |    4 
 drivers/net/arcnet/com20020-pci.c                        |    2 
 drivers/net/arcnet/com20020_cs.c                         |   13 
 drivers/net/arcnet/com90io.c                             |    4 
 drivers/net/arcnet/com90xx.c                             |    4 
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c        |   12 
 drivers/net/ethernet/cavium/liquidio/lio_main.c          |    4 
 drivers/net/ethernet/cavium/thunder/thunder_bgx.c        |    4 
 drivers/net/ethernet/freescale/enetc/enetc.c             |   32 -
 drivers/net/ethernet/freescale/enetc/enetc.h             |   10 
 drivers/net/ethernet/freescale/enetc/enetc_pf.c          |    6 
 drivers/net/ethernet/freescale/enetc/enetc_qos.c         |   83 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c              |    3 
 drivers/net/ethernet/mellanox/mlx4/qp.c                  |    3 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c            |    6 
 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c |    2 
 drivers/net/ethernet/netronome/nfp/nfp_devlink.c         |    2 
 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c     |    3 
 drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c     |    6 
 drivers/net/ethernet/qlogic/qla3xxx.c                    |    1 
 drivers/net/ethernet/sfc/ef100_netdev.c                  |    1 
 drivers/net/macsec.c                                     |   28 
 drivers/net/usb/qmi_wwan.c                               |    1 
 drivers/net/wireless/cisco/airo.c                        |   18 
 drivers/net/wireless/mac80211_hwsim.c                    |    5 
 drivers/net/wireless/microchip/wilc1000/cfg80211.c       |   40 +
 drivers/net/wireless/microchip/wilc1000/hif.c            |   21 
 drivers/nfc/st-nci/se.c                                  |    6 
 drivers/nvme/host/pci.c                                  |    4 
 drivers/platform/x86/acer-wmi.c                          |    9 
 drivers/platform/x86/asus-wmi.c                          |    2 
 drivers/platform/x86/hp-wmi.c                            |    3 
 drivers/platform/x86/touchscreen_dmi.c                   |   25 
 drivers/regulator/core.c                                 |    8 
 drivers/regulator/twl6030-regulator.c                    |    2 
 drivers/s390/block/dasd_eckd.c                           |    6 
 drivers/scsi/ibmvscsi/ibmvfc.c                           |   14 
 drivers/scsi/scsi_debug.c                                |    7 
 drivers/scsi/scsi_transport_sas.c                        |   13 
 drivers/scsi/storvsc_drv.c                               |   69 +-
 drivers/spi/spi-dw-dma.c                                 |    3 
 drivers/spi/spi-stm32.c                                  |    2 
 drivers/tee/optee/device.c                               |    2 
 drivers/tty/serial/8250/8250_omap.c                      |    7 
 drivers/usb/cdns3/core.c                                 |   24 
 drivers/usb/cdns3/core.h                                 |    5 
 drivers/usb/cdns3/drd.c                                  |  101 ++-
 drivers/usb/cdns3/drd.h                                  |   67 +-
 drivers/usb/dwc3/dwc3-exynos.c                           |   11 
 drivers/usb/dwc3/gadget.c                                |   22 
 drivers/xen/platform-pci.c                               |    7 
 drivers/xen/xen-pciback/conf_space_capability.c          |    9 
 fs/btrfs/ioctl.c                                         |    7 
 fs/btrfs/sysfs.c                                         |    7 
 fs/ceph/caps.c                                           |  105 ++-
 fs/ceph/mds_client.c                                     |   90 ++-
 fs/ceph/mds_client.h                                     |    5 
 fs/ceph/snap.c                                           |   31 -
 fs/ceph/strings.c                                        |    1 
 fs/ext4/extents.c                                        |   18 
 fs/fuse/file.c                                           |   36 -
 fs/nilfs2/sufile.c                                       |    8 
 fs/zonefs/super.c                                        |   37 -
 include/linux/ceph/ceph_fs.h                             |    1 
 include/linux/netfilter/ipset/ip_set.h                   |    3 
 include/net/switchdev.h                                  |    2 
 include/trace/events/rxrpc.h                             |    2 
 include/uapi/linux/audit.h                               |    2 
 init/Kconfig                                             |    2 
 kernel/gcov/clang.c                                      |    2 
 kernel/irq/manage.c                                      |   31 -
 kernel/irq/msi.c                                         |    7 
 lib/vdso/Makefile                                        |    2 
 mm/vmscan.c                                              |   10 
 net/9p/trans_fd.c                                        |    2 
 net/bridge/br_vlan.c                                     |   33 -
 net/core/flow_dissector.c                                |    2 
 net/dccp/ipv4.c                                          |    2 
 net/dccp/ipv6.c                                          |    2 
 net/ipv4/Kconfig                                         |   10 
 net/ipv4/esp4_offload.c                                  |    3 
 net/ipv4/fib_trie.c                                      |    4 
 net/ipv4/inet_hashtables.c                               |   10 
 net/ipv4/ip_input.c                                      |    5 
 net/ipv4/netfilter/ipt_CLUSTERIP.c                       |    4 
 net/ipv4/tcp_ipv4.c                                      |    2 
 net/ipv6/esp6_offload.c                                  |    3 
 net/ipv6/tcp_ipv6.c                                      |    2 
 net/ipv6/xfrm6_policy.c                                  |    6 
 net/key/af_key.c                                         |   32 -
 net/mac80211/main.c                                      |    8 
 net/mac80211/mesh_pathtbl.c                              |    2 
 net/netfilter/ipset/ip_set_hash_ip.c                     |   17 
 net/netfilter/ipset/ip_set_hash_ipmark.c                 |   10 
 net/netfilter/ipset/ip_set_hash_ipport.c                 |    3 
 net/netfilter/ipset/ip_set_hash_ipportip.c               |    3 
 net/netfilter/ipset/ip_set_hash_ipportnet.c              |    3 
 net/netfilter/ipset/ip_set_hash_net.c                    |   11 
 net/netfilter/ipset/ip_set_hash_netiface.c               |   10 
 net/netfilter/ipset/ip_set_hash_netnet.c                 |   16 
 net/netfilter/ipset/ip_set_hash_netport.c                |   11 
 net/netfilter/ipset/ip_set_hash_netportnet.c             |   16 
 net/netfilter/nf_conntrack_core.c                        |    2 
 net/netfilter/nf_conntrack_netlink.c                     |   24 
 net/netfilter/nf_conntrack_standalone.c                  |    2 
 net/netfilter/nf_flow_table_offload.c                    |    4 
 net/netfilter/nft_ct.c                                   |    6 
 net/netfilter/xt_connmark.c                              |   18 
 net/nfc/nci/core.c                                       |    2 
 net/nfc/nci/data.c                                       |    4 
 net/openvswitch/conntrack.c                              |    8 
 net/rxrpc/af_rxrpc.c                                     |    2 
 net/rxrpc/ar-internal.h                                  |   24 
 net/rxrpc/call_accept.c                                  |    4 
 net/rxrpc/call_object.c                                  |   44 -
 net/rxrpc/conn_client.c                                  |   66 +-
 net/rxrpc/conn_object.c                                  |   49 -
 net/rxrpc/conn_service.c                                 |    8 
 net/rxrpc/input.c                                        |    4 
 net/rxrpc/local_object.c                                 |   68 +-
 net/rxrpc/net_ns.c                                       |    5 
 net/rxrpc/peer_object.c                                  |   40 -
 net/rxrpc/proc.c                                         |   75 ++
 net/rxrpc/skbuff.c                                       |    1 
 net/sched/Kconfig                                        |    2 
 net/sched/act_connmark.c                                 |    4 
 net/sched/act_ct.c                                       |    8 
 net/sched/act_ctinfo.c                                   |    6 
 net/tipc/discover.c                                      |    5 
 net/tipc/topsrv.c                                        |   20 
 net/xfrm/xfrm_device.c                                   |   15 
 net/xfrm/xfrm_replay.c                                   |    2 
 sound/soc/codecs/hdac_hda.h                              |    4 
 sound/soc/codecs/sgtl5000.c                              |    1 
 sound/soc/intel/boards/bytcht_es8316.c                   |    7 
 sound/soc/soc-pcm.c                                      |    5 
 tools/testing/selftests/bpf/verifier/ref_tracking.c      |   36 +
 183 files changed, 2158 insertions(+), 895 deletions(-)

Ahmed S. Darwish (1):
net: arcnet: Fix RESET flag handling

Al Cooper (2):
mmc: sdhci-brcmstb: Re-organize flags
mmc: sdhci-brcmstb: Enable Clock Gating to save power

Alejandro Concepción Rodríguez (1):
iio: light: apds9960: fix wrong register for gesture gain

Alessandro Astone (2):
binder: Address corner cases in deferred copy and fixup
binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0

Alexandre Belloni (1):
init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash

Aman Dhoot (1):
Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode

Anand Jain (2):
btrfs: free btrfs_path before copying fspath to userspace
btrfs: free btrfs_path before copying subvol info to userspace

Andreas Kemnade (1):

      regulator: twl6030: re-add TWL6032_SUBCLASS

Andrzej Hajda (1):
drm/i915: fix TLB invalidation for Gen12 video and compute engines

Arnd Bergmann (1):
binder: fix pointer cast warning

Baokun Li (1):
ext4: fix use-after-free in ext4_ext_shift_extents

Bart Van Assche (1):
scsi: scsi_debug: Make the READ CAPACITY response compliant with ZBC

Bean Huo (1):
nvme-pci: add NVME_QUIRK_BOGUS_NID for Micron Nitro

Brian King (1):
scsi: ibmvfc: Avoid path failures during live migration

Brian Norris (1):
mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI

Chen Zhongjin (3):
xfrm: Fix ignored return value in xfrm6_init()
iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty

Christian König (1):
drm/amdgpu: always register an MMU notifier for userptr

Christian Langrock (1):
xfrm: replay: Fix ESN wrap around for GSO

Damien Le Moal (1):
zonefs: fix zone report size in __zonefs_io_error()

Dan Carpenter (1):
ceph: fix off by one bugs in unsafe_request_wait()

Daniel Xu (1):
netfilter: conntrack: Fix data-races around ct mark

Danielle Ratson (1):
bridge: switchdev: Notify about VLAN protocol changes

David Howells (3):
rxrpc: Allow list of in-use local UDP endpoints to be viewed in /proc
rxrpc: Use refcount_t rather than atomic_t
rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI-CAN-15975]

Dawei Li (1):
dma-buf: fix racing conflict of dma_heap_add()

Detlev Casanova (1):
ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove

Diana Wang (1):
nfp: fill splittable of devlink_port_attrs correctly

Dominik Haller (1):
ARM: dts: am335x-pcm-953: Define fixed regulators in root node

Emil Renner Berthing (1):
riscv: dts: sifive unleashed: Add PWM controlled LEDs

Enrico Sau (1):

      net: usb: qmi_wwan: add Telit 0x103a composition

Eyal Birger (1):
xfrm: fix "disable_policy" on ipv4 early demux

Fabio Estevam (1):
ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties

Felix Fietkau (1):
netfilter: flowtable_offload: add missing locking

Gaosheng Cui (1):
audit: fix undefined behavior in bit shift for AUDIT_BIT

Gleb Mazovetskiy (1):
tcp: configurable source port perturb table size

Greg Kroah-Hartman (2):
lib/vdso: use "grep -E" instead of "egrep"
Linux 5.10.157

Hans de Goede (7):
platform/x86: touchscreen_dmi: Add info for the RCA Cambio W101 v2 2-in-1
drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017)
ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01
Input: goodix - try resetting the controller when no config is set
Input: soc_button_array - add use_low_level_irq module parameter
Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017)

Heiko Carstens (1):
s390/crashdump: fix TOD programmable field size

Herbert Xu (1):
af_key: Fix send_acquire race with pfkey_register

Ido Schimmel (1):
bridge: switchdev: Fix memory leaks when changing VLAN protocol

Jaco Coetzee (1):
nfp: add port from netdev validation for EEPROM access

Jakob Unterwurzacher (1):
arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency

Jason A. Donenfeld (2):
wifi: airo: do not assign -1 to unsigned char
MIPS: pic32: treat port as signed integer

Johannes Weiner (1):
mm: vmscan: fix extreme overreclaim and swap floods

Jonas Jelonek (1):
wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support

Josef Bacik (1):
btrfs: free btrfs_path before copying root refs to userspace

Jozsef Kadlecsik (1):
netfilter: ipset: Limit the maximal range of consecutive elements to add/delete

Junxiao Chang (1):
ASoC: hdac_hda: fix hda pcm buffer overflow issue

Kai-Heng Feng (1):
platform/x86: hp-wmi: Ignore Smart Experience App event

Kenneth Lee (1):
ceph: Use kcalloc for allocating multiple elements

Kuniyuki Iwashima (2):
arm64/syscall: Include asm/ptrace.h in syscall_wrapper header. dccp/tcp: Reset saddr on failure after inet6?_hash_connect().

Lars-Peter Clausen (1):
iio: ms5611: Simplify IO callback parameters

Leo Savernik (1):
nvme: add a bogus subsystem NQN quirk for Micron MTFDKBA2T0TFH

Leon Romanovsky (1):
net: liquidio: simplify if expression

Lin Ma (1):
nfc/nci: fix race with opening and closing

Liu Jian (1):
net: ethernet: mtk_eth_soc: fix error handling in mtk_open()

Liu Shixin (1):
NFC: nci: fix memory leak in nci_rx_data_packet()

Luiz Capitulino (4):
genirq/msi: Shutdown managed interrupts with unsatifiable affinities
genirq: Always limit the affinity to online CPUs irqchip/gic-v3: Always trust the managed affinity provided by the core code
genirq: Take the proposed affinity at face value if force==true

Lukas Wunner (1):

      serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()

Lyude Paul (1):
drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN

Marek Marczykowski-Górecki (1):
xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too

Marek Szyprowski (1):
usb: dwc3: exynos: Fix remove() function

Martin Faltesek (2):
nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
nfc: st-nci: fix memory leaks in EVT_TRANSACTION

Maxim Levitsky (2):
KVM: x86: nSVM: leave nested mode on vCPU free
KVM: x86: remove exit_int_info warning in svm_handle_exit

Michael Grzeschik (2):
ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
usb: dwc3: gadget: conditionally remove requests

Michael Kelley (2):
scsi: storvsc: Fix handling of srb_status and capacity change events x86/ioremap: Fix page aligned size calculation in __ioremap_caller()

Miklos Szeredi (1):
fuse: lock inode unconditionally in fuse_fallocate()

Mikulas Patocka (2):
dm integrity: flush the journal on suspend
dm integrity: clear the journal on suspend

Mitja Spes (1):
iio: pressure: ms5611: fixed value compensation bug

Moshe Shemesh (2):
net/mlx5: Fix FW tracer timestamp calculation
net/mlx5: Fix handling of entry refcount when command is not issued to FW

Mukesh Ojha (1):
gcov: clang: fix the buffer overflow issue

Nathan Chancellor (1):
RISC-V: vdso: Do not add missing symbols to version section in linker script

Nicolas Cavallari (1):
wifi: mac80211: Fix ack frame idr leak when mesh has no route

Niklas Cassel (1):
ata: libata-core: do not issue non-internal commands once EH is pending

Pawel Laszczak (1):
usb: cdns3: Add support for DRD CDNSP

Peter Kosyh (1):
net/mlx4: Check retval of mlx4_bitmap_init

Phil Turnbull (4):
wifi: wilc1000: validate pairwise and authentication suite offsets
wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute
wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_CHANNEL_LIST attribute
wifi: wilc1000: validate number of channels

Randy Dunlap (1):
nios2: add FORCE for vmlinuz.gz

Richard Fitzgerald (1):
ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open()

Robin Murphy (1):
gpu: host1x: Avoid trying to use GART on Tegra20

Sabrina Dubroca (1):
Revert "net: macsec: report real_dev features when HW offloading is enabled"

Samuel Holland (1):
bus: sunxi-rsb: Support atomic transfers

Sean Nyekjaer (1):
spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run

Simon Rettberg (1):
drm/display: Don't assume dual mode adaptors support i2c sub-addressing

Stefan Haberland (1):
s390/dasd: fix no record found for raw_track_access

Thinh Nguyen (2):
usb: dwc3: gadget: Return -ESHUTDOWN on ep disable
usb: dwc3: gadget: Clear ep descriptor last

Todd Kjos (3):
binder: avoid potential data leakage when copying txn
binder: read pre-translated fds from sender buffer
binder: defer copies of pre-patched txn data

Vishwanath Pai (1):
netfilter: ipset: regression in ip_set_hash_ip.c

Vladimir Oltean (3):

      net: enetc: manage ENETC_F_QBV in priv->active_offloads only when enabled
      net: enetc: cache accesses to &priv->si->hw
      net: enetc: preserve TX ring priority across reconfiguration

Wang Hai (2):
net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
arcnet: fix potential memory leak in com20020_probe()

Wenchao Hao (1):
ata: libata-scsi: simplify __ata_scsi_queuecmd()

Xin Long (3):
tipc: set con sock in tipc_conn_alloc
tipc: add an extra conn_get in tipc_conn_alloc
net: sched: allow act_ct to be built without NF_NAT

Xiongfeng Wang (2):
spi: dw-dma: decrease reference count in dw_spi_dma_init_mfld() platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()

Xiubo Li (9):
ceph: do not update snapshot context when there is no new snapshot
ceph: avoid putting the realm twice when decoding snaps fails
ceph: make ceph_create_session_msg a global symbol
ceph: make iterate_sessions a global symbol
ceph: flush mdlog before umounting
ceph: flush the mdlog before waiting on unsafe reqs
ceph: put the requests/sessions when it fails to alloc memory
ceph: fix possible NULL pointer dereference for req->r_session
ceph: fix NULL pointer dereference for req->r_session

Yang Yingliang (7):
scsi: scsi_transport_sas: Fix error handling in sas_phy_add()
regulator: core: fix UAF in destroy_regulator()
tee: optee: fix possible memory leak in optee_register_device()
net: pch_gbe: fix pci device refcount leak while module exiting
Drivers: hv: vmbus: fix double free in the error path of vmbus_add_channel_work()
Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register()
bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending()

Youlin Li (1):
selftests/bpf: Add verifier test for release_reference()

Yu Kuai (1):
block, bfq: fix null pointer dereference in bfq_bio_bfqg()

Yu Liao (1):
net: thunderx: Fix the ACPI memory leak

YueHaibing (2):
macsec: Fix invalid error code set
tipc: check skb_linearize() return value in tipc_disc_rcv()

Zeng Heng (1):
regulator: core: fix kobject release warning and memory leak in regulator_register()

Zhang Changzhong (2):
net/qla3xxx: fix potential memleak in ql3xxx_send()
sfc: fix potential memleak in __ef100_hard_start_xmit()

Zhen Lei (1):
btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs()

Zheng Yongjun (1):
ARM: mxs: fix memory leak in mxs_machine_init()

Zhengchao Shao (1):
9p/fd: fix issue of list_del corruption in p9_fd_cancel()

Ziyang Xuan (1):
ipv4: Fix error return code in fib_table_insert()

ruanjinjie (1):
xen/platform-pci: add missing free_irq() in error path

taozhang (1):
wifi: mac80211: fix memory free error when registering wiphy fail

author maintainer
#1 lore raw
Makefile +1 -1
index 166f87bdc190..bf22df29c4d8 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 156
+SUBLEVEL = 157
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/arm/boot/dts/am335x-pcm-953.dtsi +13 -15
index 6c547c83e5dd..fc465f0d7e18 100644
@@ -12,22 +12,20 @@ / {
 	compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx";
 
 	/* Power */
-	regulators {
-		vcc3v3: fixedregulator@1 {
-			compatible = "regulator-fixed";
-			regulator-name = "vcc3v3";
-			regulator-min-microvolt = <3300000>;
-			regulator-max-microvolt = <3300000>;
-			regulator-boot-on;
-		};
+	vcc3v3: fixedregulator1 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+	};
 
-		vcc1v8: fixedregulator@2 {
-			compatible = "regulator-fixed";
-			regulator-name = "vcc1v8";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
-			regulator-boot-on;
-		};
+	vcc1v8: fixedregulator2 {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc1v8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		regulator-boot-on;
 	};
 
 	/* User IO */
arch/arm/boot/dts/at91sam9g20ek_common.dtsi +9 -0
index ca03685f0f08..4783e657b4cb 100644
@@ -39,6 +39,13 @@ pinctrl_pck0_as_mck: pck0_as_mck {
 
 				};
 
+				usb1 {
+					pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
+						atmel,pins =
+							<AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PC5 GPIO */
+					};
+				};
+
 				mmc0_slot1 {
 					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
 						atmel,pins =
@@ -84,6 +91,8 @@ macb0: ethernet@fffc4000 {
 			};
 
 			usb1: gadget@fffa4000 {
+				pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
+				pinctrl-names = "default";
 				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
 				status = "okay";
 			};
arch/arm/boot/dts/imx6q-prti6q.dts +2 -2
index b4605edfd2ab..d8fa83effd63 100644
@@ -364,8 +364,8 @@ wifi {
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_wifi>;
 		interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>;
-		ref-clock-frequency = "38400000";
-		tcxo-clock-frequency = "19200000";
+		ref-clock-frequency = <38400000>;
+		tcxo-clock-frequency = <19200000>;
 	};
 };
 
arch/arm/mach-mxs/mach-mxs.c +3 -1
index c109f47e9cbc..a687e83ad604 100644
@@ -387,8 +387,10 @@ static void __init mxs_machine_init(void)
 
 	root = of_find_node_by_path("/");
 	ret = of_property_read_string(root, "model", &soc_dev_attr->machine);
-	if (ret)
+	if (ret) {
+		kfree(soc_dev_attr);
 		return;
+	}
 
 	soc_dev_attr->family = "Freescale MXS Family";
 	soc_dev_attr->soc_id = mxs_get_soc_id();
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +1 -1
index a8d363568fd6..3fc761c8d550 100644
@@ -203,7 +203,7 @@ &sdmmc {
 	cap-sd-highspeed;
 	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
 	disable-wp;
-	max-frequency = <150000000>;
+	max-frequency = <40000000>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
 	vmmc-supply = <&vcc3v3_baseboard>;
arch/arm64/include/asm/syscall_wrapper.h +1 -1
index b383b4802a7b..d30217c21eff 100644
@@ -8,7 +8,7 @@
 #ifndef __ASM_SYSCALL_WRAPPER_H
 #define __ASM_SYSCALL_WRAPPER_H
 
-struct pt_regs;
+#include <asm/ptrace.h>
 
 #define SC_ARM64_REGS_TO_ARGS(x, ...)				\
 	__MAP(x,__SC_ARGS					\
arch/mips/include/asm/fw/fw.h +1 -1
index d0ef8b4892bb..d0494ce4b337 100644
@@ -26,6 +26,6 @@ extern char *fw_getcmdline(void);
 extern void fw_meminit(void);
 extern char *fw_getenv(char *name);
 extern unsigned long fw_getenvl(char *name);
-extern void fw_init_early_console(char port);
+extern void fw_init_early_console(void);
 
 #endif /* __ASM_FW_H_ */
arch/mips/pic32/pic32mzda/early_console.c +6 -7
index 25372e62783b..3cd1b408fa1c 100644
@@ -27,7 +27,7 @@
 #define U_BRG(x)	(UART_BASE(x) + 0x40)
 
 static void __iomem *uart_base;
-static char console_port = -1;
+static int console_port = -1;
 
 static int __init configure_uart_pins(int port)
 {
@@ -47,7 +47,7 @@ static int __init configure_uart_pins(int port)
 	return 0;
 }
 
-static void __init configure_uart(char port, int baud)
+static void __init configure_uart(int port, int baud)
 {
 	u32 pbclk;
 
@@ -60,7 +60,7 @@ static void __init configure_uart(char port, int baud)
 		     uart_base + PIC32_SET(U_STA(port)));
 }
 
-static void __init setup_early_console(char port, int baud)
+static void __init setup_early_console(int port, int baud)
 {
 	if (configure_uart_pins(port))
 		return;
@@ -130,16 +130,15 @@ static int __init get_baud_from_cmdline(char *arch_cmdline)
 	return baud;
 }
 
-void __init fw_init_early_console(char port)
+void __init fw_init_early_console(void)
 {
 	char *arch_cmdline = pic32_getcmdline();
-	int baud = -1;
+	int baud, port;
 
 	uart_base = ioremap(PIC32_BASE_UART, 0xc00);
 
 	baud = get_baud_from_cmdline(arch_cmdline);
-	if (port == -1)
-		port = get_port_from_cmdline(arch_cmdline);
+	port = get_port_from_cmdline(arch_cmdline);
 
 	if (port == -1)
 		port = EARLY_CONSOLE_PORT;
arch/mips/pic32/pic32mzda/init.c +1 -1
index f232c77ff526..488c0bee7ebf 100644
@@ -60,7 +60,7 @@ void __init plat_mem_setup(void)
 		strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);
 
 #ifdef CONFIG_EARLY_PRINTK
-	fw_init_early_console(-1);
+	fw_init_early_console();
 #endif
 	pic32_config_init();
 }
arch/nios2/boot/Makefile +1 -1
index 37dfc7e584bc..0b704c1f379f 100644
@@ -20,7 +20,7 @@ $(obj)/vmlinux.bin: vmlinux FORCE
 $(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE
 	$(call if_changed,gzip)
 
-$(obj)/vmImage: $(obj)/vmlinux.gz
+$(obj)/vmImage: $(obj)/vmlinux.gz FORCE
 	$(call if_changed,uimage)
 	@$(kecho) 'Kernel: $@ is ready'
 
arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts +38 -0
index 60846e88ae4b..dddabfbbc7a9 100644
@@ -3,6 +3,8 @@
 
 #include "fu540-c000.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pwm/pwm.h>
 
 /* Clock frequency (in Hz) of the PCB crystal for rtcclk */
 #define RTCCLK_FREQ		1000000
@@ -46,6 +48,42 @@ gpio-restart {
 		compatible = "gpio-restart";
 		gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
 	};
+
+	led-controller {
+		compatible = "pwm-leds";
+
+		led-d1 {
+			pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>;
+			active-low;
+			color = <LED_COLOR_ID_GREEN>;
+			max-brightness = <255>;
+			label = "d1";
+		};
+
+		led-d2 {
+			pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>;
+			active-low;
+			color = <LED_COLOR_ID_GREEN>;
+			max-brightness = <255>;
+			label = "d2";
+		};
+
+		led-d3 {
+			pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>;
+			active-low;
+			color = <LED_COLOR_ID_GREEN>;
+			max-brightness = <255>;
+			label = "d3";
+		};
+
+		led-d4 {
+			pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>;
+			active-low;
+			color = <LED_COLOR_ID_GREEN>;
+			max-brightness = <255>;
+			label = "d4";
+		};
+	};
 };
 
 &uart0 {
arch/riscv/kernel/vdso/Makefile +3 -0
index 926ab3960f9e..c92b55a0ec1c 100644
@@ -28,6 +28,9 @@ obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
 
 obj-y += vdso.o vdso-syms.o
 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
+ifneq ($(filter vgettimeofday, $(vdso-syms)),)
+CPPFLAGS_vdso.lds += -DHAS_VGETTIMEOFDAY
+endif
 
 # Disable -pg to prevent insert call site
 CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
arch/riscv/kernel/vdso/vdso.lds.S +2 -0
index e6f558bca71b..b3e58402c342 100644
@@ -64,9 +64,11 @@ VERSION
 	LINUX_4.15 {
 	global:
 		__vdso_rt_sigreturn;
+#ifdef HAS_VGETTIMEOFDAY
 		__vdso_gettimeofday;
 		__vdso_clock_gettime;
 		__vdso_clock_getres;
+#endif
 		__vdso_getcpu;
 		__vdso_flush_icache;
 	local: *;
arch/s390/kernel/crash_dump.c +1 -1
index 76762dc67ca9..f292c3e10671 100644
@@ -44,7 +44,7 @@ struct save_area {
 	u64 fprs[16];
 	u32 fpc;
 	u32 prefix;
-	u64 todpreg;
+	u32 todpreg;
 	u64 timer;
 	u64 todcmp;
 	u64 vxrs_low[16];
arch/x86/kvm/svm/svm.c +1 -15
index 2b7528821577..c34ba034ca11 100644
@@ -305,12 +305,6 @@ int svm_set_efer(struct kvm_vcpu *vcpu, u64 efer)
 	return 0;
 }
 
-static int is_external_interrupt(u32 info)
-{
-	info &= SVM_EVTINJ_TYPE_MASK | SVM_EVTINJ_VALID;
-	return info == (SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR);
-}
-
 static u32 svm_get_interrupt_shadow(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
@@ -1357,6 +1351,7 @@ static void svm_free_vcpu(struct kvm_vcpu *vcpu)
 	 */
 	svm_clear_current_vmcb(svm->vmcb);
 
+	svm_leave_nested(vcpu);
 	svm_free_nested(svm);
 
 	__free_page(pfn_to_page(__sme_clr(svm->vmcb_pa) >> PAGE_SHIFT));
@@ -3115,15 +3110,6 @@ static int handle_exit(struct kvm_vcpu *vcpu, fastpath_t exit_fastpath)
 		return 0;
 	}
 
-	if (is_external_interrupt(svm->vmcb->control.exit_int_info) &&
-	    exit_code != SVM_EXIT_EXCP_BASE + PF_VECTOR &&
-	    exit_code != SVM_EXIT_NPF && exit_code != SVM_EXIT_TASK_SWITCH &&
-	    exit_code != SVM_EXIT_INTR && exit_code != SVM_EXIT_NMI)
-		printk(KERN_ERR "%s: unexpected exit_int_info 0x%x "
-		       "exit_code 0x%x\n",
-		       __func__, svm->vmcb->control.exit_int_info,
-		       exit_code);
-
 	if (exit_fastpath != EXIT_FASTPATH_NONE)
 		return 1;
 
arch/x86/mm/ioremap.c +7 -1
index 91e61dbba3e0..88cb537ccdea 100644
@@ -216,9 +216,15 @@ __ioremap_caller(resource_size_t phys_addr, unsigned long size,
 	 * Mappings have to be page-aligned
 	 */
 	offset = phys_addr & ~PAGE_MASK;
-	phys_addr &= PHYSICAL_PAGE_MASK;
+	phys_addr &= PAGE_MASK;
 	size = PAGE_ALIGN(last_addr+1) - phys_addr;
 
+	/*
+	 * Mask out any bits not part of the actual physical
+	 * address, like memory encryption bits.
+	 */
+	phys_addr &= PHYSICAL_PAGE_MASK;
+
 	retval = memtype_reserve(phys_addr, (u64)phys_addr + size,
 						pcm, &new_pcm);
 	if (retval) {
block/bfq-cgroup.c +4 -0
index be6733558b83..badb90352bf3 100644
@@ -611,6 +611,10 @@ struct bfq_group *bfq_bio_bfqg(struct bfq_data *bfqd, struct bio *bio)
 	struct bfq_group *bfqg;
 
 	while (blkg) {
+		if (!blkg->online) {
+			blkg = blkg->parent;
+			continue;
+		}
 		bfqg = blkg_to_bfqg(blkg);
 		if (bfqg->online) {
 			bio_associate_blkg_from_css(bio, &blkg->blkcg->css);
drivers/android/binder.c +383 -54

591 lines not on this page · raw message

drivers/ata/libata-scsi.c +31 -24

75 lines not on this page · raw message

drivers/bus/sunxi-rsb.c +21 -8
index 9b1a5e62417c..f8c29b888e6b 100644
@@ -268,6 +268,9 @@ EXPORT_SYMBOL_GPL(sunxi_rsb_driver_register);
 /* common code that starts a transfer */
 static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 {
+	u32 int_mask, status;
+	bool timeout;
+
 	if (readl(rsb->regs + RSB_CTRL) & RSB_CTRL_START_TRANS) {
 		dev_dbg(rsb->dev, "RSB transfer still in progress\n");
 		return -EBUSY;
@@ -275,13 +278,23 @@ static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 
 	reinit_completion(&rsb->complete);
 
-	writel(RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER,
-	       rsb->regs + RSB_INTE);
+	int_mask = RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER;
+	writel(int_mask, rsb->regs + RSB_INTE);
 	writel(RSB_CTRL_START_TRANS | RSB_CTRL_GLOBAL_INT_ENB,
 	       rsb->regs + RSB_CTRL);
 
-	if (!wait_for_completion_io_timeout(&rsb->complete,
-					    msecs_to_jiffies(100))) {
+	if (irqs_disabled()) {
+		timeout = readl_poll_timeout_atomic(rsb->regs + RSB_INTS,
+						    status, (status & int_mask),
+						    10, 100000);
+		writel(status, rsb->regs + RSB_INTS);
+	} else {
+		timeout = !wait_for_completion_io_timeout(&rsb->complete,
+							  msecs_to_jiffies(100));
+		status = rsb->status;
+	}
+
+	if (timeout) {
 		dev_dbg(rsb->dev, "RSB timeout\n");
 
 		/* abort the transfer */
@@ -293,18 +306,18 @@ static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb)
 		return -ETIMEDOUT;
 	}
 
-	if (rsb->status & RSB_INTS_LOAD_BSY) {
+	if (status & RSB_INTS_LOAD_BSY) {
 		dev_dbg(rsb->dev, "RSB busy\n");
 		return -EBUSY;
 	}
 
-	if (rsb->status & RSB_INTS_TRANS_ERR) {
-		if (rsb->status & RSB_INTS_TRANS_ERR_ACK) {
+	if (status & RSB_INTS_TRANS_ERR) {
+		if (status & RSB_INTS_TRANS_ERR_ACK) {
 			dev_dbg(rsb->dev, "RSB slave nack\n");
 			return -EINVAL;
 		}
 
-		if (rsb->status & RSB_INTS_TRANS_ERR_DATA) {
+		if (status & RSB_INTS_TRANS_ERR_DATA) {
 			dev_dbg(rsb->dev, "RSB transfer data error\n");
 			return -EIO;
 		}
drivers/dma-buf/dma-heap.c +15 -13
index 798f86fcd50f..dcbb023acc45 100644
@@ -209,18 +209,6 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
 		return ERR_PTR(-EINVAL);
 	}
 
-	/* check the name is unique */
-	mutex_lock(&heap_list_lock);
-	list_for_each_entry(h, &heap_list, list) {
-		if (!strcmp(h->name, exp_info->name)) {
-			mutex_unlock(&heap_list_lock);
-			pr_err("dma_heap: Already registered heap named %s\n",
-			       exp_info->name);
-			return ERR_PTR(-EINVAL);
-		}
-	}
-	mutex_unlock(&heap_list_lock);
-
 	heap = kzalloc(sizeof(*heap), GFP_KERNEL);
 	if (!heap)
 		return ERR_PTR(-ENOMEM);
@@ -259,13 +247,27 @@ struct dma_heap *dma_heap_add(const struct dma_heap_export_info *exp_info)
 		err_ret = ERR_CAST(dev_ret);
 		goto err2;
 	}
-	/* Add heap to the list */
+
 	mutex_lock(&heap_list_lock);
+	/* check the name is unique */
+	list_for_each_entry(h, &heap_list, list) {
+		if (!strcmp(h->name, exp_info->name)) {
+			mutex_unlock(&heap_list_lock);
+			pr_err("dma_heap: Already registered heap named %s\n",
+			       exp_info->name);
+			err_ret = ERR_PTR(-EINVAL);
+			goto err3;
+		}
+	}
+
+	/* Add heap to the list */
 	list_add(&heap->list, &heap_list);
 	mutex_unlock(&heap_list_lock);
 
 	return heap;
 
+err3:
+	device_destroy(dma_heap_class, heap->heap_devt);
 err2:
 	cdev_del(&heap->heap_cdev);
 err1:
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +3 -5
index e8c76bd8c501..6aa9fd9cb83b 100644
@@ -341,11 +341,9 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
 	if (r)
 		goto release_object;
 
-	if (args->flags & AMDGPU_GEM_USERPTR_REGISTER) {
-		r = amdgpu_mn_register(bo, args->addr);
-		if (r)
-			goto release_object;
-	}
+	r = amdgpu_mn_register(bo, args->addr);
+	if (r)
+		goto release_object;
 
 	if (args->flags & AMDGPU_GEM_USERPTR_VALIDATE) {
 		r = amdgpu_ttm_tt_get_user_pages(bo, bo->tbo.ttm->pages);
drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c +2 -1
index 8f362e8c1787..be6d43c9979c 100644
@@ -361,7 +361,8 @@ static const struct dce_audio_registers audio_regs[] = {
 	audio_regs(2),
 	audio_regs(3),
 	audio_regs(4),
-	audio_regs(5)
+	audio_regs(5),
+	audio_regs(6),
 };
 
 #define DCE120_AUD_COMMON_MASK_SH_LIST(mask_sh)\
drivers/gpu/drm/drm_dp_dual_mode_helper.c +29 -22

91 lines not on this page · raw message

drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
index 083273736c83..ca0fefeaab20 100644
@@ -128,6 +128,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Acer Switch V 10 (SW5-017) */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* Anbernic Win600 */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Anbernic"),
drivers/gpu/drm/i915/gt/intel_gt.c +4 -0
index a33887f2464f..5f86d9aacb8a 100644
@@ -745,6 +745,10 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt)
 		if (!i915_mmio_reg_offset(rb.reg))
 			continue;
 
+		if (INTEL_GEN(i915) == 12 && (engine->class == VIDEO_DECODE_CLASS ||
+		    engine->class == VIDEO_ENHANCEMENT_CLASS))
+			rb.bit = _MASKED_BIT_ENABLE(rb.bit);
+
 		intel_uncore_write_fw(uncore, rb.reg, rb.bit);
 	}
 
drivers/gpu/drm/tegra/drm.c +4 -0
index 2c6ebc328b24..318692ad9680 100644
@@ -1042,6 +1042,10 @@ static bool host1x_drm_wants_iommu(struct host1x_device *dev)
 	struct host1x *host1x = dev_get_drvdata(dev->dev.parent);
 	struct iommu_domain *domain;
 
+	/* Our IOMMU usage policy doesn't currently play well with GART */
+	if (of_machine_is_compatible("nvidia,tegra20"))
+		return false;
+
 	/*
 	 * If the Tegra DRM clients are backed by an IOMMU, push buffers are
 	 * likely to be allocated beyond the 32-bit boundary if sufficient
drivers/gpu/host1x/dev.c +4 -0
index 8659558b518d..9f674a8d5009 100644
@@ -198,6 +198,10 @@ static void host1x_setup_sid_table(struct host1x *host)
 
 static bool host1x_wants_iommu(struct host1x *host1x)
 {
+	/* Our IOMMU usage policy doesn't currently play well with GART */
+	if (of_machine_is_compatible("nvidia,tegra20"))
+		return false;
+
 	/*
 	 * If we support addressing a maximum of 32 bits of physical memory
 	 * and if the host1x firewall is enabled, there's no need to enable
drivers/hv/channel_mgmt.c +5 -1
index 10188b1a6a08..5b902adb0d1b 100644
@@ -501,13 +501,17 @@ static void vmbus_add_channel_work(struct work_struct *work)
 	 * Add the new device to the bus. This will kick off device-driver
 	 * binding which eventually invokes the device driver's AddDevice()
 	 * method.
+	 *
+	 * If vmbus_device_register() fails, the 'device_obj' is freed in
+	 * vmbus_device_release() as called by device_unregister() in the
+	 * error path of vmbus_device_register(). In the outside error
+	 * path, there's no need to free it.
 	 */
 	ret = vmbus_device_register(newchannel->device_obj);
 
 	if (ret != 0) {
 		pr_err("unable to add child device object (relid %d)\n",
 			newchannel->offermsg.child_relid);
-		kfree(newchannel->device_obj);
 		goto err_deq_chan;
 	}
 
drivers/hv/vmbus_drv.c +1 -0
index 514279dac7cb..e99400f3ae1d 100644
@@ -2020,6 +2020,7 @@ int vmbus_device_register(struct hv_device *child_device_obj)
 	ret = device_register(&child_device_obj->device);
 	if (ret) {
 		pr_err("Unable to register child device\n");
+		put_device(&child_device_obj->device);
 		return ret;
 	}
 
drivers/iio/industrialio-sw-trigger.c +5 -1
index 9ae793a70b8b..a7714d32a641 100644
@@ -58,8 +58,12 @@ int iio_register_sw_trigger_type(struct iio_sw_trigger_type *t)
 
 	t->group = configfs_register_default_group(iio_triggers_group, t->name,
 						&iio_trigger_type_group_type);
-	if (IS_ERR(t->group))
+	if (IS_ERR(t->group)) {
+		mutex_lock(&iio_trigger_types_lock);
+		list_del(&t->list);
+		mutex_unlock(&iio_trigger_types_lock);
 		ret = PTR_ERR(t->group);
+	}
 
 	return ret;
 }
drivers/iio/light/apds9960.c +6 -6
index 9afb3fcc74e6..4a7ccf268ebf 100644
@@ -53,9 +53,6 @@
 #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT	2
 
 #define APDS9960_REG_CONFIG_2	0x90
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK	0x60
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT	5
-
 #define APDS9960_REG_ID		0x92
 
 #define APDS9960_REG_STATUS	0x93
@@ -76,6 +73,9 @@
 #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT	6
 
 #define APDS9960_REG_GCONF_2	0xa3
+#define APDS9960_REG_GCONF_2_GGAIN_MASK			0x60
+#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT		5
+
 #define APDS9960_REG_GOFFSET_U	0xa4
 #define APDS9960_REG_GOFFSET_D	0xa5
 #define APDS9960_REG_GPULSE	0xa6
@@ -395,9 +395,9 @@ static int apds9960_set_pxs_gain(struct apds9960_data *data, int val)
 			}
 
 			ret = regmap_update_bits(data->regmap,
-				APDS9960_REG_CONFIG_2,
-				APDS9960_REG_CONFIG_2_GGAIN_MASK,
-				idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
+				APDS9960_REG_GCONF_2,
+				APDS9960_REG_GCONF_2_GGAIN_MASK,
+				idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
 			if (!ret)
 				data->pxs_gain = idx;
 			mutex_unlock(&data->lock);
drivers/iio/pressure/ms5611.h +7 -11
index bc06271fa38b..5e2d2d4d87b5 100644
@@ -25,13 +25,6 @@ enum {
 	MS5607,
 };
 
-struct ms5611_chip_info {
-	u16 prom[MS5611_PROM_WORDS_NB];
-
-	int (*temp_and_pressure_compensate)(struct ms5611_chip_info *chip_info,
-					    s32 *temp, s32 *pressure);
-};
-
 /*
  * OverSampling Rate descriptor.
  * Warning: cmd MUST be kept aligned on a word boundary (see
@@ -50,12 +43,15 @@ struct ms5611_state {
 	const struct ms5611_osr *pressure_osr;
 	const struct ms5611_osr *temp_osr;
 
-	int (*reset)(struct device *dev);
-	int (*read_prom_word)(struct device *dev, int index, u16 *word);
-	int (*read_adc_temp_and_pressure)(struct device *dev,
+	u16 prom[MS5611_PROM_WORDS_NB];
+
+	int (*reset)(struct ms5611_state *st);
+	int (*read_prom_word)(struct ms5611_state *st, int index, u16 *word);
+	int (*read_adc_temp_and_pressure)(struct ms5611_state *st,
 					  s32 *temp, s32 *pressure);
 
-	struct ms5611_chip_info *chip_info;
+	int (*compensate_temp_and_pressure)(struct ms5611_state *st, s32 *temp,
+					  s32 *pressure);
 	struct regulator *vdd;
 };
 
drivers/iio/pressure/ms5611_core.c +29 -27

118 lines not on this page · raw message

drivers/iio/pressure/ms5611_i2c.c +4 -7
index 7c04f730430c..cccc40f7df0b 100644
@@ -20,17 +20,15 @@
 
 #include "ms5611.h"
 
-static int ms5611_i2c_reset(struct device *dev)
+static int ms5611_i2c_reset(struct ms5611_state *st)
 {
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
-
 	return i2c_smbus_write_byte(st->client, MS5611_RESET);
 }
 
-static int ms5611_i2c_read_prom_word(struct device *dev, int index, u16 *word)
+static int ms5611_i2c_read_prom_word(struct ms5611_state *st, int index,
+				     u16 *word)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = i2c_smbus_read_word_swapped(st->client,
 			MS5611_READ_PROM_WORD + (index << 1));
@@ -57,11 +55,10 @@ static int ms5611_i2c_read_adc(struct ms5611_state *st, s32 *val)
 	return 0;
 }
 
-static int ms5611_i2c_read_adc_temp_and_pressure(struct device *dev,
+static int ms5611_i2c_read_adc_temp_and_pressure(struct ms5611_state *st,
 						 s32 *temp, s32 *pressure)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 	const struct ms5611_osr *osr = st->temp_osr;
 
 	ret = i2c_smbus_write_byte(st->client, osr->cmd);
drivers/iio/pressure/ms5611_spi.c +7 -10
index f7743ee3318f..3039fe8aa2a2 100644
@@ -15,18 +15,17 @@
 
 #include "ms5611.h"
 
-static int ms5611_spi_reset(struct device *dev)
+static int ms5611_spi_reset(struct ms5611_state *st)
 {
 	u8 cmd = MS5611_RESET;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	return spi_write_then_read(st->client, &cmd, 1, NULL, 0);
 }
 
-static int ms5611_spi_read_prom_word(struct device *dev, int index, u16 *word)
+static int ms5611_spi_read_prom_word(struct ms5611_state *st, int index,
+				     u16 *word)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = spi_w8r16be(st->client, MS5611_READ_PROM_WORD + (index << 1));
 	if (ret < 0)
@@ -37,11 +36,10 @@ static int ms5611_spi_read_prom_word(struct device *dev, int index, u16 *word)
 	return 0;
 }
 
-static int ms5611_spi_read_adc(struct device *dev, s32 *val)
+static int ms5611_spi_read_adc(struct ms5611_state *st, s32 *val)
 {
 	int ret;
 	u8 buf[3] = { MS5611_READ_ADC };
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 
 	ret = spi_write_then_read(st->client, buf, 1, buf, 3);
 	if (ret < 0)
@@ -52,11 +50,10 @@ static int ms5611_spi_read_adc(struct device *dev, s32 *val)
 	return 0;
 }
 
-static int ms5611_spi_read_adc_temp_and_pressure(struct device *dev,
+static int ms5611_spi_read_adc_temp_and_pressure(struct ms5611_state *st,
 						 s32 *temp, s32 *pressure)
 {
 	int ret;
-	struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev));
 	const struct ms5611_osr *osr = st->temp_osr;
 
 	/*
@@ -68,7 +65,7 @@ static int ms5611_spi_read_adc_temp_and_pressure(struct device *dev,
 		return ret;
 
 	usleep_range(osr->conv_usec, osr->conv_usec + (osr->conv_usec / 10UL));
-	ret = ms5611_spi_read_adc(dev, temp);
+	ret = ms5611_spi_read_adc(st, temp);
 	if (ret < 0)
 		return ret;
 
@@ -78,7 +75,7 @@ static int ms5611_spi_read_adc_temp_and_pressure(struct device *dev,
 		return ret;
 
 	usleep_range(osr->conv_usec, osr->conv_usec + (osr->conv_usec / 10UL));
-	return ms5611_spi_read_adc(dev, pressure);
+	return ms5611_spi_read_adc(st, pressure);
 }
 
 static int ms5611_spi_probe(struct spi_device *spi)
drivers/input/misc/soc_button_array.c +13 -1
index efffcf0ebd3b..31c02c2019c1 100644
@@ -18,6 +18,10 @@
 #include <linux/gpio.h>
 #include <linux/platform_device.h>
 
+static bool use_low_level_irq;
+module_param(use_low_level_irq, bool, 0444);
+MODULE_PARM_DESC(use_low_level_irq, "Use low-level triggered IRQ instead of edge triggered");
+
 struct soc_button_info {
 	const char *name;
 	int acpi_index;
@@ -73,6 +77,13 @@ static const struct dmi_system_id dmi_use_low_level_irq[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
 		},
 	},
+	{
+		/* Acer Switch V 10 SW5-017, same issue as Acer Switch 10 SW5-012. */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "SW5-017"),
+		},
+	},
 	{
 		/*
 		 * Acer One S1003. _LID method messes with power-button GPIO
@@ -164,7 +175,8 @@ soc_button_device_create(struct platform_device *pdev,
 		}
 
 		/* See dmi_use_low_level_irq[] comment */
-		if (!autorepeat && dmi_check_system(dmi_use_low_level_irq)) {
+		if (!autorepeat && (use_low_level_irq ||
+				    dmi_check_system(dmi_use_low_level_irq))) {
 			irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW);
 			gpio_keys[n_buttons].irq = irq;
 			gpio_keys[n_buttons].gpio = -ENOENT;
drivers/input/mouse/synaptics.c +1 -0
index 82577095e175..f1013b950d57 100644
@@ -191,6 +191,7 @@ static const char * const smbus_pnp_ids[] = {
 	"SYN3221", /* HP 15-ay000 */
 	"SYN323d", /* HP Spectre X360 13-w013dx */
 	"SYN3257", /* HP Envy 13-ad105ng */
+	"SYN3286", /* HP Laptop 15-da3001TU */
 	NULL
 };
 
drivers/input/touchscreen/goodix.c +11 -0
index b23abde5d7db..b7f87ad4b9a9 100644
@@ -1059,6 +1059,7 @@ static int goodix_configure_dev(struct goodix_ts_data *ts)
 	input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0);
 	input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0);
 
+retry_read_config:
 	/* Read configuration and apply touchscreen parameters */
 	goodix_read_config(ts);
 
@@ -1066,6 +1067,16 @@ static int goodix_configure_dev(struct goodix_ts_data *ts)
 	touchscreen_parse_properties(ts->input_dev, true, &ts->prop);
 
 	if (!ts->prop.max_x || !ts->prop.max_y || !ts->max_touch_num) {
+		if (!ts->reset_controller_at_probe &&
+		    ts->irq_pin_access_method != IRQ_PIN_ACCESS_NONE) {
+			dev_info(&ts->client->dev, "Config not set, resetting controller\n");
+			/* Retry after a controller reset */
+			ts->reset_controller_at_probe = true;
+			error = goodix_reset(ts);
+			if (error)
+				return error;
+			goto retry_read_config;
+		}
 		dev_err(&ts->client->dev,
 			"Invalid config (%d, %d, %d), using defaults\n",
 			ts->prop.max_x, ts->prop.max_y, ts->max_touch_num);
drivers/irqchip/irq-gic-v3-its.c +1 -1
index 42b295337baf..d8cb5bcd6b10 100644
@@ -1615,7 +1615,7 @@ static int its_select_cpu(struct irq_data *d,
 
 		cpu = cpumask_pick_least_loaded(d, tmpmask);
 	} else {
-		cpumask_and(tmpmask, irq_data_get_affinity_mask(d), cpu_online_mask);
+		cpumask_copy(tmpmask, aff_mask);
 
 		/* If we cannot cross sockets, limit the search to that node */
 		if ((its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) &&
drivers/md/dm-integrity.c +14 -6
index 835b1f3464d0..2156a2d5ac70 100644
@@ -254,6 +254,7 @@ struct dm_integrity_c {
 
 	struct completion crypto_backoff;
 
+	bool wrote_to_journal;
 	bool journal_uptodate;
 	bool just_formatted;
 	bool recalculate_flag;
@@ -2256,6 +2257,8 @@ static void integrity_commit(struct work_struct *w)
 	if (!commit_sections)
 		goto release_flush_bios;
 
+	ic->wrote_to_journal = true;
+
 	i = commit_start;
 	for (n = 0; n < commit_sections; n++) {
 		for (j = 0; j < ic->journal_section_entries; j++) {
@@ -2470,10 +2473,6 @@ static void integrity_writer(struct work_struct *w)
 
 	unsigned prev_free_sectors;
 
-	/* the following test is not needed, but it tests the replay code */
-	if (unlikely(dm_post_suspending(ic->ti)) && !ic->meta_dev)
-		return;
-
 	spin_lock_irq(&ic->endio_wait.lock);
 	write_start = ic->committed_section;
 	write_sections = ic->n_committed_sections;
@@ -2980,10 +2979,17 @@ static void dm_integrity_postsuspend(struct dm_target *ti)
 	drain_workqueue(ic->commit_wq);
 
 	if (ic->mode == 'J') {
-		if (ic->meta_dev)
-			queue_work(ic->writer_wq, &ic->writer_work);
+		queue_work(ic->writer_wq, &ic->writer_work);
 		drain_workqueue(ic->writer_wq);
 		dm_integrity_flush_buffers(ic, true);
+		if (ic->wrote_to_journal) {
+			init_journal(ic, ic->free_section,
+				     ic->journal_sections - ic->free_section, ic->commit_seq);
+			if (ic->free_section) {
+				init_journal(ic, 0, ic->free_section,
+					     next_commit_seq(ic->commit_seq));
+			}
+		}
 	}
 
 	if (ic->mode == 'B') {
@@ -3011,6 +3017,8 @@ static void dm_integrity_resume(struct dm_target *ti)
 
 	DEBUG_print("resume\n");
 
+	ic->wrote_to_journal = false;
+
 	if (ic->provided_data_sectors != old_provided_data_sectors) {
 		if (ic->provided_data_sectors > old_provided_data_sectors &&
 		    ic->mode == 'B' &&
drivers/mmc/host/sdhci-brcmstb.c +51 -17

152 lines not on this page · raw message

drivers/net/arcnet/arc-rimi.c +2 -2
index 98df38fe553c..12d085405bd0 100644
@@ -332,7 +332,7 @@ static int __init arc_rimi_init(void)
 		dev->irq = 9;
 
 	if (arcrimi_probe(dev)) {
-		free_netdev(dev);
+		free_arcdev(dev);
 		return -EIO;
 	}
 
@@ -349,7 +349,7 @@ static void __exit arc_rimi_exit(void)
 	iounmap(lp->mem_start);
 	release_mem_region(dev->mem_start, dev->mem_end - dev->mem_start + 1);
 	free_irq(dev->irq, dev);
-	free_netdev(dev);
+	free_arcdev(dev);
 }
 
 #ifndef MODULE
drivers/net/arcnet/arcdevice.h +6 -0
index 22a49c6d7ae6..5d4a4c7efbbf 100644
@@ -298,6 +298,10 @@ struct arcnet_local {
 
 	int excnak_pending;    /* We just got an excesive nak interrupt */
 
+	/* RESET flag handling */
+	int reset_in_progress;
+	struct work_struct reset_work;
+
 	struct {
 		uint16_t sequence;	/* sequence number (incs with each packet) */
 		__be16 aborted_seq;
@@ -350,7 +354,9 @@ void arcnet_dump_skb(struct net_device *dev, struct sk_buff *skb, char *desc)
 
 void arcnet_unregister_proto(struct ArcProto *proto);
 irqreturn_t arcnet_interrupt(int irq, void *dev_id);
+
 struct net_device *alloc_arcdev(const char *name);
+void free_arcdev(struct net_device *dev);
 
 int arcnet_open(struct net_device *dev);
 int arcnet_close(struct net_device *dev);
drivers/net/arcnet/arcnet.c +62 -4

113 lines not on this page · raw message

drivers/net/arcnet/com20020-isa.c +2 -2
index f983c4ce6b07..be618e4b9ed5 100644
@@ -169,7 +169,7 @@ static int __init com20020_init(void)
 		dev->irq = 9;
 
 	if (com20020isa_probe(dev)) {
-		free_netdev(dev);
+		free_arcdev(dev);
 		return -EIO;
 	}
 
@@ -182,7 +182,7 @@ static void __exit com20020_exit(void)
 	unregister_netdev(my_dev);
 	free_irq(my_dev->irq, my_dev);
 	release_region(my_dev->base_addr, ARCNET_TOTAL_SIZE);
-	free_netdev(my_dev);
+	free_arcdev(my_dev);
 }
 
 #ifndef MODULE
drivers/net/arcnet/com20020-pci.c +1 -1
index 9f44e2e458df..b4f8798d8c50 100644
@@ -294,7 +294,7 @@ static void com20020pci_remove(struct pci_dev *pdev)
 
 		unregister_netdev(dev);
 		free_irq(dev->irq, dev);
-		free_netdev(dev);
+		free_arcdev(dev);
 	}
 }
 
drivers/net/arcnet/com20020_cs.c +10 -3
index cf607ffcf358..e0c7720bd5da 100644
@@ -113,6 +113,7 @@ static int com20020_probe(struct pcmcia_device *p_dev)
 	struct com20020_dev *info;
 	struct net_device *dev;
 	struct arcnet_local *lp;
+	int ret = -ENOMEM;
 
 	dev_dbg(&p_dev->dev, "com20020_attach()\n");
 
@@ -142,12 +143,18 @@ static int com20020_probe(struct pcmcia_device *p_dev)
 	info->dev = dev;
 	p_dev->priv = info;
 
-	return com20020_config(p_dev);
+	ret = com20020_config(p_dev);
+	if (ret)
+		goto fail_config;
+
+	return 0;
 
+fail_config:
+	free_arcdev(dev);
 fail_alloc_dev:
 	kfree(info);
 fail_alloc_info:
-	return -ENOMEM;
+	return ret;
 } /* com20020_attach */
 
 static void com20020_detach(struct pcmcia_device *link)
@@ -177,7 +184,7 @@ static void com20020_detach(struct pcmcia_device *link)
 		dev = info->dev;
 		if (dev) {
 			dev_dbg(&link->dev, "kfree...\n");
-			free_netdev(dev);
+			free_arcdev(dev);
 		}
 		dev_dbg(&link->dev, "kfree2...\n");
 		kfree(info);
drivers/net/arcnet/com90io.c +2 -2
index cf214b730671..3856b447d38e 100644
@@ -396,7 +396,7 @@ static int __init com90io_init(void)
 	err = com90io_probe(dev);
 
 	if (err) {
-		free_netdev(dev);
+		free_arcdev(dev);
 		return err;
 	}
 
@@ -419,7 +419,7 @@ static void __exit com90io_exit(void)
 
 	free_irq(dev->irq, dev);
 	release_region(dev->base_addr, ARCNET_TOTAL_SIZE);
-	free_netdev(dev);
+	free_arcdev(dev);
 }
 
 module_init(com90io_init)
drivers/net/arcnet/com90xx.c +2 -2
index 3dc3d533cb19..d8dfb9ea0de8 100644
@@ -554,7 +554,7 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem,
 err_release_mem:
 	release_mem_region(dev->mem_start, dev->mem_end - dev->mem_start + 1);
 err_free_dev:
-	free_netdev(dev);
+	free_arcdev(dev);
 	return -EIO;
 }
 
@@ -672,7 +672,7 @@ static void __exit com90xx_exit(void)
 		release_region(dev->base_addr, ARCNET_TOTAL_SIZE);
 		release_mem_region(dev->mem_start,
 				   dev->mem_end - dev->mem_start + 1);
-		free_netdev(dev);
+		free_arcdev(dev);
 	}
 }
 
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +8 -4
index 08437eaacbb9..ac327839eed9 100644
@@ -795,16 +795,20 @@ static void bnx2x_vf_enable_traffic(struct bnx2x *bp, struct bnx2x_virtf *vf)
 
 static u8 bnx2x_vf_is_pcie_pending(struct bnx2x *bp, u8 abs_vfid)
 {
-	struct pci_dev *dev;
 	struct bnx2x_virtf *vf = bnx2x_vf_by_abs_fid(bp, abs_vfid);
+	struct pci_dev *dev;
+	bool pending;
 
 	if (!vf)
 		return false;
 
 	dev = pci_get_domain_bus_and_slot(vf->domain, vf->bus, vf->devfn);
-	if (dev)
-		return bnx2x_is_pcie_pending(dev);
-	return false;
+	if (!dev)
+		return false;
+	pending = bnx2x_is_pcie_pending(dev);
+	pci_dev_put(dev);
+
+	return pending;
 }
 
 int bnx2x_vf_flr_clnup_epilog(struct bnx2x *bp, u8 abs_vfid)
drivers/net/ethernet/cavium/liquidio/lio_main.c +2 -2
index c4dc6e2ccd6b..eefb25bcf57f 100644
@@ -1798,7 +1798,7 @@ static int liquidio_open(struct net_device *netdev)
 
 	ifstate_set(lio, LIO_IFSTATE_RUNNING);
 
-	if (!OCTEON_CN23XX_PF(oct) || (OCTEON_CN23XX_PF(oct) && !oct->msix_on)) {
+	if (!OCTEON_CN23XX_PF(oct) || !oct->msix_on) {
 		ret = setup_tx_poll_fn(netdev);
 		if (ret)
 			goto err_poll;
@@ -1828,7 +1828,7 @@ static int liquidio_open(struct net_device *netdev)
 	return 0;
 
 err_rx_ctrl:
-	if (!OCTEON_CN23XX_PF(oct) || (OCTEON_CN23XX_PF(oct) && !oct->msix_on))
+	if (!OCTEON_CN23XX_PF(oct) || !oct->msix_on)
 		cleanup_tx_poll_fn(netdev);
 err_poll:
 	if (lio->ptp_clock) {
drivers/net/ethernet/cavium/thunder/thunder_bgx.c +3 -1
index 8ff28ed04b7f..f0e48b9373d6 100644
@@ -1438,8 +1438,10 @@ static acpi_status bgx_acpi_match_id(acpi_handle handle, u32 lvl,
 		return AE_OK;
 	}
 
-	if (strncmp(string.pointer, bgx_sel, 4))
+	if (strncmp(string.pointer, bgx_sel, 4)) {
+		kfree(string.pointer);
 		return AE_OK;
+	}
 
 	acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1,
 			    bgx_acpi_register_phy, NULL, bgx, NULL);
drivers/net/ethernet/freescale/enetc/enetc.c +20 -12
index ca62c72eb772..975762ccb66f 100644
@@ -1212,7 +1212,7 @@ static void enetc_setup_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring)
 	/* enable Tx ints by setting pkt thr to 1 */
 	enetc_txbdr_wr(hw, idx, ENETC_TBICR0, ENETC_TBICR0_ICEN | 0x1);
 
-	tbmr = ENETC_TBMR_EN;
+	tbmr = ENETC_TBMR_EN | ENETC_TBMR_SET_PRIO(tx_ring->prio);
 	if (tx_ring->ndev->features & NETIF_F_HW_VLAN_CTAG_TX)
 		tbmr |= ENETC_TBMR_VIH;
 
@@ -1272,13 +1272,14 @@ static void enetc_setup_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring)
 
 static void enetc_setup_bdrs(struct enetc_ndev_priv *priv)
 {
+	struct enetc_hw *hw = &priv->si->hw;
 	int i;
 
 	for (i = 0; i < priv->num_tx_rings; i++)
-		enetc_setup_txbdr(&priv->si->hw, priv->tx_ring[i]);
+		enetc_setup_txbdr(hw, priv->tx_ring[i]);
 
 	for (i = 0; i < priv->num_rx_rings; i++)
-		enetc_setup_rxbdr(&priv->si->hw, priv->rx_ring[i]);
+		enetc_setup_rxbdr(hw, priv->rx_ring[i]);
 }
 
 static void enetc_clear_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring)
@@ -1311,13 +1312,14 @@ static void enetc_clear_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring)
 
 static void enetc_clear_bdrs(struct enetc_ndev_priv *priv)
 {
+	struct enetc_hw *hw = &priv->si->hw;
 	int i;
 
 	for (i = 0; i < priv->num_tx_rings; i++)
-		enetc_clear_txbdr(&priv->si->hw, priv->tx_ring[i]);
+		enetc_clear_txbdr(hw, priv->tx_ring[i]);
 
 	for (i = 0; i < priv->num_rx_rings; i++)
-		enetc_clear_rxbdr(&priv->si->hw, priv->rx_ring[i]);
+		enetc_clear_rxbdr(hw, priv->rx_ring[i]);
 
 	udelay(1);
 }
@@ -1325,13 +1327,13 @@ static void enetc_clear_bdrs(struct enetc_ndev_priv *priv)
 static int enetc_setup_irqs(struct enetc_ndev_priv *priv)
 {
 	struct pci_dev *pdev = priv->si->pdev;
+	struct enetc_hw *hw = &priv->si->hw;
 	int i, j, err;
 
 	for (i = 0; i < priv->bdr_int_num; i++) {
 		int irq = pci_irq_vector(pdev, ENETC_BDR_INT_BASE_IDX + i);
 		struct enetc_int_vector *v = priv->int_vector[i];
 		int entry = ENETC_BDR_INT_BASE_IDX + i;
-		struct enetc_hw *hw = &priv->si->hw;
 
 		snprintf(v->name, sizeof(v->name), "%s-rxtx%d",
 			 priv->ndev->name, i);
@@ -1419,13 +1421,14 @@ static void enetc_setup_interrupts(struct enetc_ndev_priv *priv)
 
 static void enetc_clear_interrupts(struct enetc_ndev_priv *priv)
 {
+	struct enetc_hw *hw = &priv->si->hw;
 	int i;
 
 	for (i = 0; i < priv->num_tx_rings; i++)
-		enetc_txbdr_wr(&priv->si->hw, i, ENETC_TBIER, 0);
+		enetc_txbdr_wr(hw, i, ENETC_TBIER, 0);
 
 	for (i = 0; i < priv->num_rx_rings; i++)
-		enetc_rxbdr_wr(&priv->si->hw, i, ENETC_RBIER, 0);
+		enetc_rxbdr_wr(hw, i, ENETC_RBIER, 0);
 }
 
 static int enetc_phylink_connect(struct net_device *ndev)
@@ -1565,6 +1568,7 @@ static int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data)
 {
 	struct enetc_ndev_priv *priv = netdev_priv(ndev);
 	struct tc_mqprio_qopt *mqprio = type_data;
+	struct enetc_hw *hw = &priv->si->hw;
 	struct enetc_bdr *tx_ring;
 	u8 num_tc;
 	int i;
@@ -1579,7 +1583,8 @@ static int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data)
 		/* Reset all ring priorities to 0 */
 		for (i = 0; i < priv->num_tx_rings; i++) {
 			tx_ring = priv->tx_ring[i];
-			enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, 0);
+			tx_ring->prio = 0;
+			enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio);
 		}
 
 		return 0;
@@ -1598,7 +1603,8 @@ static int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data)
 	 */
 	for (i = 0; i < num_tc; i++) {
 		tx_ring = priv->tx_ring[i];
-		enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, i);
+		tx_ring->prio = i;
+		enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio);
 	}
 
 	/* Reset the number of netdev queues based on the TC count */
@@ -1679,19 +1685,21 @@ static int enetc_set_rss(struct net_device *ndev, int en)
 static void enetc_enable_rxvlan(struct net_device *ndev, bool en)
 {
 	struct enetc_ndev_priv *priv = netdev_priv(ndev);
+	struct enetc_hw *hw = &priv->si->hw;
 	int i;
 
 	for (i = 0; i < priv->num_rx_rings; i++)
-		enetc_bdr_enable_rxvlan(&priv->si->hw, i, en);
+		enetc_bdr_enable_rxvlan(hw, i, en);
 }
 
 static void enetc_enable_txvlan(struct net_device *ndev, bool en)
 {
 	struct enetc_ndev_priv *priv = netdev_priv(ndev);
+	struct enetc_hw *hw = &priv->si->hw;
 	int i;
 
 	for (i = 0; i < priv->num_tx_rings; i++)
-		enetc_bdr_enable_txvlan(&priv->si->hw, i, en);
+		enetc_bdr_enable_txvlan(hw, i, en);
 }
 
 void enetc_set_features(struct net_device *ndev, netdev_features_t features)
drivers/net/ethernet/freescale/enetc/enetc.h +6 -4
index 00386c5d3cde..725c3d1cbb19 100644
@@ -58,6 +58,7 @@ struct enetc_bdr {
 		void __iomem *rcir;
 	};
 	u16 index;
+	u16 prio;
 	int bd_count; /* # of BDs */
 	int next_to_use;
 	int next_to_clean;
@@ -338,19 +339,20 @@ int enetc_set_psfp(struct net_device *ndev, bool en);
 
 static inline void enetc_get_max_cap(struct enetc_ndev_priv *priv)
 {
+	struct enetc_hw *hw = &priv->si->hw;
 	u32 reg;
 
-	reg = enetc_port_rd(&priv->si->hw, ENETC_PSIDCAPR);
+	reg = enetc_port_rd(hw, ENETC_PSIDCAPR);
 	priv->psfp_cap.max_streamid = reg & ENETC_PSIDCAPR_MSK;
 	/* Port stream filter capability */
-	reg = enetc_port_rd(&priv->si->hw, ENETC_PSFCAPR);
+	reg = enetc_port_rd(hw, ENETC_PSFCAPR);
 	priv->psfp_cap.max_psfp_filter = reg & ENETC_PSFCAPR_MSK;
 	/* Port stream gate capability */
-	reg = enetc_port_rd(&priv->si->hw, ENETC_PSGCAPR);
+	reg = enetc_port_rd(hw, ENETC_PSGCAPR);
 	priv->psfp_cap.max_psfp_gate = (reg & ENETC_PSGCAPR_SGIT_MSK);
 	priv->psfp_cap.max_psfp_gatelist = (reg & ENETC_PSGCAPR_GCL_MSK) >> 16;
 	/* Port flow meter capability */
-	reg = enetc_port_rd(&priv->si->hw, ENETC_PFMCAPR);
+	reg = enetc_port_rd(hw, ENETC_PFMCAPR);
 	priv->psfp_cap.max_psfp_meter = reg & ENETC_PFMCAPR_MSK;
 }
 
drivers/net/ethernet/freescale/enetc/enetc_pf.c +2 -4
index 6904e10dd46b..515db7e6e649 100644
@@ -748,9 +748,6 @@ static void enetc_pf_netdev_setup(struct enetc_si *si, struct net_device *ndev,
 
 	ndev->priv_flags |= IFF_UNICAST_FLT;
 
-	if (si->hw_features & ENETC_SI_F_QBV)
-		priv->active_offloads |= ENETC_F_QBV;
-
 	if (si->hw_features & ENETC_SI_F_PSFP && !enetc_psfp_enable(priv)) {
 		priv->active_offloads |= ENETC_F_QCI;
 		ndev->features |= NETIF_F_HW_TC;
@@ -996,7 +993,8 @@ static void enetc_pl_mac_link_up(struct phylink_config *config,
 	struct enetc_ndev_priv *priv;
 
 	priv = netdev_priv(pf->si->ndev);
-	if (priv->active_offloads & ENETC_F_QBV)
+
+	if (pf->si->hw_features & ENETC_SI_F_QBV)
 		enetc_sched_speed_set(priv, speed);
 
 	if (!phylink_autoneg_inband(mode) &&
drivers/net/ethernet/freescale/enetc/enetc_qos.c +44 -39

203 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.c +3 -0
index c7aff89141e1..217dc67c48fa 100644
@@ -2299,7 +2299,10 @@ static int mtk_open(struct net_device *dev)
 		int err = mtk_start_dma(eth);
 
 		if (err)
+		if (err) {
+			phylink_disconnect_phy(mac->phylink);
 			return err;
+		}
 
 		mtk_gdm_config(eth, MTK_GDMA_TO_PDMA);
 
drivers/net/ethernet/mellanox/mlx4/qp.c +2 -1
index 427e7a31862c..d7f2890c254f 100644
@@ -697,7 +697,8 @@ static int mlx4_create_zones(struct mlx4_dev *dev,
 			err = mlx4_bitmap_init(*bitmap + k, 1,
 					       MLX4_QP_TABLE_RAW_ETH_SIZE - 1, 0,
 					       0);
-			mlx4_bitmap_alloc_range(*bitmap + k, 1, 1, 0);
+			if (!err)
+				mlx4_bitmap_alloc_range(*bitmap + k, 1, 1, 0);
 		}
 
 		if (err)
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +3 -3
index cf07318048df..c838d8698eab 100644
@@ -959,6 +959,7 @@ static void cmd_work_handler(struct work_struct *work)
 		cmd_ent_get(ent);
 	set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state);
 
+	cmd_ent_get(ent); /* for the _real_ FW event on completion */
 	/* Skip sending command to fw if internal error */
 	if (mlx5_cmd_is_down(dev) || !opcode_allowed(&dev->cmd, ent->op)) {
 		u8 status = 0;
@@ -972,7 +973,6 @@ static void cmd_work_handler(struct work_struct *work)
 		return;
 	}
 
-	cmd_ent_get(ent); /* for the _real_ FW event on completion */
 	/* ring doorbell after the descriptor is valid */
 	mlx5_core_dbg(dev, "writing 0x%x to command doorbell\n", 1 << ent->idx);
 	wmb();
@@ -1586,8 +1586,8 @@ static void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool force
 				cmd_ent_put(ent); /* timeout work was canceled */
 
 			if (!forced || /* Real FW completion */
-			    pci_channel_offline(dev->pdev) || /* FW is inaccessible */
-			    dev->state == MLX5_DEVICE_STATE_INTERNAL_ERROR)
+			     mlx5_cmd_is_down(dev) || /* No real FW completion is expected */
+			     !opcode_allowed(cmd, ent->op))
 				cmd_ent_put(ent);
 
 			ent->ts2 = ktime_get_ns();
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +1 -1
index e8a4adccd2b2..f800e1ca5ba6 100644
@@ -638,7 +638,7 @@ static void mlx5_tracer_handle_timestamp_trace(struct mlx5_fw_tracer *tracer,
 			trace_timestamp = (timestamp_event.timestamp & MASK_52_7) |
 					  (str_frmt->timestamp & MASK_6_0);
 		else
-			trace_timestamp = ((timestamp_event.timestamp & MASK_52_7) - 1) |
+			trace_timestamp = ((timestamp_event.timestamp - 1) & MASK_52_7) |
 					  (str_frmt->timestamp & MASK_6_0);
 
 		mlx5_tracer_print_trace(str_frmt, dev, trace_timestamp);
drivers/net/ethernet/netronome/nfp/nfp_devlink.c +1 -1
index 7a8187458724..24578c48f075 100644
@@ -363,7 +363,7 @@ int nfp_devlink_port_register(struct nfp_app *app, struct nfp_port *port)
 		return ret;
 
 	attrs.split = eth_port.is_split;
-	attrs.splittable = !attrs.split;
+	attrs.splittable = eth_port.port_lanes > 1 && !attrs.split;
 	attrs.lanes = eth_port.port_lanes;
 	attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;
 	attrs.phys.port_number = eth_port.label_port;
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +3 -0
index 3977aa2f59bd..311873ff57e3 100644
@@ -1225,6 +1225,9 @@ nfp_port_get_module_info(struct net_device *netdev,
 	u8 data;
 
 	port = nfp_port_from_netdev(netdev);
+	if (!port)
+		return -EOPNOTSUPP;
+
 	/* update port state to get latest interface */
 	set_bit(NFP_PORT_CHANGED, &port->flags);
 	eth_port = nfp_port_get_eth_port(port);
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +5 -1
index 2942102efd48..bde32f0845ca 100644
@@ -1166,6 +1166,7 @@ static void pch_gbe_tx_queue(struct pch_gbe_adapter *adapter,
 		buffer_info->dma = 0;
 		buffer_info->time_stamp = 0;
 		tx_ring->next_to_use = ring_num;
+		dev_kfree_skb_any(skb);
 		return;
 	}
 	buffer_info->mapped = true;
@@ -2481,6 +2482,7 @@ static void pch_gbe_remove(struct pci_dev *pdev)
 	unregister_netdev(netdev);
 
 	pch_gbe_phy_hw_reset(&adapter->hw);
+	pci_dev_put(adapter->ptp_pdev);
 
 	free_netdev(netdev);
 }
@@ -2562,7 +2564,7 @@ static int pch_gbe_probe(struct pci_dev *pdev,
 	/* setup the private structure */
 	ret = pch_gbe_sw_init(adapter);
 	if (ret)
-		goto err_free_netdev;
+		goto err_put_dev;
 
 	/* Initialize PHY */
 	ret = pch_gbe_init_phy(adapter);
@@ -2620,6 +2622,8 @@ static int pch_gbe_probe(struct pci_dev *pdev,
 
 err_free_adapter:
 	pch_gbe_phy_hw_reset(&adapter->hw);
+err_put_dev:
+	pci_dev_put(adapter->ptp_pdev);
 err_free_netdev:
 	free_netdev(netdev);
 	return ret;
drivers/net/ethernet/qlogic/qla3xxx.c +1 -0
index 2219e4c59ae6..99fd35a8ca75 100644
@@ -2475,6 +2475,7 @@ static netdev_tx_t ql3xxx_send(struct sk_buff *skb,
 					     skb_shinfo(skb)->nr_frags);
 	if (tx_cb->seg_count == -1) {
 		netdev_err(ndev, "%s: invalid segment count!\n", __func__);
+		dev_kfree_skb_any(skb);
 		return NETDEV_TX_OK;
 	}
 
drivers/net/ethernet/sfc/ef100_netdev.c +1 -0
index 67fe44db6b61..63a44ee763be 100644
@@ -200,6 +200,7 @@ static netdev_tx_t ef100_hard_start_xmit(struct sk_buff *skb,
 		   skb->len, skb->data_len, channel->channel);
 	if (!efx->n_channels || !efx->n_tx_channels || !channel) {
 		netif_stop_queue(net_dev);
+		dev_kfree_skb_any(skb);
 		goto err;
 	}
 
drivers/net/macsec.c +4 -24
index f84e3cc0d3ec..3e564158c401 100644
@@ -2648,11 +2648,6 @@ static int macsec_upd_offload(struct sk_buff *skb, struct genl_info *info)
 	if (ret)
 		goto rollback;
 
-	/* Force features update, since they are different for SW MACSec and
-	 * HW offloading cases.
-	 */
-	netdev_update_features(dev);
-
 	rtnl_unlock();
 	return 0;
 
@@ -3420,16 +3415,9 @@ static netdev_tx_t macsec_start_xmit(struct sk_buff *skb,
 	return ret;
 }
 
-#define SW_MACSEC_FEATURES \
+#define MACSEC_FEATURES \
 	(NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST)
 
-/* If h/w offloading is enabled, use real device features save for
- *   VLAN_FEATURES - they require additional ops
- *   HW_MACSEC - no reason to report it
- */
-#define REAL_DEV_FEATURES(dev) \
-	((dev)->features & ~(NETIF_F_VLAN_FEATURES | NETIF_F_HW_MACSEC))
-
 static int macsec_dev_init(struct net_device *dev)
 {
 	struct macsec_dev *macsec = macsec_priv(dev);
@@ -3446,12 +3434,8 @@ static int macsec_dev_init(struct net_device *dev)
 		return err;
 	}
 
-	if (macsec_is_offloaded(macsec)) {
-		dev->features = REAL_DEV_FEATURES(real_dev);
-	} else {
-		dev->features = real_dev->features & SW_MACSEC_FEATURES;
-		dev->features |= NETIF_F_LLTX | NETIF_F_GSO_SOFTWARE;
-	}
+	dev->features = real_dev->features & MACSEC_FEATURES;
+	dev->features |= NETIF_F_LLTX | NETIF_F_GSO_SOFTWARE;
 
 	dev->needed_headroom = real_dev->needed_headroom +
 			       MACSEC_NEEDED_HEADROOM;
@@ -3480,10 +3464,7 @@ static netdev_features_t macsec_fix_features(struct net_device *dev,
 	struct macsec_dev *macsec = macsec_priv(dev);
 	struct net_device *real_dev = macsec->real_dev;
 
-	if (macsec_is_offloaded(macsec))
-		return REAL_DEV_FEATURES(real_dev);
-
-	features &= (real_dev->features & SW_MACSEC_FEATURES) |
+	features &= (real_dev->features & MACSEC_FEATURES) |
 		    NETIF_F_GSO_SOFTWARE | NETIF_F_SOFT_FEATURES;
 	features |= NETIF_F_LLTX;
 
@@ -3832,7 +3813,6 @@ static int macsec_changelink(struct net_device *dev, struct nlattr *tb[],
 	if (macsec_is_offloaded(macsec)) {
 		const struct macsec_ops *ops;
 		struct macsec_context ctx;
-		int ret;
 
 		ops = macsec_get_ops(netdev_priv(dev), &ctx);
 		if (!ops) {
drivers/net/usb/qmi_wwan.c +1 -0
index a1c9233e264d..7313e6e03c12 100644
@@ -1292,6 +1292,7 @@ static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x2357, 0x0201, 4)},	/* TP-LINK HSUPA Modem MA180 */
 	{QMI_FIXED_INTF(0x2357, 0x9000, 4)},	/* TP-LINK MA260 */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1031, 3)}, /* Telit LE910C1-EUX */
+	{QMI_QUIRK_SET_DTR(0x1bc7, 0x103a, 0)}, /* Telit LE910C4-WWX */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1040, 2)},	/* Telit LE922A */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1050, 2)},	/* Telit FN980 */
 	{QMI_QUIRK_SET_DTR(0x1bc7, 0x1060, 2)},	/* Telit LN920 */
drivers/net/wireless/cisco/airo.c +14 -4
index 0569f37e9ed5..8c9c6bfbaeee 100644
@@ -5236,7 +5236,7 @@ static int get_wep_tx_idx(struct airo_info *ai)
 	return -1;
 }
 
-static int set_wep_key(struct airo_info *ai, u16 index, const char *key,
+static int set_wep_key(struct airo_info *ai, u16 index, const u8 *key,
 		       u16 keylen, int perm, int lock)
 {
 	static const unsigned char macaddr[ETH_ALEN] = { 0x01, 0, 0, 0, 0, 0 };
@@ -5287,7 +5287,7 @@ static void proc_wepkey_on_close(struct inode *inode, struct file *file)
 	struct net_device *dev = PDE_DATA(inode);
 	struct airo_info *ai = dev->ml_priv;
 	int i, rc;
-	char key[16];
+	u8 key[16];
 	u16 index = 0;
 	int j = 0;
 
@@ -5315,12 +5315,22 @@ static void proc_wepkey_on_close(struct inode *inode, struct file *file)
 	}
 
 	for (i = 0; i < 16*3 && data->wbuffer[i+j]; i++) {
+		int val;
+
+		if (i % 3 == 2)
+			continue;
+
+		val = hex_to_bin(data->wbuffer[i+j]);
+		if (val < 0) {
+			airo_print_err(ai->dev->name, "WebKey passed invalid key hex");
+			return;
+		}
 		switch(i%3) {
 		case 0:
-			key[i/3] = hex_to_bin(data->wbuffer[i+j])<<4;
+			key[i/3] = (u8)val << 4;
 			break;
 		case 1:
-			key[i/3] |= hex_to_bin(data->wbuffer[i+j]);
+			key[i/3] |= (u8)val;
 			break;
 		}
 	}
drivers/net/wireless/mac80211_hwsim.c +5 -0
index a6d4ff4760ad..255286b2324e 100644
@@ -775,6 +775,7 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
 	struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
 	struct sk_buff *skb;
 	struct ieee80211_hdr *hdr;
+	struct ieee80211_tx_info *cb;
 
 	if (!vp->assoc)
 		return;
@@ -796,6 +797,10 @@ static void hwsim_send_nullfunc(struct mac80211_hwsim_data *data, u8 *mac,
 	memcpy(hdr->addr2, mac, ETH_ALEN);
 	memcpy(hdr->addr3, vp->bssid, ETH_ALEN);
 
+	cb = IEEE80211_SKB_CB(skb);
+	cb->control.rates[0].count = 1;
+	cb->control.rates[1].idx = -1;
+
 	rcu_read_lock();
 	mac80211_hwsim_tx_frame(data->hw, skb,
 				rcu_dereference(vif->chanctx_conf)->def.chan);
drivers/net/wireless/microchip/wilc1000/cfg80211.c +31 -9
index 6be5ac8ba518..dd26f2086180 100644
@@ -939,30 +939,52 @@ static inline void wilc_wfi_cfg_parse_ch_attr(u8 *buf, u32 len, u8 sta_ch)
 		return;
 
 	while (index + sizeof(*e) <= len) {
+		u16 attr_size;
+
 		e = (struct wilc_attr_entry *)&buf[index];
-		if (e->attr_type == IEEE80211_P2P_ATTR_CHANNEL_LIST)
+		attr_size = le16_to_cpu(e->attr_len);
+
+		if (index + sizeof(*e) + attr_size > len)
+			return;
+
+		if (e->attr_type == IEEE80211_P2P_ATTR_CHANNEL_LIST &&
+		    attr_size >= (sizeof(struct wilc_attr_ch_list) - sizeof(*e)))
 			ch_list_idx = index;
-		else if (e->attr_type == IEEE80211_P2P_ATTR_OPER_CHANNEL)
+		else if (e->attr_type == IEEE80211_P2P_ATTR_OPER_CHANNEL &&
+			 attr_size == (sizeof(struct wilc_attr_oper_ch) - sizeof(*e)))
 			op_ch_idx = index;
+
 		if (ch_list_idx && op_ch_idx)
 			break;
-		index += le16_to_cpu(e->attr_len) + sizeof(*e);
+
+		index += sizeof(*e) + attr_size;
 	}
 
 	if (ch_list_idx) {
-		u16 attr_size;
-		struct wilc_ch_list_elem *e;
-		int i;
+		unsigned int i;
+		u16 elem_size;
 
 		ch_list = (struct wilc_attr_ch_list *)&buf[ch_list_idx];
-		attr_size = le16_to_cpu(ch_list->attr_len);
-		for (i = 0; i < attr_size;) {
+		/* the number of bytes following the final 'elem' member */
+		elem_size = le16_to_cpu(ch_list->attr_len) -
+			(sizeof(*ch_list) - sizeof(struct wilc_attr_entry));
+		for (i = 0; i < elem_size;) {
+			struct wilc_ch_list_elem *e;
+
 			e = (struct wilc_ch_list_elem *)(ch_list->elem + i);
+
+			i += sizeof(*e);
+			if (i > elem_size)
+				break;
+
+			i += e->no_of_channels;
+			if (i > elem_size)
+				break;
+
 			if (e->op_class == WILC_WLAN_OPERATING_CLASS_2_4GHZ) {
 				memset(e->ch_list, sta_ch, e->no_of_channels);
 				break;
 			}
-			i += e->no_of_channels;
 		}
 	}
 
drivers/net/wireless/microchip/wilc1000/hif.c +16 -5
index d025a3093015..b25847799138 100644
@@ -467,14 +467,25 @@ void *wilc_parse_join_bss_param(struct cfg80211_bss *bss,
 
 	rsn_ie = cfg80211_find_ie(WLAN_EID_RSN, ies->data, ies->len);
 	if (rsn_ie) {
+		int rsn_ie_len = sizeof(struct element) + rsn_ie[1];
 		int offset = 8;
 
-		param->mode_802_11i = 2;
-		param->rsn_found = true;
 		/* extract RSN capabilities */
-		offset += (rsn_ie[offset] * 4) + 2;
-		offset += (rsn_ie[offset] * 4) + 2;
-		memcpy(param->rsn_cap, &rsn_ie[offset], 2);
+		if (offset < rsn_ie_len) {
+			/* skip over pairwise suites */
+			offset += (rsn_ie[offset] * 4) + 2;
+
+			if (offset < rsn_ie_len) {
+				/* skip over authentication suites */
+				offset += (rsn_ie[offset] * 4) + 2;
+
+				if (offset + 1 < rsn_ie_len) {
+					param->mode_802_11i = 2;
+					param->rsn_found = true;
+					memcpy(param->rsn_cap, &rsn_ie[offset], 2);
+				}
+			}
+		}
 	}
 
 	if (param->rsn_found) {
drivers/nfc/st-nci/se.c +4 -2
index 807eae04c1e3..37d397aae9b9 100644
@@ -327,7 +327,7 @@ static int st_nci_hci_connectivity_event_received(struct nci_dev *ndev,
 		 * AID          81      5 to 16
 		 * PARAMETERS   82      0 to 255
 		 */
-		if (skb->len < NFC_MIN_AID_LENGTH + 2 &&
+		if (skb->len < NFC_MIN_AID_LENGTH + 2 ||
 		    skb->data[0] != NFC_EVT_TRANSACTION_AID_TAG)
 			return -EPROTO;
 
@@ -340,8 +340,10 @@ static int st_nci_hci_connectivity_event_received(struct nci_dev *ndev,
 
 		/* Check next byte is PARAMETERS tag (82) */
 		if (skb->data[transaction->aid_len + 2] !=
-		    NFC_EVT_TRANSACTION_PARAMS_TAG)
+		    NFC_EVT_TRANSACTION_PARAMS_TAG) {
+			devm_kfree(dev, transaction);
 			return -EPROTO;
+		}
 
 		transaction->params_len = skb->data[transaction->aid_len + 3];
 		memcpy(transaction->params, skb->data +
drivers/nvme/host/pci.c +4 -0
index 65f4bf880608..089f39103584 100644
@@ -3252,6 +3252,10 @@ static const struct pci_device_id nvme_id_table[] = {
 	{ PCI_DEVICE(0x1cc1, 0x8201),   /* ADATA SX8200PNP 512GB */
 		.driver_data = NVME_QUIRK_NO_DEEPEST_PS |
 				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
+	 { PCI_DEVICE(0x1344, 0x5407), /* Micron Technology Inc NVMe SSD */
+		.driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN },
+	 { PCI_DEVICE(0x1344, 0x6001),   /* Micron Nitro NVMe */
+		 .driver_data = NVME_QUIRK_BOGUS_NID, },
 	{ PCI_DEVICE(0x1c5c, 0x1504),   /* SK Hynix PC400 */
 		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },
 	{ PCI_DEVICE(0x15b7, 0x2001),   /*  Sandisk Skyhawk */
drivers/platform/x86/acer-wmi.c +9 -0
index 8e696262215f..ebec49957ed0 100644
@@ -536,6 +536,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
 		},
 		.driver_data = (void *)ACER_CAP_KBD_DOCK,
 	},
+	{
+		.callback = set_force_caps,
+		.ident = "Acer Aspire Switch V 10 SW5-017",
+		.matches = {
+			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"),
+		},
+		.driver_data = (void *)ACER_CAP_KBD_DOCK,
+	},
 	{
 		.callback = set_force_caps,
 		.ident = "Acer One 10 (S1003)",
drivers/platform/x86/asus-wmi.c +2 -0
index 39e1a6396e08..db369cf26111 100644
@@ -1212,6 +1212,8 @@ static void asus_wmi_set_xusb2pr(struct asus_wmi *asus)
 	pci_write_config_dword(xhci_pdev, USB_INTEL_XUSB2PR,
 				cpu_to_le32(ports_available));
 
+	pci_dev_put(xhci_pdev);
+
 	pr_info("set USB_INTEL_XUSB2PR old: 0x%04x, new: 0x%04x\n",
 			orig_ports_available, ports_available);
 }
drivers/platform/x86/hp-wmi.c +3 -0
index 519b2ab84a63..6642d09b17b5 100644
@@ -63,6 +63,7 @@ enum hp_wmi_event_ids {
 	HPWMI_PEAKSHIFT_PERIOD		= 0x0F,
 	HPWMI_BATTERY_CHARGE_PERIOD	= 0x10,
 	HPWMI_SANITIZATION_MODE		= 0x17,
+	HPWMI_SMART_EXPERIENCE_APP	= 0x21,
 };
 
 struct bios_args {
@@ -632,6 +633,8 @@ static void hp_wmi_notify(u32 value, void *context)
 		break;
 	case HPWMI_SANITIZATION_MODE:
 		break;
+	case HPWMI_SMART_EXPERIENCE_APP:
+		break;
 	default:
 		pr_info("Unknown event_id - %d - 0x%x\n", event_id, event_data);
 		break;
drivers/platform/x86/touchscreen_dmi.c +25 -0
index ab6a9369649d..110ff1e6ef81 100644
@@ -756,6 +756,22 @@ static const struct ts_dmi_data predia_basic_data = {
 	.properties	= predia_basic_props,
 };
 
+static const struct property_entry rca_cambio_w101_v2_props[] = {
+	PROPERTY_ENTRY_U32("touchscreen-min-x", 4),
+	PROPERTY_ENTRY_U32("touchscreen-min-y", 20),
+	PROPERTY_ENTRY_U32("touchscreen-size-x", 1644),
+	PROPERTY_ENTRY_U32("touchscreen-size-y", 874),
+	PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"),
+	PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-rca-cambio-w101-v2.fw"),
+	PROPERTY_ENTRY_U32("silead,max-fingers", 10),
+	{ }
+};
+
+static const struct ts_dmi_data rca_cambio_w101_v2_data = {
+	.acpi_name = "MSSL1680:00",
+	.properties = rca_cambio_w101_v2_props,
+};
+
 static const struct property_entry rwc_nanote_p8_props[] = {
 	PROPERTY_ENTRY_U32("touchscreen-min-y", 46),
 	PROPERTY_ENTRY_U32("touchscreen-size-x", 1728),
@@ -1341,6 +1357,15 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
 			DMI_EXACT_MATCH(DMI_BOARD_NAME, "0E57"),
 		},
 	},
+	{
+		/* RCA Cambio W101 v2 */
+		/* https://github.com/onitake/gsl-firmware/discussions/193 */
+		.driver_data = (void *)&rca_cambio_w101_v2_data,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "RCA"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "W101SA23T1"),
+		},
+	},
 	{
 		/* RWC NANOTE P8 */
 		.driver_data = (void *)&rwc_nanote_p8_data,
drivers/regulator/core.c +6 -2
index bf8ba73d6c7c..eb083b26ab4f 100644
@@ -4928,6 +4928,7 @@ static void regulator_dev_release(struct device *dev)
 {
 	struct regulator_dev *rdev = dev_get_drvdata(dev);
 
+	debugfs_remove_recursive(rdev->debugfs);
 	kfree(rdev->constraints);
 	of_node_put(rdev->dev.of_node);
 	kfree(rdev);
@@ -5401,11 +5402,15 @@ regulator_register(const struct regulator_desc *regulator_desc,
 	mutex_lock(&regulator_list_mutex);
 	regulator_ena_gpio_free(rdev);
 	mutex_unlock(&regulator_list_mutex);
+	put_device(&rdev->dev);
+	rdev = NULL;
 clean:
 	if (dangling_of_gpiod)
 		gpiod_put(config->ena_gpiod);
+	if (rdev && rdev->dev.of_node)
+		of_node_put(rdev->dev.of_node);
+	kfree(rdev);
 	kfree(config);
-	put_device(&rdev->dev);
 rinse:
 	if (dangling_cfg_gpiod)
 		gpiod_put(cfg->ena_gpiod);
@@ -5434,7 +5439,6 @@ void regulator_unregister(struct regulator_dev *rdev)
 
 	mutex_lock(&regulator_list_mutex);
 
-	debugfs_remove_recursive(rdev->debugfs);
 	WARN_ON(rdev->open_count);
 	regulator_remove_coupling(rdev);
 	unset_regulator_supplies(rdev);
drivers/regulator/twl6030-regulator.c +2 -0
index 430265c404d6..7c7e3648ea4b 100644
@@ -530,6 +530,7 @@ static const struct twlreg_info TWL6030_INFO_##label = { \
 #define TWL6032_ADJUSTABLE_LDO(label, offset) \
 static const struct twlreg_info TWL6032_INFO_##label = { \
 	.base = offset, \
+	.features = TWL6032_SUBCLASS, \
 	.desc = { \
 		.name = #label, \
 		.id = TWL6032_REG_##label, \
@@ -562,6 +563,7 @@ static const struct twlreg_info TWLFIXED_INFO_##label = { \
 #define TWL6032_ADJUSTABLE_SMPS(label, offset) \
 static const struct twlreg_info TWLSMPS_INFO_##label = { \
 	.base = offset, \
+	.features = TWL6032_SUBCLASS, \
 	.desc = { \
 		.name = #label, \
 		.id = TWL6032_REG_##label, \
drivers/s390/block/dasd_eckd.c +2 -4
index 7749deb614d7..53d22975a32f 100644
@@ -4627,7 +4627,6 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_raw(struct dasd_device *startdev,
 	struct dasd_device *basedev;
 	struct req_iterator iter;
 	struct dasd_ccw_req *cqr;
-	unsigned int first_offs;
 	unsigned int trkcount;
 	unsigned long *idaws;
 	unsigned int size;
@@ -4661,7 +4660,6 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_raw(struct dasd_device *startdev,
 	last_trk = (blk_rq_pos(req) + blk_rq_sectors(req) - 1) /
 		DASD_RAW_SECTORS_PER_TRACK;
 	trkcount = last_trk - first_trk + 1;
-	first_offs = 0;
 
 	if (rq_data_dir(req) == READ)
 		cmd = DASD_ECKD_CCW_READ_TRACK;
@@ -4705,13 +4703,13 @@ static struct dasd_ccw_req *dasd_eckd_build_cp_raw(struct dasd_device *startdev,
 
 	if (use_prefix) {
 		prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev,
-			   startdev, 1, first_offs + 1, trkcount, 0, 0);
+			   startdev, 1, 0, trkcount, 0, 0);
 	} else {
 		define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0);
 		ccw[-1].flags |= CCW_FLAG_CC;
 
 		data += sizeof(struct DE_eckd_data);
-		locate_record_ext(ccw++, data, first_trk, first_offs + 1,
+		locate_record_ext(ccw++, data, first_trk, 0,
 				  trkcount, cmd, basedev, 0, 0);
 	}
 
drivers/scsi/ibmvscsi/ibmvfc.c +11 -3
index f6d6539c657f..b793e342ab7c 100644
@@ -635,8 +635,13 @@ static void ibmvfc_init_host(struct ibmvfc_host *vhost)
 		memset(vhost->async_crq.msgs, 0, PAGE_SIZE);
 		vhost->async_crq.cur = 0;
 
-		list_for_each_entry(tgt, &vhost->targets, queue)
-			ibmvfc_del_tgt(tgt);
+		list_for_each_entry(tgt, &vhost->targets, queue) {
+			if (vhost->client_migrated)
+				tgt->need_login = 1;
+			else
+				ibmvfc_del_tgt(tgt);
+		}
+
 		scsi_block_requests(vhost->host);
 		ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_INIT);
 		vhost->job_step = ibmvfc_npiv_login;
@@ -2822,9 +2827,12 @@ static void ibmvfc_handle_crq(struct ibmvfc_crq *crq, struct ibmvfc_host *vhost)
 			/* We need to re-setup the interpartition connection */
 			dev_info(vhost->dev, "Partition migrated, Re-enabling adapter\n");
 			vhost->client_migrated = 1;
+
+			scsi_block_requests(vhost->host);
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_debug.c +7 -0
index 261b915835b4..cc20621bb49d 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/scsi_transport_sas.c +9 -4
index 4a96fb05731d..c6256fdc24b1 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/storvsc_drv.c +34 -35

69 lines not on this page · raw message

drivers/spi/spi-dw-dma.c +3 -0
index a09831c62192..32ac8f9068e8 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-stm32.c +1 -1
index 651a6510fb54..9ec37cf10c01 100644

Lines of this file are not shown. View the raw message.

drivers/tee/optee/device.c +1 -1
index 031806468af4..60ffc54da003 100644

Lines of this file are not shown. View the raw message.

drivers/tty/serial/8250/8250_omap.c +4 -3
index 3f7379f16a36..483fff3a95c9 100644

Lines of this file are not shown. View the raw message.

drivers/usb/cdns3/core.c +17 -7
index 6eeb7ed8e91f..8fe7420de033 100644

Lines of this file are not shown. View the raw message.

drivers/usb/cdns3/core.h +5 -0
index 3176f924293a..0d87871499ea 100644

Lines of this file are not shown. View the raw message.

drivers/usb/cdns3/drd.c +71 -30

101 lines not on this page · raw message

drivers/usb/cdns3/drd.h +55 -12

67 lines not on this page · raw message

drivers/usb/dwc3/dwc3-exynos.c +1 -10
index 90bb022737da..ee7b71827216 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/gadget.c +11 -11
index 347ba7e4bd81..a9a43d649478 100644

Lines of this file are not shown. View the raw message.

drivers/xen/platform-pci.c +5 -2
index 9db557b76511..804d8f4d0e73 100644

Lines of this file are not shown. View the raw message.

drivers/xen/xen-pciback/conf_space_capability.c +6 -3
index 5e53b4817f16..097316a74126 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/ioctl.c +6 -1
index b5e9bfe884c4..d0c31651ec80 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/sysfs.c +5 -2
index 3bb6b688ece5..ecf190286377 100644

Lines of this file are not shown. View the raw message.

fs/ceph/caps.c +78 -27

105 lines not on this page · raw message

fs/ceph/mds_client.c +66 -24

90 lines not on this page · raw message

fs/ceph/mds_client.h +5 -0
index acf33d7192bb..a92e42e8a9f8 100644

Lines of this file are not shown. View the raw message.

fs/ceph/snap.c +21 -10
index 0369f672a76f..734873be56a7 100644

Lines of this file are not shown. View the raw message.

fs/ceph/strings.c +1 -0
index 4a79f3632260..573bb9556fb5 100644

Lines of this file are not shown. View the raw message.

fs/ext4/extents.c +13 -5
index 30add5a3df3d..54750b7c162d 100644

Lines of this file are not shown. View the raw message.

fs/fuse/file.c +16 -20
index 253308fcb047..504389568dac 100644

Lines of this file are not shown. View the raw message.

fs/nilfs2/sufile.c +8 -0
index 63722475e17e..51f4cb060231 100644

Lines of this file are not shown. View the raw message.

fs/zonefs/super.c +27 -10
index bf5cb6efb8c0..475d23a4f8da 100644

Lines of this file are not shown. View the raw message.

include/linux/ceph/ceph_fs.h +1 -0
index 455e9b9e2adf..8287382d3d1d 100644

Lines of this file are not shown. View the raw message.

include/linux/netfilter/ipset/ip_set.h +3 -0
index ab192720e2d6..53c9a17ecb3e 100644

Lines of this file are not shown. View the raw message.

include/net/switchdev.h +2 -0
index 8528015590e4..afdf8bd1b4fe 100644

Lines of this file are not shown. View the raw message.

include/trace/events/rxrpc.h +1 -1
index 1c714336b863..221856f2d295 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/audit.h +1 -1
index cd2d8279a5e4..cb4e8e6e86a9 100644

Lines of this file are not shown. View the raw message.

init/Kconfig +1 -1
index 22912631d79b..eba883d6d9ed 100644

Lines of this file are not shown. View the raw message.

kernel/gcov/clang.c +2 -0
index c466c7fbdece..ea6b45d0fa0d 100644

Lines of this file are not shown. View the raw message.

kernel/irq/manage.c +23 -8
index 92d94615cbbb..3cb29835632f 100644

Lines of this file are not shown. View the raw message.

kernel/irq/msi.c +7 -0
index d217acc9f71b..b47d95b68ac1 100644

Lines of this file are not shown. View the raw message.

lib/vdso/Makefile +1 -1
index c415a685d61b..e814061d6aa0 100644

Lines of this file are not shown. View the raw message.

mm/vmscan.c +4 -6
index f2817e80a1ab..51ccd80e70b6 100644

Lines of this file are not shown. View the raw message.

net/9p/trans_fd.c +2 -0
index fec6c800c898..400219801e63 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_vlan.c +28 -5
index 852f4b54e881..1dc5db07650c 100644

Lines of this file are not shown. View the raw message.

net/core/flow_dissector.c +1 -1
index ed120828c7e2..b8d082f55718 100644

Lines of this file are not shown. View the raw message.

net/dccp/ipv4.c +2 -0
index 2455b0c0e486..a2a8b952b3c5 100644

Lines of this file are not shown. View the raw message.

net/dccp/ipv6.c +2 -0
index 2be5c69824f9..21c61a9c3b15 100644

Lines of this file are not shown. View the raw message.

net/ipv4/Kconfig +10 -0
index 87983e70f03f..23b06063e1a5 100644

Lines of this file are not shown. View the raw message.

net/ipv4/esp4_offload.c +3 -0
index 3450c9ba2728..84257678160a 100644

Lines of this file are not shown. View the raw message.

net/ipv4/fib_trie.c +3 -1
index a28f525e2c47..d11fb16234a6 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_hashtables.c +5 -5
index c0de655fffd7..c68a1dae25ca 100644

Lines of this file are not shown. View the raw message.

net/ipv4/ip_input.c +5 -0
index f6b3237e88ca..eccd7897e7aa 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/ipt_CLUSTERIP.c +2 -2
index 1088564d4dbc..77e3b67e8790 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_ipv4.c +2 -0
index 31a8009f74ee..8bd7b1ec3b6a 100644

Lines of this file are not shown. View the raw message.

net/ipv6/esp6_offload.c +3 -0
index 1c3f02d05d2b..7608be04d0f5 100644

Lines of this file are not shown. View the raw message.

net/ipv6/tcp_ipv6.c +2 -0
index a558dd9d177b..c599e14be414 100644

Lines of this file are not shown. View the raw message.

net/ipv6/xfrm6_policy.c +5 -1
index af7a4b8b1e9c..247296e3294b 100644

Lines of this file are not shown. View the raw message.

net/key/af_key.c +22 -10
index 05e271098888..8bc7d399987b 100644

Lines of this file are not shown. View the raw message.

net/mac80211/main.c +6 -2
index 73893025922f..ae90ac3be59a 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mesh_pathtbl.c +1 -1
index 870c8eafef92..c2b051e0610a 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_ip.c +11 -6
index 5d6d68eaf6a9..d7a81b2250e7 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_ipmark.c +9 -1
index aba1df617d6e..eefce34a34f0 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_ipport.c +3 -0
index 1ff228717e29..4a54e9e8ae59 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_ipportip.c +3 -0
index fa88afd812fa..09737de5ecc3 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_ipportnet.c +3 -0
index eef6ecfcb409..02685371a682 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_net.c +10 -1
index 136cf0781d3a..9d1beaacb973 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_netiface.c +9 -1
index be5e95a0d876..c3ada9c63fa3 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_netnet.c +15 -1
index da4ef910b12d..b1411bc91a40 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_netport.c +10 -1
index 34448df80fb9..d26d13528fe8 100644

Lines of this file are not shown. View the raw message.

net/netfilter/ipset/ip_set_hash_netportnet.c +15 -1
index 934c1712cba8..6446f4fccc72 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_core.c +1 -1
index 8369af0c50ea..193a18bfddc0 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_netlink.c +14 -10
index 9e6898164199..c402283e7545 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_standalone.c +1 -1
index 313d1c8ff066..a7f88cdf3f87 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_flow_table_offload.c +4 -0
index d1862782be45..28306cb66719 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_ct.c +3 -3
index 781118465d46..14093d86e682 100644

Lines of this file are not shown. View the raw message.

net/netfilter/xt_connmark.c +10 -8
index e5ebc0810675..ad3c033db64e 100644

Lines of this file are not shown. View the raw message.

net/nfc/nci/core.c +1 -1
index 2cfff70f70e0..ed9019d807c7 100644

Lines of this file are not shown. View the raw message.

net/nfc/nci/data.c +3 -1
index b002e18f38c8..b4548d887489 100644

Lines of this file are not shown. View the raw message.

net/openvswitch/conntrack.c +4 -4
index 41f248895a87..0f0f380e81a4 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/af_rxrpc.c +1 -1
index 41671af6b33f..0354f90dc93a 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/ar-internal.h +9 -15
index ccb65412b670..d86894a1c35d 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/call_accept.c +2 -2
index a0b033954cea..2a14d69b171f 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/call_object.c +23 -21

44 lines not on this page · raw message

net/rxrpc/conn_client.c +38 -28

66 lines not on this page · raw message

net/rxrpc/conn_object.c +25 -24

49 lines not on this page · raw message

net/rxrpc/conn_service.c +4 -4
index 6c847720494f..68508166bbc0 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/input.c +1 -3
index 1145cb14d86f..e9178115a744 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/local_object.c +34 -34

68 lines not on this page · raw message

net/rxrpc/net_ns.c +4 -1
index cc7e30733feb..34f389975a7d 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/peer_object.c +21 -19
index 0298fe2ad6d3..26d2ae9baaf2 100644

Lines of this file are not shown. View the raw message.

net/rxrpc/proc.c +72 -3

75 lines not on this page · raw message

net/rxrpc/skbuff.c +0 -1
index 0348d2bf6f7d..580a5acffee7 100644

Lines of this file are not shown. View the raw message.

net/sched/Kconfig +1 -1
index d762e89ab74f..bc4e5da76fa6 100644

Lines of this file are not shown. View the raw message.

net/sched/act_connmark.c +2 -2
index e19885d7fe2c..31d268eedf3f 100644

Lines of this file are not shown. View the raw message.

net/sched/act_ct.c +4 -4
index f7e88d7466c3..2d41d866de3e 100644

Lines of this file are not shown. View the raw message.

net/sched/act_ctinfo.c +3 -3
index b20c8ce59905..06c74f22ab98 100644

Lines of this file are not shown. View the raw message.

net/tipc/discover.c +4 -1
index 2ae268b67465..2730310249e3 100644

Lines of this file are not shown. View the raw message.

net/tipc/topsrv.c +11 -9
index 561e709ae06a..89d8a2bd30cd 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_device.c +14 -1
index c255aac6b816..8b8e957a69c3 100644

Lines of this file are not shown. View the raw message.

net/xfrm/xfrm_replay.c +1 -1
index c6a4338a0d08..65d009e3b6bb 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/hdac_hda.h +2 -2
index d0efc5e254ae..da0ed74758b0 100644

Lines of this file are not shown. View the raw message.

sound/soc/codecs/sgtl5000.c +1 -0
index f066e016a874..edde0323799a 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/boards/bytcht_es8316.c +7 -0
index 7ed869bf1a92..81269ed5a2aa 100644

Lines of this file are not shown. View the raw message.

sound/soc/soc-pcm.c +0 -5
index 8b8a9aca2912..0e2261ee07b6 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/verifier/ref_tracking.c +36 -0
index 006b5bd99c08..525d810b10b8 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.