Skip to contentSkip to conversation

Linux 5.4.282

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 19, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.282 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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

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

 Documentation/arm64/cpu-feature-registers.rst                   |   38 ++
 Documentation/arm64/silicon-errata.rst                          |   36 ++
 Makefile                                                        |    2 
 arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi                   |   21 -
 arch/arm64/Kconfig                                              |   38 ++
 arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi                     |    4 
 arch/arm64/boot/dts/amlogic/meson-gxl.dtsi                      |    4 
 arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts        |    4 
 arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts                    |    4 
 arch/arm64/boot/dts/qcom/msm8996.dtsi                           |    2 
 arch/arm64/boot/dts/qcom/sdm845.dtsi                            |    2 
 arch/arm64/boot/dts/rockchip/rk3328.dtsi                        |    4 
 arch/arm64/include/asm/cpucaps.h                                |    3 
 arch/arm64/include/asm/cputype.h                                |   16 
 arch/arm64/kernel/cpu_errata.c                                  |   44 ++
 arch/arm64/kernel/cpufeature.c                                  |   90 ++++-
 arch/m68k/amiga/config.c                                        |    9 
 arch/m68k/atari/ataints.c                                       |    6 
 arch/m68k/include/asm/cmpxchg.h                                 |    2 
 arch/mips/include/asm/mips-cm.h                                 |    4 
 arch/mips/kernel/smp-cps.c                                      |    5 
 arch/powerpc/kvm/powerpc.c                                      |    4 
 arch/powerpc/xmon/ppc-dis.c                                     |   33 -
 arch/sparc/include/asm/oplib_64.h                               |    1 
 arch/sparc/prom/init_64.c                                       |    3 
 arch/sparc/prom/p1275.c                                         |    2 
 arch/um/kernel/time.c                                           |    4 
 arch/x86/events/intel/pt.c                                      |    4 
 arch/x86/events/intel/pt.h                                      |    4 
 arch/x86/kernel/cpu/mtrr/mtrr.c                                 |    2 
 arch/x86/kernel/devicetree.c                                    |    2 
 arch/x86/mm/pti.c                                               |    6 
 arch/x86/pci/intel_mid_pci.c                                    |    4 
 arch/x86/pci/xen.c                                              |    4 
 arch/x86/platform/intel/iosf_mbi.c                              |    4 
 arch/x86/xen/p2m.c                                              |    4 
 drivers/acpi/battery.c                                          |   16 
 drivers/acpi/sbs.c                                              |   23 -
 drivers/android/binder.c                                        |    4 
 drivers/base/core.c                                             |   13 
 drivers/base/devres.c                                           |    8 
 drivers/base/module.c                                           |    4 
 drivers/block/rbd.c                                             |   35 -
 drivers/bluetooth/btusb.c                                       |    4 
 drivers/char/hw_random/amd-rng.c                                |    4 
 drivers/char/tpm/eventlog/common.c                              |    2 
 drivers/clk/davinci/da8xx-cfgchip.c                             |    4 
 drivers/clocksource/sh_cmt.c                                    |   13 
 drivers/edac/Makefile                                           |   10 
 drivers/edac/skx_base.c                                         |   51 ++
 drivers/edac/skx_common.c                                       |  146 +++++---
 drivers/edac/skx_common.h                                       |   19 -
 drivers/firmware/turris-mox-rwtm.c                              |   18 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c                         |    7 
 drivers/gpu/drm/amd/display/dc/core/dc_surface.c                |    3 
 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c               |    5 
 drivers/gpu/drm/drm_client_modeset.c                            |    5 
 drivers/gpu/drm/etnaviv/etnaviv_gem.c                           |    6 
 drivers/gpu/drm/gma500/cdv_intel_lvds.c                         |    3 
 drivers/gpu/drm/gma500/psb_intel_lvds.c                         |    3 
 drivers/gpu/drm/i915/gem/i915_gem_mman.c                        |   47 ++
 drivers/gpu/drm/mgag200/mgag200_i2c.c                           |    2 
 drivers/gpu/drm/nouveau/nouveau_prime.c                         |    3 
 drivers/gpu/drm/panfrost/panfrost_drv.c                         |    1 
 drivers/gpu/drm/qxl/qxl_display.c                               |    3 
 drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c                         |    2 
 drivers/hid/wacom_wac.c                                         |    3 
 drivers/hwmon/adt7475.c                                         |    2 
 drivers/hwmon/max6697.c                                         |    5 
 drivers/i2c/i2c-smbus.c                                         |   69 +++
 drivers/infiniband/core/device.c                                |    6 
 drivers/infiniband/core/iwcm.c                                  |   11 
 drivers/infiniband/hw/bnxt_re/ib_verbs.c                        |    8 
 drivers/infiniband/hw/bnxt_re/qplib_fp.h                        |    6 
 drivers/infiniband/hw/mlx4/alias_GUID.c                         |    2 
 drivers/infiniband/hw/mlx4/mad.c                                |    2 
 drivers/infiniband/sw/rxe/rxe_req.c                             |    7 
 drivers/input/keyboard/qt1050.c                                 |    7 
 drivers/input/mouse/elan_i2c_core.c                             |    2 
 drivers/irqchip/irq-imx-irqsteer.c                              |   40 +-
 drivers/irqchip/irq-mbigen.c                                    |   20 -
 drivers/isdn/hardware/mISDN/hfcmulti.c                          |    7 
 drivers/leds/led-triggers.c                                     |    2 
 drivers/leds/leds-ss4200.c                                      |    7 
 drivers/macintosh/therm_windtunnel.c                            |    2 
 drivers/md/raid5.c                                              |   20 -
 drivers/media/pci/saa7134/saa7134-dvb.c                         |    8 
 drivers/media/platform/qcom/venus/vdec.c                        |    1 
 drivers/media/platform/vsp1/vsp1_histo.c                        |   20 -
 drivers/media/platform/vsp1/vsp1_pipe.h                         |    2 
 drivers/media/platform/vsp1/vsp1_rpf.c                          |    8 
 drivers/media/rc/imon.c                                         |    5 
 drivers/media/usb/uvc/uvc_ctrl.c                                |   90 +++--
 drivers/media/usb/uvc/uvc_video.c                               |   37 +-
 drivers/media/usb/uvc/uvcvideo.h                                |    5 
 drivers/mfd/omap-usb-tll.c                                      |    3 
 drivers/mtd/tests/Makefile                                      |   34 -
 drivers/mtd/tests/mtd_test.c                                    |    9 
 drivers/mtd/ubi/eba.c                                           |    3 
 drivers/net/bonding/bond_main.c                                 |    7 
 drivers/net/ethernet/brocade/bna/bna_types.h                    |    2 
 drivers/net/ethernet/brocade/bna/bnad.c                         |   11 
 drivers/net/ethernet/freescale/fec_main.c                       |   52 ++
 drivers/net/ethernet/freescale/fec_ptp.c                        |    3 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c            |    7 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c          |   13 
 drivers/net/ethernet/qlogic/qed/qed_l2.c                        |   23 -
 drivers/net/ethernet/qlogic/qede/qede_filter.c                  |   47 +-
 drivers/net/netconsole.c                                        |    2 
 drivers/net/usb/qmi_wwan.c                                      |    1 
 drivers/net/usb/sr9700.c                                        |   11 
 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c  |   18 -
 drivers/net/wireless/marvell/mwifiex/cfg80211.c                 |    2 
 drivers/net/wireless/virt_wifi.c                                |   20 -
 drivers/nvme/host/pci.c                                         |   10 
 drivers/parport/daisy.c                                         |    6 
 drivers/parport/ieee1284.c                                      |    4 
 drivers/parport/ieee1284_ops.c                                  |    3 
 drivers/parport/parport_amiga.c                                 |    2 
 drivers/parport/parport_atari.c                                 |    2 
 drivers/parport/parport_cs.c                                    |    6 
 drivers/parport/parport_gsc.c                                   |   15 
 drivers/parport/parport_ip32.c                                  |   25 -
 drivers/parport/parport_mfc3.c                                  |    2 
 drivers/parport/parport_pc.c                                    |  178 ++++------
 drivers/parport/parport_sunbpp.c                                |    2 
 drivers/parport/probe.c                                         |    7 
 drivers/parport/procfs.c                                        |   28 -
 drivers/parport/share.c                                         |   24 -
 drivers/pci/controller/pci-hyperv.c                             |    4 
 drivers/pci/controller/pcie-rockchip.c                          |   12 
 drivers/pci/setup-bus.c                                         |    6 
 drivers/pinctrl/core.c                                          |   12 
 drivers/pinctrl/freescale/pinctrl-mxs.c                         |    4 
 drivers/pinctrl/pinctrl-single.c                                |    7 
 drivers/pinctrl/ti/pinctrl-ti-iodelay.c                         |   14 
 drivers/platform/chrome/cros_ec_debugfs.c                       |    1 
 drivers/platform/mips/cpu_hwmon.c                               |    3 
 drivers/power/supply/axp288_charger.c                           |   22 -
 drivers/pwm/pwm-stm32.c                                         |    5 
 drivers/remoteproc/imx_rproc.c                                  |    5 
 drivers/rtc/interface.c                                         |    9 
 drivers/rtc/rtc-cmos.c                                          |   10 
 drivers/rtc/rtc-isl1208.c                                       |   11 
 drivers/s390/char/sclp_sd.c                                     |   10 
 drivers/scsi/mpt3sas/mpt3sas_base.c                             |   38 +-
 drivers/scsi/qla2xxx/qla_bsg.c                                  |    2 
 drivers/scsi/qla2xxx/qla_mid.c                                  |    2 
 drivers/scsi/qla2xxx/qla_nvme.c                                 |    5 
 drivers/scsi/qla2xxx/qla_os.c                                   |    7 
 drivers/scsi/ufs/ufshcd.c                                       |   11 
 drivers/spi/spi-fsl-lpspi.c                                     |   11 
 drivers/tty/serial/serial_core.c                                |    8 
 drivers/usb/core/urb.c                                          |   31 +
 drivers/usb/gadget/udc/core.c                                   |   10 
 drivers/usb/serial/usb_debug.c                                  |    7 
 drivers/usb/usbip/vhci_hcd.c                                    |    9 
 fs/btrfs/free-space-cache.c                                     |    1 
 fs/exec.c                                                       |    8 
 fs/ext4/mballoc.c                                               |    3 
 fs/ext4/namei.c                                                 |   73 +++-
 fs/ext4/xattr.c                                                 |    6 
 fs/f2fs/inode.c                                                 |    3 
 fs/file.c                                                       |    1 
 fs/hfs/inode.c                                                  |    3 
 fs/hfsplus/bfind.c                                              |   15 
 fs/hfsplus/extents.c                                            |    9 
 fs/hfsplus/hfsplus_fs.h                                         |   21 +
 fs/jbd2/journal.c                                               |    1 
 fs/jfs/jfs_imap.c                                               |    5 
 fs/nilfs2/btnode.c                                              |   25 +
 fs/nilfs2/btree.c                                               |    4 
 fs/nilfs2/segment.c                                             |    7 
 fs/udf/balloc.c                                                 |   51 +-
 fs/udf/super.c                                                  |    3 
 include/linux/compiler_attributes.h                             |    1 
 include/linux/irq.h                                             |    7 
 include/linux/irqdomain.h                                       |   10 
 include/linux/objagg.h                                          |    1 
 include/linux/pci_ids.h                                         |    2 
 include/linux/platform_data/x86/soc.h                           |   65 +++
 include/linux/qed/qed_eth_if.h                                  |   21 -
 include/linux/trace_events.h                                    |    1 
 include/linux/usb.h                                             |    1 
 include/net/netfilter/nf_tables.h                               |   21 +
 include/net/sctp/sctp.h                                         |    4 
 include/net/sctp/structs.h                                      |    8 
 include/trace/events/rpcgss.h                                   |    2 
 include/uapi/linux/netfilter/nf_tables.h                        |    2 
 include/uapi/linux/zorro_ids.h                                  |    3 
 kernel/debug/kdb/kdb_io.c                                       |    6 
 kernel/dma/mapping.c                                            |    2 
 kernel/events/core.c                                            |    2 
 kernel/events/internal.h                                        |    2 
 kernel/irq/chip.c                                               |   32 +
 kernel/irq/irqdesc.c                                            |    1 
 kernel/time/ntp.c                                               |    9 
 kernel/time/tick-broadcast.c                                    |   24 +
 kernel/trace/tracing_map.c                                      |    6 
 kernel/watchdog_hld.c                                           |   11 
 lib/decompress_bunzip2.c                                        |    3 
 lib/kobject_uevent.c                                            |   17 
 lib/objagg.c                                                    |   18 -
 mm/page-writeback.c                                             |   30 +
 net/bluetooth/l2cap_core.c                                      |    1 
 net/core/filter.c                                               |   15 
 net/core/link_watch.c                                           |    4 
 net/ipv4/nexthop.c                                              |    7 
 net/ipv4/route.c                                                |    2 
 net/ipv6/addrconf.c                                             |    3 
 net/ipv6/ndisc.c                                                |   34 +
 net/iucv/af_iucv.c                                              |    4 
 net/netfilter/ipset/ip_set_list_set.c                           |    3 
 net/netfilter/ipvs/ip_vs_proto_sctp.c                           |    4 
 net/netfilter/nf_conntrack_netlink.c                            |    3 
 net/netfilter/nf_tables_api.c                                   |  128 +------
 net/netfilter/nft_set_hash.c                                    |    8 
 net/netfilter/nft_set_rbtree.c                                  |    6 
 net/packet/af_packet.c                                          |   86 ++++
 net/sctp/input.c                                                |   46 +-
 net/sctp/proc.c                                                 |   10 
 net/sctp/socket.c                                               |    6 
 net/smc/smc_core.c                                              |   32 -
 net/sunrpc/auth_gss/gss_krb5_keys.c                             |    2 
 net/sunrpc/clnt.c                                               |    3 
 net/sunrpc/sched.c                                              |    4 
 net/tipc/udp_media.c                                            |    5 
 net/wireless/nl80211.c                                          |   10 
 net/wireless/util.c                                             |    8 
 scripts/gcc-x86_32-has-stack-protector.sh                       |    2 
 scripts/gcc-x86_64-has-stack-protector.sh                       |    2 
 security/apparmor/lsm.c                                         |    7 
 sound/pci/hda/patch_hdmi.c                                      |    2 
 sound/soc/codecs/max98088.c                                     |   10 
 sound/soc/intel/common/soc-intel-quirks.h                       |   55 ---
 sound/usb/helper.c                                              |   16 
 sound/usb/helper.h                                              |    1 
 sound/usb/line6/driver.c                                        |    5 
 sound/usb/mixer_scarlett_gen2.c                                 |    2 
 sound/usb/quirks.c                                              |   12 
 sound/usb/stream.c                                              |    4 
 tools/lib/bpf/btf_dump.c                                        |    8 
 tools/memory-model/lock.cat                                     |   20 -
 tools/perf/util/sort.c                                          |    2 
 tools/testing/selftests/bpf/prog_tests/send_signal.c            |    3 
 tools/testing/selftests/bpf/progs/btf_dump_test_case_multidim.c |    4 
 tools/testing/selftests/bpf/progs/btf_dump_test_case_syntax.c   |    4 
 tools/testing/selftests/bpf/test_sockmap.c                      |    3 
 tools/testing/selftests/net/forwarding/devlink_lib.sh           |    2 
 tools/testing/selftests/sigaltstack/current_stack_pointer.h     |    2 
 250 files changed, 2102 insertions(+), 1194 deletions(-)

Adrian Hunter (4):
perf/x86/intel/pt: Fix pt_topa_entry_for_page() address calculation
perf: Fix perf_aux_size() for greater-than 32-bit size
perf: Prevent passing zero nr_pages to rb_alloc_aux() perf/x86/intel/pt: Fix a topa_entry base address calculation

Al Viro (2):
powerpc: fix a file leak in kvm_vcpu_ioctl_enable_cap() protect the fetch of ->fd[fd] in do_dup2() from mispredictions

Alan Stern (1):
tools/memory-model: Fix bug in lock.cat

Aleksandr Burakov (1):
saa7134: Unchecked i2c_transfer function result fixed

Aleksandr Mishin (1):
remoteproc: imx_rproc: Skip over memory region when node value is NULL

Alex Shi (1):
fs/nilfs2: remove some unused macros to tame gcc

Alexander Maltsev (1):
netfilter: ipset: Add list flush to cancel_gc

Alexandra Winter (1):
net/iucv: fix use after free in iucv_sock_close()

Alexey Kodanev (1):
bna: adjust 'name' buf size of bna_tcb and bna_ccb structures

Amit Cohen (1):
selftests: forwarding: devlink_lib: Wait for udev events after reloading

Amit Daniel Kachhap (1):
arm64: cpufeature: Fix the visibility of compat hwcaps

Andi Kleen (1):
x86/mtrr: Check if fixed MTRRs exist before saving them

Andi Shyti (1):
drm/i915/gem: Fix Virtual Memory mapping boundaries calculation

Andreas Larsson (1):
sparc64: Fix incorrect function signature and add prototype for prom_cif_init

Andrei Lalaev (1):
Input: qt1050 - handle CHIP_ID reading error

Andrii Nakryiko (1):
libbpf: Fix no-args func prototype BTF dumping syntax

Andy Shevchenko (1):
driver core: Cast to (void *) with __force for __percpu pointer

Arnd Bergmann (3):
EDAC, i10nm: make skx_common.o a separate module
mtd: make mtd_test.c a separate module
kdb: address -Wformat-security warnings

Baochen Qiang (2):

      wifi: cfg80211: fix typo in cfg80211_calculate_bitrate_he()
      wifi: cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he()

Baokun Li (2):
ext4: check dot and dotdot of dx_root before making dir indexed
ext4: make sure the first directory block is not a hole

Bart Van Assche (1):
RDMA/iwcm: Fix a use-after-free related to destroying CM IDs

Bastien Curutchet (1):
clk: davinci: da8xx-cfgchip: Initialize clk_init_data before use

Benjamin Coddington (2):
SUNRPC: Fixup gss_status tracepoint error output
SUNRPC: Fix a race to wake a sync task

Besar Wicaksono (1):
arm64: Add Neoverse-V2 part

Breno Leitao (1):
net: netconsole: Disable target before netpoll cleanup

Carlos Llamas (1):
binder: fix hang of unregistered readers

Chao Yu (3):
hfsplus: fix to avoid false alarm of circular locking
hfs: fix to initialize fields of hfs_inode_info after hfs_alloc_inode()
f2fs: fix to don't dirty inode for readonly filesystem

Chen Ni (3):
x86/xen: Convert comma to semicolon drm/qxl: Add check for drm_cvt_mode
ASoC: max98088: Check for clk_prepare_enable() error

Chen-Yu Tsai (1):
PCI: rockchip: Make 'ep-gpios' DT property optional

Chengen Du (1):
af_packet: Handle outgoing VLAN packets without hardware offloading

Chris Wulff (1):
usb: gadget: core: Check for unset descriptor

Corey Minyard (1):
i2c: smbus: Don't filter out duplicate alerts

Csókás Bence (1):
net: fec: Refactor: #define magic constants

Csókás, Bence (3):
net: fec: Fix FEC_ECR_EN1588 being cleared on link-down
rtc: interface: Add RTC offset to alarm after fix-up
net: fec: Stop PPS on driver remove

Damien Le Moal (1):
scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES

Dan Carpenter (1):
mISDN: Fix a use after free in hfcmulti_tx()

Dan Williams (1):
driver core: Fix uevent_show() vs driver detach race

Daniel Schaefer (1):
media: uvcvideo: Override default flags

Daniele Palmas (1):
net: usb: qmi_wwan: fix memory leak for not ip packets

Danilo Krummrich (1):
drm/nouveau: prime: fix refcount underflow

Dikshita Agarwal (1):
media: venus: fix use after free in vdec_close

Dmitry Antipov (1):
Bluetooth: l2cap: always unlock channel in l2cap_conless_channel()

Dmitry Baryshkov (2):
arm64: dts: qcom: sdm845: add power-domain to UFS PHY
arm64: dts: qcom: msm8996: specify UFS core_clk frequencies

Dmitry Torokhov (1):
Input: elan_i2c - do not leave interrupt disabled on suspend failure

Dominique Martinet (1):
MIPS: Octeron: remove source file executable bit

Dong Aisheng (1):
remoteproc: imx_rproc: Fix ignoring mapping vdev regions

Douglas Anderson (1):
kdb: Use the passed prompt in kdb_position_cursor()

Dragan Simic (1):
drm/panfrost: Mark simple_ondemand governor as softdep

Eero Tamminen (1):
m68k: atari: Fix TT bootup freeze / unexpected (SCU) interrupt messages

En-Wei Wu (1):
wifi: virt_wifi: avoid reporting connection success with wrong SSID

Eric Dumazet (1):
net: linkwatch: use system_unbound_wq

FUJITA Tomonori (1):
PCI: Add Edimax Vendor ID to pci_ids.h

Fedor Pchelkin (1):
ubi: eba: properly rollback inside self_check_eba

Filipe Manana (1):
btrfs: fix bitmap leak when loading free space cache on duplicate entry

Florian Westphal (1):
netfilter: nf_tables: prefer nft_chain_validate

Fred Li (1):
bpf: Fix a segment issue when downgrading gso_size

Gaosheng Cui (1):
gss_krb5: Fix the error handling path for crypto_sync_skcipher_setkey

Geliang Tang (1):
selftests/bpf: Check length of recv in test_sockmap

George Kennedy (1):
serial: core: check uartclk for zero to avoid divide by zero

Greg Kroah-Hartman (2):
USB: move snd_usb_pipe_sanity_check into the USB core Linux 5.4.282

Gregory CLEMENT (1):
MIPS: SMP-CPS: Fix address for GCR_ACCESS register for CM3 and later

Guangguan Wang (1):
net/smc: set rmb's SG_MAX_SINGLE_ALLOC limitation only when CONFIG_ARCH_NO_SG_CHAIN is defined

Guenter Roeck (4):
hwmon: (max6697) Fix underflow when writing limit attributes
hwmon: (max6697) Fix swapped temp{1,8} critical alarms
i2c: smbus: Improve handling of stuck alerts
i2c: smbus: Send alert notifications to all devices if source not found

Hans de Goede (4):
leds: trigger: Unregister sysfs attributes before calling deactivate()
ASoC: Intel: Move soc_intel_is_foo() helpers to a generic header
power: supply: axp288_charger: Fix constant_charge_voltage writes
power: supply: axp288_charger: Round constant_charge_voltage writes down

Hilda Wu (1):
Bluetooth: btusb: Add RTL8852BE device 0489:e125 to device tables

Honggang LI (1):
RDMA/rxe: Don't set BTH_ACK_MASK for UC or UD QPs

Ian Forbes (1):
drm/vmwgfx: Fix overlay when using Screen Targets

Ido Schimmel (3):
lib: objagg: Fix general protection fault
mlxsw: spectrum_acl_erp: Fix object nesting warning
ipv4: Fix incorrect source address in Record Route option

Ilpo Järvinen (7):
x86/of: Return consistent error type from x86_of_pci_irq_enable() x86/pci/intel_mid_pci: Fix PCIBIOS_* return code handling x86/pci/xen: Fix PCIBIOS_* return code handling x86/platform/iosf_mbi: Convert PCIBIOS_* return codes to errnos
PCI: Fix resource double counting on remove & rescan
leds: ss4200: Convert PCIBIOS_* return codes to errnos
hwrng: amd - Convert PCIBIOS_* return codes to errnos

Ilya Dryomov (3):
rbd: don't assume rbd_is_lock_owner() for exclusive mappings
rbd: rename RBD_LOCK_STATE_RELEASING and releasing_wait
rbd: don't assume RBD_LOCK_STATE_LOCKED for exclusive mappings

Ismael Luceno (1):
ipvs: Avoid unnecessary calls to skb_is_gso_sctp

Jack Wang (1):
bnxt_re: Fix imm_data endianness

James Morse (1):
arm64: cpufeature: Force HWCAP to be based on the sysreg visible to user-space

Jan Kara (3):
ext4: avoid writing unitialized memory to disk in EA inodes
udf: Avoid using corrupted block bitmap buffer
mm: avoid overflows in dirty throttling logic

Jari Ruusu (1):
Fix gcc 4.9 build issue in 5.4.y

Javier Carrasco (1):
mfd: omap-usb-tll: Use struct_size to allocate tll

Jeongjun Park (1):
jfs: Fix array-index-out-of-bounds in diFree

Jerome Brunet (1):
arm64: dts: amlogic: gx: correct hdmi clocks

Jiaxun Yang (1):
platform: mips: cpu_hwmon: Disable driver on unsupported hardware

Joe Hattori (1):
char: tpm: Fix possible memory leak in tpm_bios_measurements_open()

Joe Perches (2):
parport: Convert printk(KERN_<LEVEL> to pr_<level>(
parport: Standardize use of printmode

Johannes Berg (4):
wifi: virt_wifi: don't use strlen() in const context
um: time-travel: fix time-travel-start option
net: bonding: correctly annotate RCU in bond_should_notify_peers()
wifi: nl80211: don't give key data to userspace

Jonas Karlman (1):
arm64: dts: rockchip: Increase VOP clk rate on RK3328

Joy Chakraborty (2):
rtc: cmos: Fix return value of nvmem callbacks
rtc: isl1208: Fix return value of nvmem callbacks

Justin Stitt (2):
ntp: Clamp maxerror and esterror to operating range
ntp: Safeguard against time_constant overflow

Kees Cook (1):
exec: Fix ToCToU between perm check and set-uid/gid usage

Kemeng Shi (2):
jbd2: avoid memleak in jbd2_journal_write_metadata_buffer
ext4: fix wrong unit use in ext4_mb_find_by_goal

Kuniyuki Iwashima (1):
sctp: Fix null-ptr-deref in reuseport_add_sock().

Lance Richardson (1):
dma: fix call order in dmam_free_coherent

Laurent Pinchart (2):
media: renesas: vsp1: Fix _irqsave and _irq mix
media: renesas: vsp1: Store RPF partition configuration per RPF instance

Leon Romanovsky (4):
RDMA/mlx4: Fix truncated output warning in mad.c RDMA/mlx4: Fix truncated output warning in alias_GUID.c RDMA/device: Return error earlier if port in not valid
nvme-pci: add missing condition check for existence of mapped data

Lucas Stach (4):
drm/etnaviv: fix DMA direction handling for cached RW buffers irqchip/imx-irqsteer: Constify irq_chip struct irqchip/imx-irqsteer: Add runtime PM support
drm/bridge: analogix_dp: properly handle zero sized AUX transactions

Ma Jun (1):
drm/amdgpu: Fix the null pointer dereference to ras_manager

Ma Ke (4):
drm/gma500: fix null pointer dereference in cdv_intel_lvds_get_modes drm/gma500: fix null pointer dereference in psb_intel_lvds_get_modes
net: usb: sr9700: fix uninitialized variable use in sr_mdio_read drm/client: fix null pointer dereference in drm_client_modeset_probe

Maciej Żenczykowski (1):
ipv6: fix ndisc_is_useropt() handling for PIO

Manish Rangankar (1):
scsi: qla2xxx: During vport delete send async logout explicitly

Manivannan Sadhasivam (1):
PCI: rockchip: Use GPIOD_OUT_LOW flag while requesting ep_gpio

Marc Zyngier (2):
genirq: Allow the PM device to originate from irq domain
genirq: Allow irq_chip registration functions to take a const irq_chip

Marco Cavenati (1):
perf/x86/intel/pt: Fix topa_entry base length

Marco Felsch (1):
ARM: dts: imx6qdl-kontron-samx6i: move phy reset into phy-node

Marek Behún (2):
firmware: turris-mox-rwtm: Fix checking return value of wait_for_completion_timeout()
firmware: turris-mox-rwtm: Initialize completion before mailbox

Marek Marczykowski-Górecki (1):
USB: serial: debug: do not echo input by default

Mark Rutland (11):
arm64: cputype: Add Cortex-X4 definitions
arm64: cputype: Add Neoverse-V3 definitions
arm64: errata: Add workaround for Arm errata 3194386 and 3312417
arm64: cputype: Add Cortex-X3 definitions
arm64: cputype: Add Cortex-A720 definitions
arm64: cputype: Add Cortex-X925 definitions
arm64: errata: Unify speculative SSBS errata logic
arm64: errata: Expand speculative SSBS workaround
arm64: cputype: Add Cortex-X1C definitions
arm64: cputype: Add Cortex-A725 definitions
arm64: errata: Expand speculative SSBS workaround (again)

Menglong Dong (1):
bpf: kprobe: remove unused declaring of bpf_kprobe_override

Michael Ellerman (2):
powerpc/xmon: Fix disassembly CPU feature checks selftests/sigaltstack: Fix ppc64 GCC build

Michael Walle (4):
ARM: dts: imx6qdl-kontron-samx6i: fix PHY reset
ARM: dts: imx6qdl-kontron-samx6i: fix board reset
ARM: dts: imx6qdl-kontron-samx6i: fix PCIe reset polarity
ARM: dts: imx6qdl-kontron-samx6i: fix phy-mode

Michal Pecio (1):
media: uvcvideo: Fix the bandwdith quirk on USB 3.x

Namhyung Kim (1):
perf report: Fix condition in sort__sym_cmp()

Nathan Chancellor (1):
kbuild: Fix '-S -c' in x86 stack protector scripts

NeilBrown (1):
SUNRPC: avoid soft lockup when transmitting UDP to reachable server.

Nick Bowler (1):
macintosh/therm_windtunnel: fix module unload.

Nicolas Dichtel (1):
ipv6: take care of scope when choosing the src addr

Niklas Söderlund (1):
clocksource/drivers/sh_cmt: Address race condition for clock events

Nilesh Javali (1):
scsi: qla2xxx: validate nvme_local_port correctly

Oleksandr Suvorov (1):
spi: fsl-lpspi: remove unneeded array

Oliver Neukum (1):
usb: vhci-hcd: Do not drop references before new references are gained

Pablo Neira Ayuso (4):
netfilter: nf_tables: rise cap on SELinux secmark context
netfilter: ctnetlink: use helper function to calculate expect ID
netfilter: nf_tables: set element extended ACK reporting support
netfilter: nf_tables: use timestamp to check for set element timeout

Paolo Pisati (1):
m68k: amiga: Turn off Warp1260 interrupts during boot

Peng Fan (2):
pinctrl: freescale: mxs: Fix refcount of child
remoteproc: imx_rproc: ignore mapping vdev regions

Peter Oberparleiter (1):
s390/sclp: Prevent release of buffer in I/O

Peter Zijlstra (1):
x86/mm: Fix pti_clone_pgtable() alignment assumption

Petr Machata (1):
net: nexthop: Initialize all fields in dumped nexthops

Pierre-Louis Bossart (1):
ASoC: Intel: use soc_intel_is_byt_cr() only when IOSF_MBI is reachable

Qiuxu Zhuo (1):
EDAC/skx_common: Add new ADXL components for 2-level memory

Rafael Beims (1):
wifi: mwifiex: Fix interface type change

Rafał Miłecki (1):
arm64: dts: mediatek: mt7622: fix "emmc" pinctrl mux

Ricardo Ribalda (3):
media: imon: Fix race getting ictx->lock
media: uvcvideo: Allow entity-defined get_info and get_cur
media: uvcvideo: Ignore empty TS packets

Roman Smirnov (1):
udf: prevent integer overflow in udf_bitmap_free_blocks()

Ross Lagerwall (1):
decompress_bunzip2: fix rare decompression failure

Ryusuke Konishi (2):
nilfs2: avoid undefined behavior in nilfs_cnt32_ge macro
nilfs2: handle inconsistent state in nilfs_btnode_create_block()

Samasth Norway Ananda (1):
wifi: brcmsmac: LCN PHY code is used for BCM4313 2G-only device

Saurav Kashyap (1):
scsi: qla2xxx: Return ENOBUFS if sg_cnt is more than one for ELS cmds

Sean Young (1):
media: Revert "media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()"

Shahar Shitrit (1):
net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys

Shai Malin (1):
qed: Improve the stack space of filter_config()

Shay Drory (1):
genirq/irqdesc: Honor caller provided affinity in alloc_desc()

Shenwei Wang (1):
irqchip/imx-irqsteer: Handle runtime power management correctly

Shigeru Yoshida (1):
tipc: Return non-zero value from tipc_udp_addr2str() on error

Shreyas Deodhar (2):
scsi: qla2xxx: Fix for possible memory corruption
scsi: qla2xxx: Complete command early within lock

Sreekanth Reddy (1):
scsi: mpt3sas: Remove scsi_dma_map() error messages

Stefan Raspl (1):
net/smc: Allow SMC-D 1MB DMB allocations

Stefan Wahren (1):
spi: spi-fsl-lpspi: Fix scldiv calculation

Steven 'Steve' Kendall (1):
ALSA: hda: Add HP MP9 G4 Retail System AMS to force connect list

Sung Joon Kim (1):
drm/amd/display: Check for NULL pointer

Takashi Iwai (3):
ALSA: usb-audio: Correct surround channels in UAC1 channel map
ALSA: line6: Fix racy access to midibuf
ALSA: hda/hdmi: Yet more pin fix for HP EliteDesk 800 G4

Tatsunosuke Tobita (1):
HID: wacom: Modify pen IDs

Thomas Gleixner (3):
watchdog/perf: properly initialize the turbo mode timestamp and rearm counter
ASoC: Intel: Convert to new X86 CPU match macros
tick/broadcast: Move per CPU pointer access into the atomic section

Thomas Weißschuh (2):
ACPI: battery: create alarm sysfs attribute atomically
ACPI: SBS: manage alarm sysfs attribute through psy core

Thomas Zimmermann (1):
drm/mgag200: Set DDC timeout in milliseconds

Thorsten Blum (1):
m68k: cmpxchg: Fix return value for default case in __arch_xchg()

Tony Luck (2):
EDAC, skx_common: Refactor so that we initialize "dev" in result of adxl decode. EDAC, skx: Retrieve and print retry_rd_err_log registers

Tze-nan Wu (1):
tracing: Fix overflow in get_free_elt()

Tzung-Bi Shih (1):
platform/chrome: cros_ec_debugfs: fix wrong EC message version

Uwe Kleine-König (2):
pwm: stm32: Always do lazy disabling
pinctrl: ti: ti-iodelay: Drop if block with always false condition

Vamshi Gajjela (1):

      scsi: ufs: core: Fix hba->last_dme_cmd_tstamp timestamp updating logic

WangYuli (2):
Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x13d3:0x3591 nvme/pci: Add APST quirk for Lenovo N60z laptop

Wayne Tung (1):
hwmon: (adt7475) Fix default duty on fan is disabled

Wei Liu (1):
PCI: hv: Return zero, not garbage, when reading PCI_INTERRUPT_PIN

Xiao Liang (1):
apparmor: Fix null pointer deref when receiving skb during sock creation

Xin Long (1):
sctp: move hlist_node and hashent out of sctp_ep_common

Yang Yingliang (3):
pinctrl: core: fix possible memory leak when pinctrl_enable() fails
pinctrl: single: fix possible memory leak when pinctrl_enable() fails
pinctrl: ti: ti-iodelay: fix possible memory leak when pinctrl_enable() fails

Yipeng Zou (1):
irqchip/mbigen: Fix mbigen node address layout

Yonghong Song (1):
selftests/bpf: Fix send_signal test with nested CONFIG_PARAVIRT

Yu Kuai (1):
md/raid5: avoid BUG_ON() while continue reshape after reassembling

Yu Liao (1):
tick/broadcast: Make takeover of broadcast hrtimer reliable

Yunke Cao (1):
media: uvcvideo: Use entity get_cur in uvc_ctrl_set

Zheng Yejian (1):
media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()

Zijun Hu (2):
kobject_uevent: Fix OOB access within zap_modalias_env()
devres: Fix memory leakage caused by driver API devm_free_percpu()

tuhaowen (1):
dev/parport: fix the array out-of-bounds risk

author maintainer
#1 lore raw
Documentation/arm64/cpu-feature-registers.rst +37 -1
index 2955287e9acc..a42b5712d726 100644
@@ -92,7 +92,7 @@ operation if the source belongs to the supported system register space.
 
 The infrastructure emulates only the following system register space::
 
-	Op0=3, Op1=0, CRn=0, CRm=0,4,5,6,7
+	Op0=3, Op1=0, CRn=0, CRm=0,2,3,4,5,6,7
 
 (See Table C5-6 'System instruction encodings for non-Debug System
 register accesses' in ARMv8 ARM DDI 0487A.h, for the list of
@@ -167,6 +167,42 @@ infrastructure:
      | EL0                          | [3-0]   |    n    |
      +------------------------------+---------+---------+
 
+  10) MVFR0_EL1 - AArch32 Media and VFP Feature Register 0
+
+     +------------------------------+---------+---------+
+     | Name                         |  bits   | visible |
+     +------------------------------+---------+---------+
+     | FPDP                         | [11-8]  |    y    |
+     +------------------------------+---------+---------+
+
+  11) MVFR1_EL1 - AArch32 Media and VFP Feature Register 1
+
+     +------------------------------+---------+---------+
+     | Name                         |  bits   | visible |
+     +------------------------------+---------+---------+
+     | SIMDFMAC                     | [31-28] |    y    |
+     +------------------------------+---------+---------+
+     | SIMDSP                       | [19-16] |    y    |
+     +------------------------------+---------+---------+
+     | SIMDInt                      | [15-12] |    y    |
+     +------------------------------+---------+---------+
+     | SIMDLS                       | [11-8]  |    y    |
+     +------------------------------+---------+---------+
+
+  12) ID_ISAR5_EL1 - AArch32 Instruction Set Attribute Register 5
+
+     +------------------------------+---------+---------+
+     | Name                         |  bits   | visible |
+     +------------------------------+---------+---------+
+     | CRC32                        | [19-16] |    y    |
+     +------------------------------+---------+---------+
+     | SHA2                         | [15-12] |    y    |
+     +------------------------------+---------+---------+
+     | SHA1                         | [11-8]  |    y    |
+     +------------------------------+---------+---------+
+     | AES                          | [7-4]   |    y    |
+     +------------------------------+---------+---------+
+
 
   3) MIDR_EL1 - Main ID Register
 
Documentation/arm64/silicon-errata.rst +36 -0
index 6b70b6aabcff..00755541a9c5 100644
@@ -88,12 +88,48 @@ stable kernels.
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Cortex-A76      | #1463225        | ARM64_ERRATUM_1463225       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A76      | #3324349        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A77      | #3324348        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A78      | #3324344        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A78C     | #3324346,3324347| ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A710     | #3324338        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A720     | #3456091        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-A725     | #3456106        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X1       | #3324344        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X1C      | #3324346        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X2       | #3324338        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X3       | #3324335        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X4       | #3194386        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Cortex-X925     | #3324334        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1188873,1418040| ARM64_ERRATUM_1418040       |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1349291        | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 | ARM            | Neoverse-N1     | #1542419        | ARM64_ERRATUM_1542419       |
 +----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-N1     | #3324349        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-N2     | #3324339        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-V1     | #3324341        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-V2     | #3324336        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
+| ARM            | Neoverse-V3     | #3312417        | ARM64_ERRATUM_3194386       |
++----------------+-----------------+-----------------+-----------------------------+
 | ARM            | MMU-500         | #841119,826419  | N/A                         |
 +----------------+-----------------+-----------------+-----------------------------+
 +----------------+-----------------+-----------------+-----------------------------+
Makefile +1 -1
index ccb7ff131590..4e9e7945fef4 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 281
+SUBLEVEL = 282
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi +17 -4
index 5e454a694b78..254b3edc2bc1 100644
@@ -259,8 +259,20 @@
 &fec {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_enet>;
-	phy-mode = "rgmii";
-	phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+	phy-connection-type = "rgmii-id";
+	phy-handle = <&ethphy>;
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		ethphy: ethernet-phy@1 {
+			compatible = "ethernet-phy-ieee802.3-c22";
+			reg = <1>;
+			reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+			reset-assert-us = <1000>;
+		};
+	};
 };
 
 &i2c_intern {
@@ -500,7 +512,7 @@
 			MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
 			MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
 			MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
-			MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25    0x1b0b0 /* RST_GBE0_PHY# */
+			MX6QDL_PAD_NANDF_D1__GPIO2_IO01       0x1b0b0 /* RST_GBE0_PHY# */
 		>;
 	};
 
@@ -713,7 +725,7 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pcie>;
 	wake-up-gpio = <&gpio6 18 GPIO_ACTIVE_HIGH>;
-	reset-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
+	reset-gpio = <&gpio3 13 GPIO_ACTIVE_LOW>;
 };
 
 /* LCD_BKLT_PWM */
@@ -801,5 +813,6 @@
 	/* CPLD is feeded by watchdog (hardwired) */
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_wdog1>;
+	fsl,ext-reset-output;
 	status = "okay";
 };
arch/arm64/Kconfig +38 -0
index 384b1bf56667..562558e0915c 100644
@@ -590,6 +590,44 @@ config ARM64_ERRATUM_1742098
 
 	  If unsure, say Y.
 
+config ARM64_ERRATUM_3194386
+	bool "Cortex-*/Neoverse-*: workaround for MSR SSBS not self-synchronizing"
+	default y
+	help
+	  This option adds the workaround for the following errata:
+
+	  * ARM Cortex-A76 erratum 3324349
+	  * ARM Cortex-A77 erratum 3324348
+	  * ARM Cortex-A78 erratum 3324344
+	  * ARM Cortex-A78C erratum 3324346
+	  * ARM Cortex-A78C erratum 3324347
+	  * ARM Cortex-A710 erratam 3324338
+	  * ARM Cortex-A720 erratum 3456091
+	  * ARM Cortex-A725 erratum 3456106
+	  * ARM Cortex-X1 erratum 3324344
+	  * ARM Cortex-X1C erratum 3324346
+	  * ARM Cortex-X2 erratum 3324338
+	  * ARM Cortex-X3 erratum 3324335
+	  * ARM Cortex-X4 erratum 3194386
+	  * ARM Cortex-X925 erratum 3324334
+	  * ARM Neoverse-N1 erratum 3324349
+	  * ARM Neoverse N2 erratum 3324339
+	  * ARM Neoverse-V1 erratum 3324341
+	  * ARM Neoverse V2 erratum 3324336
+	  * ARM Neoverse-V3 erratum 3312417
+
+	  On affected cores "MSR SSBS, #0" instructions may not affect
+	  subsequent speculative instructions, which may permit unexepected
+	  speculative store bypassing.
+
+	  Work around this problem by placing a Speculation Barrier (SB) or
+	  Instruction Synchronization Barrier (ISB) after kernel changes to
+	  SSBS. The presence of the SSBS special-purpose register is hidden
+	  from hwcaps and EL0 reads of ID_AA64PFR1_EL1, such that userspace
+	  will use the PR_SPEC_STORE_BYPASS prctl to change SSBS.
+
+	  If unsure, say Y.
+
 config CAVIUM_ERRATUM_22375
 	bool "Cavium erratum 22375, 24313"
 	default y
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +2 -2
index 0cb40326b0d3..e54473f98b02 100644
@@ -326,8 +326,8 @@
 		 <&reset RESET_HDMI_SYSTEM_RESET>,
 		 <&reset RESET_HDMI_TX>;
 	reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
-	clocks = <&clkc CLKID_HDMI_PCLK>,
-		 <&clkc CLKID_CLK81>,
+	clocks = <&clkc CLKID_HDMI>,
+		 <&clkc CLKID_HDMI_PCLK>,
 		 <&clkc CLKID_GCLK_VENCI_INT0>;
 	clock-names = "isfr", "iahb", "venci";
 };
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +2 -2
index 6809f495a503..308db3bc417b 100644
@@ -273,8 +273,8 @@
 		 <&reset RESET_HDMI_SYSTEM_RESET>,
 		 <&reset RESET_HDMI_TX>;
 	reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
-	clocks = <&clkc CLKID_HDMI_PCLK>,
-		 <&clkc CLKID_CLK81>,
+	clocks = <&clkc CLKID_HDMI>,
+		 <&clkc CLKID_HDMI_PCLK>,
 		 <&clkc CLKID_GCLK_VENCI_INT0>;
 	clock-names = "isfr", "iahb", "venci";
 };
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +2 -2
index eec9ec1db682..cdfcaac93234 100644
@@ -235,8 +235,8 @@
 	/* eMMC is shared pin with parallel NAND */
 	emmc_pins_default: emmc-pins-default {
 		mux {
-			function = "emmc", "emmc_rst";
-			groups = "emmc";
+			function = "emmc";
+			groups = "emmc", "emmc_rst";
 		};
 
 		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +2 -2
index ee57fccd489a..03fbc802985d 100644
@@ -198,8 +198,8 @@
 	/* eMMC is shared pin with parallel NAND */
 	emmc_pins_default: emmc-pins-default {
 		mux {
-			function = "emmc", "emmc_rst";
-			groups = "emmc";
+			function = "emmc";
+			groups = "emmc", "emmc_rst";
 		};
 
 		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
arch/arm64/boot/dts/qcom/msm8996.dtsi +1 -1
index 8bfb897b0e81..f82f23a10fae 100644
@@ -1386,7 +1386,7 @@
 				<&gcc GCC_UFS_RX_SYMBOL_0_CLK>;
 			freq-table-hz =
 				<100000000 200000000>,
-				<0 0>,
+				<100000000 200000000>,
 				<0 0>,
 				<0 0>,
 				<0 0>,
arch/arm64/boot/dts/qcom/sdm845.dtsi +2 -0
index b4a0234f66d1..37d45a5ab6f6 100644
@@ -1420,6 +1420,8 @@
 			clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
 				 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
 
+			power-domains = <&gcc UFS_PHY_GDSC>;
+
 			resets = <&ufs_mem_hc 0>;
 			reset-names = "ufsphy";
 			status = "disabled";
arch/arm64/boot/dts/rockchip/rk3328.dtsi +2 -2
index ef45d5607ea1..9f300719a8fd 100644
@@ -763,8 +763,8 @@
 			<0>, <24000000>,
 			<24000000>, <24000000>,
 			<15000000>, <15000000>,
-			<100000000>, <100000000>,
-			<100000000>, <100000000>,
+			<300000000>, <100000000>,
+			<400000000>, <100000000>,
 			<50000000>, <100000000>,
 			<100000000>, <100000000>,
 			<50000000>, <50000000>,
arch/arm64/include/asm/cpucaps.h +2 -1
index 3b16cbc945cf..dbf3ef949c1e 100644
@@ -57,7 +57,8 @@
 #define ARM64_WORKAROUND_1542419		47
 #define ARM64_SPECTRE_BHB			48
 #define ARM64_WORKAROUND_1742098		49
+#define ARM64_WORKAROUND_SPECULATIVE_SSBS	50
 
-#define ARM64_NCAPS				50
+#define ARM64_NCAPS				51
 
 #endif /* __ASM_CPUCAPS_H */
arch/arm64/include/asm/cputype.h +16 -0
index 892fc0ceccb8..18b5267ff48e 100644
@@ -80,6 +80,14 @@
 #define ARM_CPU_PART_CORTEX_X2		0xD48
 #define ARM_CPU_PART_NEOVERSE_N2	0xD49
 #define ARM_CPU_PART_CORTEX_A78C	0xD4B
+#define ARM_CPU_PART_CORTEX_X1C		0xD4C
+#define ARM_CPU_PART_CORTEX_X3		0xD4E
+#define ARM_CPU_PART_NEOVERSE_V2	0xD4F
+#define ARM_CPU_PART_CORTEX_A720	0xD81
+#define ARM_CPU_PART_CORTEX_X4		0xD82
+#define ARM_CPU_PART_NEOVERSE_V3	0xD84
+#define ARM_CPU_PART_CORTEX_X925	0xD85
+#define ARM_CPU_PART_CORTEX_A725	0xD87
 
 #define APM_CPU_PART_POTENZA		0x000
 
@@ -121,6 +129,14 @@
 #define MIDR_CORTEX_X2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)
 #define MIDR_NEOVERSE_N2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)
 #define MIDR_CORTEX_A78C	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78C)
+#define MIDR_CORTEX_X1C	MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1C)
+#define MIDR_CORTEX_X3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X3)
+#define MIDR_NEOVERSE_V2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V2)
+#define MIDR_CORTEX_A720 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A720)
+#define MIDR_CORTEX_X4 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X4)
+#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
+#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
+#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
 #define MIDR_THUNDERX	MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
 #define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
 #define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
arch/arm64/kernel/cpu_errata.c +44 -0

62 lines not on this page · raw message

arch/arm64/kernel/cpufeature.c +74 -16

158 lines not on this page · raw message

arch/m68k/amiga/config.c +9 -0
index c32ab8041cf6..eb2f0dcf8591 100644
@@ -180,6 +180,15 @@ int __init amiga_parse_bootinfo(const struct bi_record *record)
 			dev->slotsize = be16_to_cpu(cd->cd_SlotSize);
 			dev->boardaddr = be32_to_cpu(cd->cd_BoardAddr);
 			dev->boardsize = be32_to_cpu(cd->cd_BoardSize);
+
+			/* CS-LAB Warp 1260 workaround */
+			if (be16_to_cpu(dev->rom.er_Manufacturer) == ZORRO_MANUF(ZORRO_PROD_CSLAB_WARP_1260) &&
+			    dev->rom.er_Product == ZORRO_PROD(ZORRO_PROD_CSLAB_WARP_1260)) {
+
+				/* turn off all interrupts */
+				pr_info("Warp 1260 card detected: applying interrupt storm workaround\n");
+				*(uint32_t *)(dev->boardaddr + 0x1000) = 0xfff;
+			}
 		} else
 			pr_warn("amiga_parse_bootinfo: too many AutoConfig devices\n");
 #endif /* CONFIG_ZORRO */
arch/m68k/atari/ataints.c +1 -5
index 56f02ea2c248..715d1e0d973e 100644
@@ -302,11 +302,7 @@ void __init atari_init_IRQ(void)
 
 	if (ATARIHW_PRESENT(SCU)) {
 		/* init the SCU if present */
-		tt_scu.sys_mask = 0x10;		/* enable VBL (for the cursor) and
-									 * disable HSYNC interrupts (who
-									 * needs them?)  MFP and SCC are
-									 * enabled in VME mask
-									 */
+		tt_scu.sys_mask = 0x0;		/* disable all interrupts */
 		tt_scu.vme_mask = 0x60;		/* enable MFP and SCC ints */
 	} else {
 		/* If no SCU and no Hades, the HSYNC interrupt needs to be
arch/m68k/include/asm/cmpxchg.h +1 -1
index 38e1d7acc44d..1f996713ce87 100644
@@ -33,7 +33,7 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
 		x = tmp;
 		break;
 	default:
-		tmp = __invalid_xchg_size(x, ptr, size);
+		x = __invalid_xchg_size(x, ptr, size);
 		break;
 	}
 
arch/mips/include/asm/mips-cm.h +4 -0
index 23c67c0871b1..696b40beb774 100644
@@ -228,6 +228,10 @@ GCR_ACCESSOR_RO(32, 0x0d0, gic_status)
 GCR_ACCESSOR_RO(32, 0x0f0, cpc_status)
 #define CM_GCR_CPC_STATUS_EX			BIT(0)
 
+/* GCR_ACCESS - Controls core/IOCU access to GCRs */
+GCR_ACCESSOR_RW(32, 0x120, access_cm3)
+#define CM_GCR_ACCESS_ACCESSEN			GENMASK(7, 0)
+
 /* GCR_L2_CONFIG - Indicates L2 cache configuration when Config5.L2C=1 */
 GCR_ACCESSOR_RW(32, 0x130, l2_config)
 #define CM_GCR_L2_CONFIG_BYPASS			BIT(20)
arch/mips/kernel/smp-cps.c +4 -1
index f659adb681bc..02ae0b29e688 100644
@@ -229,7 +229,10 @@ static void boot_core(unsigned int core, unsigned int vpe_id)
 	write_gcr_co_reset_ext_base(CM_GCR_Cx_RESET_EXT_BASE_UEB);
 
 	/* Ensure the core can access the GCRs */
-	set_gcr_access(1 << core);
+	if (mips_cm_revision() < CM_REV_CM3)
+		set_gcr_access(1 << core);
+	else
+		set_gcr_access_cm3(1 << core);
 
 	if (mips_cpc_present()) {
 		/* Reset the core */
arch/mips/pci/pcie-octeon.c +0 -0
old mode 100755
new mode 100644
arch/powerpc/kvm/powerpc.c +3 -1
index eb8c72846b7f..7c5986aec64e 100644
@@ -1950,8 +1950,10 @@ static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
 			break;
 
 		r = -ENXIO;
-		if (!xive_enabled())
+		if (!xive_enabled()) {
+			fdput(f);
 			break;
+		}
 
 		r = -EPERM;
 		dev = kvm_device_from_filp(f.file);
arch/powerpc/xmon/ppc-dis.c +11 -22
index 75fa98221d48..af105e1bc3fc 100644
@@ -122,32 +122,21 @@ int print_insn_powerpc (unsigned long insn, unsigned long memaddr)
   bool insn_is_short;
   ppc_cpu_t dialect;
 
-  dialect = PPC_OPCODE_PPC | PPC_OPCODE_COMMON
-            | PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_ALTIVEC;
+  dialect = PPC_OPCODE_PPC | PPC_OPCODE_COMMON;
 
-  if (cpu_has_feature(CPU_FTRS_POWER5))
-    dialect |= PPC_OPCODE_POWER5;
+  if (IS_ENABLED(CONFIG_PPC64))
+    dialect |= PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_CELL |
+	PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_POWER8 |
+	PPC_OPCODE_POWER9;
 
-  if (cpu_has_feature(CPU_FTRS_CELL))
-    dialect |= (PPC_OPCODE_CELL | PPC_OPCODE_ALTIVEC);
+  if (cpu_has_feature(CPU_FTR_TM))
+    dialect |= PPC_OPCODE_HTM;
 
-  if (cpu_has_feature(CPU_FTRS_POWER6))
-    dialect |= (PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_ALTIVEC);
+  if (cpu_has_feature(CPU_FTR_ALTIVEC))
+    dialect |= PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2;
 
-  if (cpu_has_feature(CPU_FTRS_POWER7))
-    dialect |= (PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7
-                | PPC_OPCODE_ALTIVEC | PPC_OPCODE_VSX);
-
-  if (cpu_has_feature(CPU_FTRS_POWER8))
-    dialect |= (PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7
-		| PPC_OPCODE_POWER8 | PPC_OPCODE_HTM
-		| PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2 | PPC_OPCODE_VSX);
-
-  if (cpu_has_feature(CPU_FTRS_POWER9))
-    dialect |= (PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7
-		| PPC_OPCODE_POWER8 | PPC_OPCODE_POWER9 | PPC_OPCODE_HTM
-		| PPC_OPCODE_ALTIVEC | PPC_OPCODE_ALTIVEC2
-		| PPC_OPCODE_VSX | PPC_OPCODE_VSX3);
+  if (cpu_has_feature(CPU_FTR_VSX))
+    dialect |= PPC_OPCODE_VSX | PPC_OPCODE_VSX3;
 
   /* Get the major opcode of the insn.  */
   opcode = NULL;
arch/sparc/include/asm/oplib_64.h +1 -0
index a67abebd4359..1b86d02a8455 100644
@@ -247,6 +247,7 @@ void prom_sun4v_guest_soft_state(void);
 int prom_ihandle2path(int handle, char *buffer, int bufsize);
 
 /* Client interface level routines. */
+void prom_cif_init(void *cif_handler);
 void p1275_cmd_direct(unsigned long *);
 
 #endif /* !(__SPARC64_OPLIB_H) */
arch/sparc/prom/init_64.c +0 -3
index 103aa9104318..f7b8a1a865b8 100644
@@ -26,9 +26,6 @@ phandle prom_chosen_node;
  * routines in the prom library.
  * It gets passed the pointer to the PROM vector.
  */
-
-extern void prom_cif_init(void *);
-
 void __init prom_init(void *cif_handler)
 {
 	phandle node;
arch/sparc/prom/p1275.c +1 -1
index 889aa602f8d8..51c3f984bbf7 100644
@@ -49,7 +49,7 @@ void p1275_cmd_direct(unsigned long *args)
 	local_irq_restore(flags);
 }
 
-void prom_cif_init(void *cif_handler, void *cif_stack)
+void prom_cif_init(void *cif_handler)
 {
 	p1275buf.prom_cif_handler = (void (*)(long *))cif_handler;
 }
arch/um/kernel/time.c +2 -2
index 94ea87bd231c..3ccbb42c171c 100644
@@ -256,9 +256,9 @@ int setup_time_travel_start(char *str)
 	return 1;
 }
 
-__setup("time-travel-start", setup_time_travel_start);
+__setup("time-travel-start=", setup_time_travel_start);
 __uml_help(setup_time_travel_start,
-"time-travel-start=<seconds>\n"
+"time-travel-start=<nanoseconds>\n"
 "Configure the UML instance's wall clock to start at this value rather than\n"
 "the host's wall clock at the time of UML boot.\n");
 #endif
arch/x86/events/intel/pt.c +2 -2
index f4d2322f4c62..99b286b6c200 100644
@@ -827,7 +827,7 @@ static void pt_update_head(struct pt *pt)
  */
 static void *pt_buffer_region(struct pt_buffer *buf)
 {
-	return phys_to_virt(TOPA_ENTRY(buf->cur, buf->cur_idx)->base << TOPA_SHIFT);
+	return phys_to_virt((phys_addr_t)TOPA_ENTRY(buf->cur, buf->cur_idx)->base << TOPA_SHIFT);
 }
 
 /**
@@ -935,7 +935,7 @@ pt_topa_entry_for_page(struct pt_buffer *buf, unsigned int pg)
 	 * order allocations, there shouldn't be many of these.
 	 */
 	list_for_each_entry(topa, &buf->tables, list) {
-		if (topa->offset + topa->size > pg << PAGE_SHIFT)
+		if (topa->offset + topa->size > (unsigned long)pg << PAGE_SHIFT)
 			goto found;
 	}
 
arch/x86/events/intel/pt.h +2 -2
index 1d2bb7572374..c2d00a072952 100644
@@ -33,8 +33,8 @@ struct topa_entry {
 	u64	rsvd2	: 1;
 	u64	size	: 4;
 	u64	rsvd3	: 2;
-	u64	base	: 36;
-	u64	rsvd4	: 16;
+	u64	base	: 40;
+	u64	rsvd4	: 12;
 };
 
 /* TSC to Core Crystal Clock Ratio */
arch/x86/kernel/cpu/mtrr/mtrr.c +1 -1
index 4482819bb13c..d967305c163b 100644
@@ -817,7 +817,7 @@ void mtrr_save_state(void)
 {
 	int first_cpu;
 
-	if (!mtrr_enabled())
+	if (!mtrr_enabled() || !mtrr_state.have_fixed)
 		return;
 
 	first_cpu = cpumask_first(cpu_online_mask);
arch/x86/kernel/devicetree.c +1 -1
index 8d85e00bb40a..04c5f2587799 100644
@@ -91,7 +91,7 @@ static int x86_of_pci_irq_enable(struct pci_dev *dev)
 
 	ret = pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
 	if (ret)
-		return ret;
+		return pcibios_err_to_errno(ret);
 	if (!pin)
 		return 0;
 
arch/x86/mm/pti.c +3 -3
index 7f2140414440..29eaf3cd9bbd 100644
@@ -375,14 +375,14 @@ pti_clone_pgtable(unsigned long start, unsigned long end,
 			 */
 			*target_pmd = *pmd;
 
-			addr += PMD_SIZE;
+			addr = round_up(addr + 1, PMD_SIZE);
 
 		} else if (level == PTI_CLONE_PTE) {
 
 			/* Walk the page-table down to the pte level */
 			pte = pte_offset_kernel(pmd, addr);
 			if (pte_none(*pte)) {
-				addr += PAGE_SIZE;
+				addr = round_up(addr + 1, PAGE_SIZE);
 				continue;
 			}
 
@@ -402,7 +402,7 @@ pti_clone_pgtable(unsigned long start, unsigned long end,
 			/* Clone the PTE */
 			*target_pte = *pte;
 
-			addr += PAGE_SIZE;
+			addr = round_up(addr + 1, PAGE_SIZE);
 
 		} else {
 			BUG();
arch/x86/pci/intel_mid_pci.c +2 -2
index eea5a0f3b959..63513968f561 100644
@@ -223,9 +223,9 @@ static int intel_mid_pci_irq_enable(struct pci_dev *dev)
 		return 0;
 
 	ret = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi);
-	if (ret < 0) {
+	if (ret) {
 		dev_warn(&dev->dev, "Failed to read interrupt line: %d\n", ret);
-		return ret;
+		return pcibios_err_to_errno(ret);
 	}
 
 	switch (intel_mid_identify_cpu()) {
arch/x86/pci/xen.c +2 -2
index 9cf8f5417e7f..f93e03b23645 100644
@@ -37,10 +37,10 @@ static int xen_pcifront_enable_irq(struct pci_dev *dev)
 	u8 gsi;
 
 	rc = pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &gsi);
-	if (rc < 0) {
+	if (rc) {
 		dev_warn(&dev->dev, "Xen PCI: failed to read interrupt line: %d\n",
 			 rc);
-		return rc;
+		return pcibios_err_to_errno(rc);
 	}
 	/* In PV DomU the Xen PCI backend puts the PIRQ in the interrupt line.*/
 	pirq = gsi;
arch/x86/platform/intel/iosf_mbi.c +2 -2
index 9e2444500428..117cabcfe29d 100644
@@ -62,7 +62,7 @@ static int iosf_mbi_pci_read_mdr(u32 mcrx, u32 mcr, u32 *mdr)
 
 fail_read:
 	dev_err(&mbi_pdev->dev, "PCI config access failed with %d\n", result);
-	return result;
+	return pcibios_err_to_errno(result);
 }
 
 static int iosf_mbi_pci_write_mdr(u32 mcrx, u32 mcr, u32 mdr)
@@ -91,7 +91,7 @@ static int iosf_mbi_pci_write_mdr(u32 mcrx, u32 mcr, u32 mdr)
 
 fail_write:
 	dev_err(&mbi_pdev->dev, "PCI config access failed with %d\n", result);
-	return result;
+	return pcibios_err_to_errno(result);
 }
 
 int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr)
arch/x86/xen/p2m.c +2 -2
index 8b1e40ec58f6..bfe6e862e13e 100644
@@ -741,7 +741,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 		 * immediate unmapping.
 		 */
 		map_ops[i].status = GNTST_general_error;
-		unmap[0].host_addr = map_ops[i].host_addr,
+		unmap[0].host_addr = map_ops[i].host_addr;
 		unmap[0].handle = map_ops[i].handle;
 		map_ops[i].handle = ~0;
 		if (map_ops[i].flags & GNTMAP_device_map)
@@ -751,7 +751,7 @@ int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
 
 		if (kmap_ops) {
 			kmap_ops[i].status = GNTST_general_error;
-			unmap[1].host_addr = kmap_ops[i].host_addr,
+			unmap[1].host_addr = kmap_ops[i].host_addr;
 			unmap[1].handle = kmap_ops[i].handle;
 			kmap_ops[i].handle = ~0;
 			if (kmap_ops[i].flags & GNTMAP_device_map)
drivers/acpi/battery.c +12 -4
index a49a09e3de1b..af78f76a2872 100644
@@ -681,12 +681,18 @@ static ssize_t acpi_battery_alarm_store(struct device *dev,
 	return count;
 }
 
-static const struct device_attribute alarm_attr = {
+static struct device_attribute alarm_attr = {
 	.attr = {.name = "alarm", .mode = 0644},
 	.show = acpi_battery_alarm_show,
 	.store = acpi_battery_alarm_store,
 };
 
+static struct attribute *acpi_battery_attrs[] = {
+	&alarm_attr.attr,
+	NULL
+};
+ATTRIBUTE_GROUPS(acpi_battery);
+
 /*
  * The Battery Hooking API
  *
@@ -823,7 +829,10 @@ static void __exit battery_hook_exit(void)
 
 static int sysfs_add_battery(struct acpi_battery *battery)
 {
-	struct power_supply_config psy_cfg = { .drv_data = battery, };
+	struct power_supply_config psy_cfg = {
+		.drv_data = battery,
+		.attr_grp = acpi_battery_groups,
+	};
 	bool full_cap_broken = false;
 
 	if (!ACPI_BATTERY_CAPACITY_VALID(battery->full_charge_capacity) &&
@@ -868,7 +877,7 @@ static int sysfs_add_battery(struct acpi_battery *battery)
 		return result;
 	}
 	battery_hook_add_battery(battery);
-	return device_create_file(&battery->bat->dev, &alarm_attr);
+	return 0;
 }
 
 static void sysfs_remove_battery(struct acpi_battery *battery)
@@ -879,7 +888,6 @@ static void sysfs_remove_battery(struct acpi_battery *battery)
 		return;
 	}
 	battery_hook_remove_battery(battery);
-	device_remove_file(&battery->bat->dev, &alarm_attr);
 	power_supply_unregister(battery->bat);
 	battery->bat = NULL;
 	mutex_unlock(&battery->sysfs_lock);
drivers/acpi/sbs.c +12 -11
index 6e88224f60f0..4aa55d8d4385 100644
@@ -80,7 +80,6 @@ struct acpi_battery {
 	u16 spec;
 	u8 id;
 	u8 present:1;
-	u8 have_sysfs_alarm:1;
 };
 
 #define to_acpi_battery(x) power_supply_get_drvdata(x)
@@ -465,12 +464,18 @@ static ssize_t acpi_battery_alarm_store(struct device *dev,
 	return count;
 }
 
-static const struct device_attribute alarm_attr = {
+static struct device_attribute alarm_attr = {
 	.attr = {.name = "alarm", .mode = 0644},
 	.show = acpi_battery_alarm_show,
 	.store = acpi_battery_alarm_store,
 };
 
+static struct attribute *acpi_battery_attrs[] = {
+	&alarm_attr.attr,
+	NULL
+};
+ATTRIBUTE_GROUPS(acpi_battery);
+
 /* --------------------------------------------------------------------------
                                  Driver Interface
    -------------------------------------------------------------------------- */
@@ -512,7 +517,10 @@ static int acpi_battery_read(struct acpi_battery *battery)
 static int acpi_battery_add(struct acpi_sbs *sbs, int id)
 {
 	struct acpi_battery *battery = &sbs->battery[id];
-	struct power_supply_config psy_cfg = { .drv_data = battery, };
+	struct power_supply_config psy_cfg = {
+		.drv_data = battery,
+		.attr_grp = acpi_battery_groups,
+	};
 	int result;
 
 	battery->id = id;
@@ -542,10 +550,6 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id)
 		goto end;
 	}
 
-	result = device_create_file(&battery->bat->dev, &alarm_attr);
-	if (result)
-		goto end;
-	battery->have_sysfs_alarm = 1;
       end:
 	printk(KERN_INFO PREFIX "%s [%s]: Battery Slot [%s] (battery %s)\n",
 	       ACPI_SBS_DEVICE_NAME, acpi_device_bid(sbs->device),
@@ -557,11 +561,8 @@ static void acpi_battery_remove(struct acpi_sbs *sbs, int id)
 {
 	struct acpi_battery *battery = &sbs->battery[id];
 
-	if (battery->bat) {
-		if (battery->have_sysfs_alarm)
-			device_remove_file(&battery->bat->dev, &alarm_attr);
+	if (battery->bat)
 		power_supply_unregister(battery->bat);
-	}
 }
 
 static int acpi_charger_add(struct acpi_sbs *sbs)
drivers/android/binder.c +1 -3
index a53d7f9458ff..7a8cdecaf348 100644
@@ -932,9 +932,7 @@ static bool binder_has_work(struct binder_thread *thread, bool do_proc_work)
 static bool binder_available_for_proc_work_ilocked(struct binder_thread *thread)
 {
 	return !thread->transaction_stack &&
-		binder_worklist_empty_ilocked(&thread->todo) &&
-		(thread->looper & (BINDER_LOOPER_STATE_ENTERED |
-				   BINDER_LOOPER_STATE_REGISTERED));
+		binder_worklist_empty_ilocked(&thread->todo);
 }
 
 static void binder_wakeup_poll_threads_ilocked(struct binder_proc *proc,
drivers/base/core.c +8 -5
index 60de73c67991..16475ca16766 100644
@@ -25,6 +25,7 @@
 #include <linux/mutex.h>
 #include <linux/pm_runtime.h>
 #include <linux/netdevice.h>
+#include <linux/rcupdate.h>
 #include <linux/sched/signal.h>
 #include <linux/sysfs.h>
 
@@ -1174,6 +1175,7 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
 		      struct kobj_uevent_env *env)
 {
 	struct device *dev = kobj_to_dev(kobj);
+	struct device_driver *driver;
 	int retval = 0;
 
 	/* add device node properties if present */
@@ -1202,8 +1204,12 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
 	if (dev->type && dev->type->name)
 		add_uevent_var(env, "DEVTYPE=%s", dev->type->name);
 
-	if (dev->driver)
-		add_uevent_var(env, "DRIVER=%s", dev->driver->name);
+	/* Synchronize with module_remove_driver() */
+	rcu_read_lock();
+	driver = READ_ONCE(dev->driver);
+	if (driver)
+		add_uevent_var(env, "DRIVER=%s", driver->name);
+	rcu_read_unlock();
 
 	/* Add common DT information about the device */
 	of_device_uevent(dev, env);
@@ -1273,11 +1279,8 @@ static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,
 	if (!env)
 		return -ENOMEM;
 
-	/* Synchronize with really_probe() */
-	device_lock(dev);
 	/* let the kset specific function add its keys */
 	retval = kset->uevent_ops->uevent(kset, &dev->kobj, env);
-	device_unlock(dev);
 	if (retval)
 		goto out;
 
drivers/base/devres.c +6 -2
index 0bbb328bd17f..5a84bafae328 100644
@@ -1111,7 +1111,11 @@ EXPORT_SYMBOL_GPL(__devm_alloc_percpu);
  */
 void devm_free_percpu(struct device *dev, void __percpu *pdata)
 {
-	WARN_ON(devres_destroy(dev, devm_percpu_release, devm_percpu_match,
-			       (void *)pdata));
+	/*
+	 * Use devres_release() to prevent memory leakage as
+	 * devm_free_pages() does.
+	 */
+	WARN_ON(devres_release(dev, devm_percpu_release, devm_percpu_match,
+			       (__force void *)pdata));
 }
 EXPORT_SYMBOL_GPL(devm_free_percpu);
drivers/base/module.c +4 -0
index 46ad4d636731..851cc5367c04 100644
@@ -7,6 +7,7 @@
 #include <linux/errno.h>
 #include <linux/slab.h>
 #include <linux/string.h>
+#include <linux/rcupdate.h>
 #include "base.h"
 
 static char *make_driver_name(struct device_driver *drv)
@@ -77,6 +78,9 @@ void module_remove_driver(struct device_driver *drv)
 	if (!drv)
 		return;
 
+	/* Synchronize with dev_uevent() */
+	synchronize_rcu();
+
 	sysfs_remove_link(&drv->p->kobj, "module");
 
 	if (drv->owner)
drivers/block/rbd.c +15 -20
index fd0cdced8024..996b4e10a29e 100644
@@ -366,7 +366,7 @@ enum rbd_watch_state {
 enum rbd_lock_state {
 	RBD_LOCK_STATE_UNLOCKED,
 	RBD_LOCK_STATE_LOCKED,
-	RBD_LOCK_STATE_RELEASING,
+	RBD_LOCK_STATE_QUIESCING,
 };
 
 /* WatchNotify::ClientId */
@@ -427,7 +427,7 @@ struct rbd_device {
 	struct list_head	running_list;
 	struct completion	acquire_wait;
 	int			acquire_err;
-	struct completion	releasing_wait;
+	struct completion	quiescing_wait;
 
 	spinlock_t		object_map_lock;
 	u8			*object_map;
@@ -519,7 +519,7 @@ static bool __rbd_is_lock_owner(struct rbd_device *rbd_dev)
 	lockdep_assert_held(&rbd_dev->lock_rwsem);
 
 	return rbd_dev->lock_state == RBD_LOCK_STATE_LOCKED ||
-	       rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING;
+	       rbd_dev->lock_state == RBD_LOCK_STATE_QUIESCING;
 }
 
 static bool rbd_is_lock_owner(struct rbd_device *rbd_dev)
@@ -3608,13 +3608,14 @@ static void rbd_lock_del_request(struct rbd_img_request *img_req)
 	lockdep_assert_held(&rbd_dev->lock_rwsem);
 	spin_lock(&rbd_dev->lock_lists_lock);
 	if (!list_empty(&img_req->lock_item)) {
+		rbd_assert(!list_empty(&rbd_dev->running_list));
 		list_del_init(&img_req->lock_item);
-		need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_RELEASING &&
+		need_wakeup = (rbd_dev->lock_state == RBD_LOCK_STATE_QUIESCING &&
 			       list_empty(&rbd_dev->running_list));
 	}
 	spin_unlock(&rbd_dev->lock_lists_lock);
 	if (need_wakeup)
-		complete(&rbd_dev->releasing_wait);
+		complete(&rbd_dev->quiescing_wait);
 }
 
 static int rbd_img_exclusive_lock(struct rbd_img_request *img_req)
@@ -3627,11 +3628,6 @@ static int rbd_img_exclusive_lock(struct rbd_img_request *img_req)
 	if (rbd_lock_add_request(img_req))
 		return 1;
 
-	if (rbd_dev->opts->exclusive) {
-		WARN_ON(1); /* lock got released? */
-		return -EROFS;
-	}
-
 	/*
 	 * Note the use of mod_delayed_work() in rbd_acquire_lock()
 	 * and cancel_delayed_work() in wake_lock_waiters().
@@ -4281,16 +4277,16 @@ static bool rbd_quiesce_lock(struct rbd_device *rbd_dev)
 	/*
 	 * Ensure that all in-flight IO is flushed.
 	 */
-	rbd_dev->lock_state = RBD_LOCK_STATE_RELEASING;
-	rbd_assert(!completion_done(&rbd_dev->releasing_wait));
+	rbd_dev->lock_state = RBD_LOCK_STATE_QUIESCING;
+	rbd_assert(!completion_done(&rbd_dev->quiescing_wait));
 	if (list_empty(&rbd_dev->running_list))
 		return true;
 
 	up_write(&rbd_dev->lock_rwsem);
-	wait_for_completion(&rbd_dev->releasing_wait);
+	wait_for_completion(&rbd_dev->quiescing_wait);
 
 	down_write(&rbd_dev->lock_rwsem);
-	if (rbd_dev->lock_state != RBD_LOCK_STATE_RELEASING)
+	if (rbd_dev->lock_state != RBD_LOCK_STATE_QUIESCING)
 		return false;
 
 	rbd_assert(list_empty(&rbd_dev->running_list));
@@ -4701,6 +4697,10 @@ static void rbd_reacquire_lock(struct rbd_device *rbd_dev)
 			rbd_warn(rbd_dev, "failed to update lock cookie: %d",
 				 ret);
 
+		if (rbd_dev->opts->exclusive)
+			rbd_warn(rbd_dev,
+			     "temporarily releasing lock on exclusive mapping");
+
 		/*
 		 * Lock cookie cannot be updated on older OSDs, so do
 		 * a manual release and queue an acquire.
@@ -5556,7 +5556,7 @@ static struct rbd_device *__rbd_dev_create(struct rbd_spec *spec)
 	INIT_LIST_HEAD(&rbd_dev->acquiring_list);
 	INIT_LIST_HEAD(&rbd_dev->running_list);
 	init_completion(&rbd_dev->acquire_wait);
-	init_completion(&rbd_dev->releasing_wait);
+	init_completion(&rbd_dev->quiescing_wait);
 
 	spin_lock_init(&rbd_dev->object_map_lock);
 
@@ -6618,11 +6618,6 @@ static int rbd_add_acquire_lock(struct rbd_device *rbd_dev)
 		return ret;
 	}
 
-	/*
-	 * The lock may have been released by now, unless automatic lock
-	 * transitions are disabled.
-	 */
-	rbd_assert(!rbd_dev->opts->exclusive || rbd_is_lock_owner(rbd_dev));
 	return 0;
 }
 
drivers/bluetooth/btusb.c +4 -0
index 10408df38c52..b9752625c88b 100644
@@ -370,6 +370,10 @@ static const struct usb_device_id blacklist_table[] = {
 						     BTUSB_WIDEBAND_SPEECH },
 	{ USB_DEVICE(0x13d3, 0x3571), .driver_info = BTUSB_REALTEK |
 						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x13d3, 0x3591), .driver_info = BTUSB_REALTEK |
+						     BTUSB_WIDEBAND_SPEECH },
+	{ USB_DEVICE(0x0489, 0xe125), .driver_info = BTUSB_REALTEK |
+						     BTUSB_WIDEBAND_SPEECH },
 
 	/* Realtek Bluetooth devices */
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
drivers/char/hw_random/amd-rng.c +3 -1
index db3dd467194c..3f3fdf6ee3d5 100644
@@ -142,8 +142,10 @@ static int __init mod_init(void)
 
 found:
 	err = pci_read_config_dword(pdev, 0x58, &pmbase);
-	if (err)
+	if (err) {
+		err = pcibios_err_to_errno(err);
 		goto put_dev;
+	}
 
 	pmbase &= 0x0000FF00;
 	if (pmbase == 0) {
drivers/char/tpm/eventlog/common.c +2 -0
index 8512ec76d526..4a6186f9f889 100644
@@ -47,6 +47,8 @@ static int tpm_bios_measurements_open(struct inode *inode,
 	if (!err) {
 		seq = file->private_data;
 		seq->private = chip;
+	} else {
+		put_device(&chip->dev);
 	}
 
 	return err;
drivers/clk/davinci/da8xx-cfgchip.c +2 -2
index bdc52364b421..b558276112b8 100644
@@ -505,7 +505,7 @@ da8xx_cfgchip_register_usb0_clk48(struct device *dev,
 	const char * const parent_names[] = { "usb_refclkin", "pll0_auxclk" };
 	struct clk *fck_clk;
 	struct da8xx_usb0_clk48 *usb0;
-	struct clk_init_data init;
+	struct clk_init_data init = {};
 	int ret;
 
 	fck_clk = devm_clk_get(dev, "fck");
@@ -579,7 +579,7 @@ da8xx_cfgchip_register_usb1_clk48(struct device *dev,
 {
 	const char * const parent_names[] = { "usb0_clk48", "usb_refclkin" };
 	struct da8xx_usb1_clk48 *usb1;
-	struct clk_init_data init;
+	struct clk_init_data init = {};
 	int ret;
 
 	usb1 = devm_kzalloc(dev, sizeof(*usb1), GFP_KERNEL);
drivers/clocksource/sh_cmt.c +12 -1
index b1ec79ddb7f2..66789b3838d0 100644
@@ -510,6 +510,7 @@ static void sh_cmt_set_next(struct sh_cmt_channel *ch, unsigned long delta)
 static irqreturn_t sh_cmt_interrupt(int irq, void *dev_id)
 {
 	struct sh_cmt_channel *ch = dev_id;
+	unsigned long flags;
 
 	/* clear flags */
 	sh_cmt_write_cmcsr(ch, sh_cmt_read_cmcsr(ch) &
@@ -540,6 +541,8 @@ static irqreturn_t sh_cmt_interrupt(int irq, void *dev_id)
 
 	ch->flags &= ~FLAG_SKIPEVENT;
 
+	raw_spin_lock_irqsave(&ch->lock, flags);
+
 	if (ch->flags & FLAG_REPROGRAM) {
 		ch->flags &= ~FLAG_REPROGRAM;
 		sh_cmt_clock_event_program_verify(ch, 1);
@@ -552,6 +555,8 @@ static irqreturn_t sh_cmt_interrupt(int irq, void *dev_id)
 
 	ch->flags &= ~FLAG_IRQCONTEXT;
 
+	raw_spin_unlock_irqrestore(&ch->lock, flags);
+
 	return IRQ_HANDLED;
 }
 
@@ -750,12 +755,18 @@ static int sh_cmt_clock_event_next(unsigned long delta,
 				   struct clock_event_device *ced)
 {
 	struct sh_cmt_channel *ch = ced_to_sh_cmt(ced);
+	unsigned long flags;
 
 	BUG_ON(!clockevent_state_oneshot(ced));
+
+	raw_spin_lock_irqsave(&ch->lock, flags);
+
 	if (likely(ch->flags & FLAG_IRQCONTEXT))
 		ch->next_match_value = delta - 1;
 	else
-		sh_cmt_set_next(ch, delta - 1);
+		__sh_cmt_set_next(ch, delta - 1);
+
+	raw_spin_unlock_irqrestore(&ch->lock, flags);
 
 	return 0;
 }
drivers/edac/Makefile +6 -4
index d77200c9680b..32cc22ed5295 100644
@@ -57,11 +57,13 @@ obj-$(CONFIG_EDAC_MPC85XX)		+= mpc85xx_edac_mod.o
 layerscape_edac_mod-y			:= fsl_ddr_edac.o layerscape_edac.o
 obj-$(CONFIG_EDAC_LAYERSCAPE)		+= layerscape_edac_mod.o
 
-skx_edac-y				:= skx_common.o skx_base.o
-obj-$(CONFIG_EDAC_SKX)			+= skx_edac.o
+skx_edac_common-y			:= skx_common.o
 
-i10nm_edac-y				:= skx_common.o i10nm_base.o
-obj-$(CONFIG_EDAC_I10NM)		+= i10nm_edac.o
+skx_edac-y				:= skx_base.o
+obj-$(CONFIG_EDAC_SKX)			+= skx_edac.o skx_edac_common.o
+
+i10nm_edac-y				:= i10nm_base.o
+obj-$(CONFIG_EDAC_I10NM)		+= i10nm_edac.o skx_edac_common.o
 
 obj-$(CONFIG_EDAC_MV64X60)		+= mv64x60_edac.o
 obj-$(CONFIG_EDAC_CELL)			+= cell_edac.o
drivers/edac/skx_base.c +48 -3

84 lines not on this page · raw message

drivers/edac/skx_common.c +106 -40

299 lines not on this page · raw message

drivers/edac/skx_common.h +16 -3
index fed337c12954..929cfcffcb50 100644
@@ -9,6 +9,8 @@
 #ifndef _SKX_COMM_EDAC_H
 #define _SKX_COMM_EDAC_H
 
+#include <linux/bits.h>
+
 #define MSG_SIZE		1024
 
 /*
@@ -64,6 +66,7 @@ struct skx_dev {
 		u8 src_id, node_id;
 		struct skx_channel {
 			struct pci_dev	*cdev;
+			struct pci_dev	*edev;
 			struct skx_dimm {
 				u8 close_pg;
 				u8 bank_xor_enable;
@@ -89,9 +92,17 @@ enum {
 	INDEX_MEMCTRL,
 	INDEX_CHANNEL,
 	INDEX_DIMM,
+	INDEX_NM_FIRST,
+	INDEX_NM_MEMCTRL = INDEX_NM_FIRST,
+	INDEX_NM_CHANNEL,
+	INDEX_NM_DIMM,
 	INDEX_MAX
 };
 
+#define BIT_NM_MEMCTRL	BIT_ULL(INDEX_NM_MEMCTRL)
+#define BIT_NM_CHANNEL	BIT_ULL(INDEX_NM_CHANNEL)
+#define BIT_NM_DIMM	BIT_ULL(INDEX_NM_DIMM)
+
 struct decoded_addr {
 	struct skx_dev *dev;
 	u64	addr;
@@ -113,10 +124,12 @@ struct decoded_addr {
 
 typedef int (*get_dimm_config_f)(struct mem_ctl_info *mci);
 typedef bool (*skx_decode_f)(struct decoded_addr *res);
+typedef void (*skx_show_retry_log_f)(struct decoded_addr *res, char *msg, int len);
 
-int __init skx_adxl_get(void);
-void __exit skx_adxl_put(void);
-void skx_set_decode(skx_decode_f decode);
+int skx_adxl_get(void);
+void skx_adxl_put(void);
+void skx_set_decode(skx_decode_f decode, skx_show_retry_log_f show_retry_log);
+void skx_set_mem_cfg(bool mem_cfg_2lm);
 
 int skx_get_src_id(struct skx_dev *d, int off, u8 *id);
 int skx_get_node_id(struct skx_dev *d, u8 *id);
drivers/firmware/turris-mox-rwtm.c +7 -11
index 0779513ac8d4..212a46397373 100644
@@ -186,9 +186,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
 	if (ret < 0)
 		return ret;
 
-	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (!wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2))
+		return -ETIMEDOUT;
 
 	ret = mox_get_status(MBOX_CMD_BOARD_INFO, reply->retval);
 	if (ret == -ENODATA) {
@@ -222,9 +221,8 @@ static int mox_get_board_info(struct mox_rwtm *rwtm)
 	if (ret < 0)
 		return ret;
 
-	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (!wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2))
+		return -ETIMEDOUT;
 
 	ret = mox_get_status(MBOX_CMD_ECDSA_PUB_KEY, reply->retval);
 	if (ret == -ENODATA) {
@@ -261,9 +259,8 @@ static int check_get_random_support(struct mox_rwtm *rwtm)
 	if (ret < 0)
 		return ret;
 
-	ret = wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2);
-	if (ret < 0)
-		return ret;
+	if (!wait_for_completion_timeout(&rwtm->cmd_done, HZ / 2))
+		return -ETIMEDOUT;
 
 	return mox_get_status(MBOX_CMD_GET_RANDOM, rwtm->reply.retval);
 }
@@ -340,6 +337,7 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, rwtm);
 
 	mutex_init(&rwtm->busy);
+	init_completion(&rwtm->cmd_done);
 
 	rwtm->mbox_client.dev = dev;
 	rwtm->mbox_client.rx_callback = mox_rwtm_rx_callback;
@@ -353,8 +351,6 @@ static int turris_mox_rwtm_probe(struct platform_device *pdev)
 		goto remove_files;
 	}
 
-	init_completion(&rwtm->cmd_done);
-
 	ret = mox_get_board_info(rwtm);
 	if (ret < 0)
 		dev_warn(dev, "Cannot read board information: %i\n", ret);
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +5 -2
index b6fc191c353a..96aad6cc83b1 100644
@@ -1053,12 +1053,15 @@ static void amdgpu_ras_interrupt_process_handler(struct work_struct *work)
 int amdgpu_ras_interrupt_dispatch(struct amdgpu_device *adev,
 		struct ras_dispatch_if *info)
 {
-	struct ras_manager *obj = amdgpu_ras_find_obj(adev, &info->head);
-	struct ras_ih_data *data = &obj->ih_data;
+	struct ras_manager *obj;
+	struct ras_ih_data *data;
 
+	obj = amdgpu_ras_find_obj(adev, &info->head);
 	if (!obj)
 		return -EINVAL;
 
+	data = &obj->ih_data;
+
 	if (data->inuse == 0)
 		return 0;
 
drivers/gpu/drm/amd/display/dc/core/dc_surface.c +2 -1
index b9d6a5bd8522..47e31a282926 100644
@@ -165,7 +165,8 @@ const struct dc_plane_status *dc_plane_get_status(
 		if (pipe_ctx->plane_state != plane_state)
 			continue;
 
-		pipe_ctx->plane_state->status.is_flip_pending = false;
+		if (pipe_ctx->plane_state)
+			pipe_ctx->plane_state->status.is_flip_pending = false;
 
 		break;
 	}
drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c +1 -4
index cab3f5c4e2fc..37c62794e213 100644
@@ -1115,7 +1115,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
 	u32 status_reg;
 	u8 *buffer = msg->buffer;
 	unsigned int i;
-	int num_transferred = 0;
 	int ret;
 
 	/* Buffer size of AUX CH is 16 bytes */
@@ -1167,7 +1166,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
 			reg = buffer[i];
 			writel(reg, dp->reg_base + ANALOGIX_DP_BUF_DATA_0 +
 			       4 * i);
-			num_transferred++;
 		}
 	}
 
@@ -1215,7 +1213,6 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
 			reg = readl(dp->reg_base + ANALOGIX_DP_BUF_DATA_0 +
 				    4 * i);
 			buffer[i] = (unsigned char)reg;
-			num_transferred++;
 		}
 	}
 
@@ -1232,7 +1229,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device *dp,
 		 (msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_NATIVE_READ)
 		msg->reply = DP_AUX_NATIVE_REPLY_ACK;
 
-	return num_transferred > 0 ? num_transferred : -EBUSY;
+	return msg->size;
 
 aux_error:
 	/* if aux err happen, reset aux */
drivers/gpu/drm/drm_client_modeset.c +5 -0
index 827622d18fa8..283cb573a133 100644
@@ -792,6 +792,11 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
 
 			kfree(modeset->mode);
 			modeset->mode = drm_mode_duplicate(dev, mode);
+			if (!modeset->mode) {
+				ret = -ENOMEM;
+				break;
+			}
+
 			drm_connector_get(connector);
 			modeset->connectors[modeset->num_connectors++] = connector;
 			modeset->x = offset->x;
drivers/gpu/drm/etnaviv/etnaviv_gem.c +4 -2
index 5107a0f5bc7f..2aabe8433cee 100644
@@ -363,9 +363,11 @@ static void *etnaviv_gem_vmap_impl(struct etnaviv_gem_object *obj)
 
 static inline enum dma_data_direction etnaviv_op_to_dma_dir(u32 op)
 {
-	if (op & ETNA_PREP_READ)
+	op &= ETNA_PREP_READ | ETNA_PREP_WRITE;
+
+	if (op == ETNA_PREP_READ)
 		return DMA_FROM_DEVICE;
-	else if (op & ETNA_PREP_WRITE)
+	else if (op == ETNA_PREP_WRITE)
 		return DMA_TO_DEVICE;
 	else
 		return DMA_BIDIRECTIONAL;
drivers/gpu/drm/gma500/cdv_intel_lvds.c +3 -0
index ea0a5d9a0acc..1793da6c7cb4 100644
@@ -391,6 +391,9 @@ static int cdv_intel_lvds_get_modes(struct drm_connector *connector)
 	if (mode_dev->panel_fixed_mode != NULL) {
 		struct drm_display_mode *mode =
 		    drm_mode_duplicate(dev, mode_dev->panel_fixed_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		return 1;
 	}
drivers/gpu/drm/gma500/psb_intel_lvds.c +3 -0
index afaebab7bc17..39f2d72ba07a 100644
@@ -506,6 +506,9 @@ static int psb_intel_lvds_get_modes(struct drm_connector *connector)
 	if (mode_dev->panel_fixed_mode != NULL) {
 		struct drm_display_mode *mode =
 		    drm_mode_duplicate(dev, mode_dev->panel_fixed_mode);
+		if (!mode)
+			return 0;
+
 		drm_mode_probed_add(connector, mode);
 		return 1;
 	}
drivers/gpu/drm/i915/gem/i915_gem_mman.c +42 -5

69 lines not on this page · raw message

drivers/gpu/drm/mgag200/mgag200_i2c.c +1 -1
index 51d4037f00d4..cd3ca63962b8 100644
@@ -135,7 +135,7 @@ struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev)
 	i2c->adapter.algo_data = &i2c->bit;
 
 	i2c->bit.udelay = 10;
-	i2c->bit.timeout = 2;
+	i2c->bit.timeout = usecs_to_jiffies(2200);
 	i2c->bit.data = i2c;
 	i2c->bit.setsda		= mga_gpio_setsda;
 	i2c->bit.setscl		= mga_gpio_setscl;
drivers/gpu/drm/nouveau/nouveau_prime.c +2 -1
index 25cbe4ef383b..ea7cd8aee68f 100644
@@ -83,7 +83,8 @@ struct drm_gem_object *nouveau_gem_prime_import_sg_table(struct drm_device *dev,
 	 * to the caller, instead of a normal nouveau_bo ttm reference. */
 	ret = drm_gem_object_init(dev, &nvbo->bo.base, size);
 	if (ret) {
-		nouveau_bo_ref(NULL, &nvbo);
+		drm_gem_object_release(&nvbo->bo.base);
+		kfree(nvbo);
 		obj = ERR_PTR(-ENOMEM);
 		goto unlock;
 	}
drivers/gpu/drm/panfrost/panfrost_drv.c +1 -0
index b4bab8647f76..5ad233603cf9 100644
@@ -692,3 +692,4 @@ module_platform_driver(panfrost_driver);
 MODULE_AUTHOR("Panfrost Project Developers");
 MODULE_DESCRIPTION("Panfrost DRM Driver");
 MODULE_LICENSE("GPL v2");
+MODULE_SOFTDEP("pre: governor_simpleondemand");
drivers/gpu/drm/qxl/qxl_display.c +3 -0
index a6ee10cbcfdd..677dd560c066 100644
@@ -230,6 +230,9 @@ static int qxl_add_mode(struct drm_connector *connector,
 		return 0;
 
 	mode = drm_cvt_mode(dev, width, height, 60, false, false, false);
+	if (!mode)
+		return 0;
+
 	if (preferred)
 		mode->type |= DRM_MODE_TYPE_PREFERRED;
 	mode->hdisplay = width;
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c +1 -1
index fdb52f6d29fb..395614f2b7bd 100644
@@ -98,7 +98,7 @@ static int vmw_overlay_send_put(struct vmw_private *dev_priv,
 {
 	struct vmw_escape_video_flush *flush;
 	size_t fifo_size;
-	bool have_so = (dev_priv->active_display_unit == vmw_du_screen_object);
+	bool have_so = (dev_priv->active_display_unit != vmw_du_legacy);
 	int i, num_items;
 	SVGAGuestPtr ptr;
 
drivers/hid/wacom_wac.c +1 -2
index 18f3d220aaad..62a7a1c9a02f 100644
@@ -714,13 +714,12 @@ static int wacom_intuos_get_tool_type(int tool_id)
 	case 0x8e2: /* IntuosHT2 pen */
 	case 0x022:
 	case 0x200: /* Pro Pen 3 */
-	case 0x04200: /* Pro Pen 3 */
 	case 0x10842: /* MobileStudio Pro Pro Pen slim */
 	case 0x14802: /* Intuos4/5 13HD/24HD Classic Pen */
 	case 0x16802: /* Cintiq 13HD Pro Pen */
 	case 0x18802: /* DTH2242 Pen */
 	case 0x10802: /* Intuos4/5 13HD/24HD General Pen */
-	case 0x80842: /* Intuos Pro and Cintiq Pro 3D Pen */
+	case 0x8842: /* Intuos Pro and Cintiq Pro 3D Pen */
 		tool_type = BTN_TOOL_PEN;
 		break;
 
drivers/hwmon/adt7475.c +1 -1
index 5af7226657ab..cd771285a5cb 100644
@@ -1681,7 +1681,7 @@ static void adt7475_read_pwm(struct i2c_client *client, int index)
 		data->pwm[CONTROL][index] &= ~0xE0;
 		data->pwm[CONTROL][index] |= (7 << 5);
 
-		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
+		i2c_smbus_write_byte_data(client, PWM_REG(index),
 					  data->pwm[INPUT][index]);
 
 		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
drivers/hwmon/max6697.c +3 -2
index 64122eb38060..6804d840351a 100644
@@ -305,6 +305,7 @@ static ssize_t temp_store(struct device *dev,
 		return ret;
 
 	mutex_lock(&data->update_lock);
+	temp = clamp_val(temp, -1000000, 1000000);	/* prevent underflow */
 	temp = DIV_ROUND_CLOSEST(temp, 1000) + data->temp_offset;
 	temp = clamp_val(temp, 0, data->type == max6581 ? 255 : 127);
 	data->temp[nr][index] = temp;
@@ -358,14 +359,14 @@ static SENSOR_DEVICE_ATTR_RO(temp6_max_alarm, alarm, 20);
 static SENSOR_DEVICE_ATTR_RO(temp7_max_alarm, alarm, 21);
 static SENSOR_DEVICE_ATTR_RO(temp8_max_alarm, alarm, 23);
 
-static SENSOR_DEVICE_ATTR_RO(temp1_crit_alarm, alarm, 14);
+static SENSOR_DEVICE_ATTR_RO(temp1_crit_alarm, alarm, 15);
 static SENSOR_DEVICE_ATTR_RO(temp2_crit_alarm, alarm, 8);
 static SENSOR_DEVICE_ATTR_RO(temp3_crit_alarm, alarm, 9);
 static SENSOR_DEVICE_ATTR_RO(temp4_crit_alarm, alarm, 10);
 static SENSOR_DEVICE_ATTR_RO(temp5_crit_alarm, alarm, 11);
 static SENSOR_DEVICE_ATTR_RO(temp6_crit_alarm, alarm, 12);
 static SENSOR_DEVICE_ATTR_RO(temp7_crit_alarm, alarm, 13);
-static SENSOR_DEVICE_ATTR_RO(temp8_crit_alarm, alarm, 15);
+static SENSOR_DEVICE_ATTR_RO(temp8_crit_alarm, alarm, 14);
 
 static SENSOR_DEVICE_ATTR_RO(temp2_fault, alarm, 1);
 static SENSOR_DEVICE_ATTR_RO(temp3_fault, alarm, 2);
drivers/i2c/i2c-smbus.c +56 -13

102 lines not on this page · raw message

drivers/infiniband/core/device.c +3 -3
index c7c3b9bae938..c46d68e6ccd0 100644
@@ -2125,6 +2125,9 @@ int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev,
 	unsigned long flags;
 	int ret;
 
+	if (!rdma_is_port_valid(ib_dev, port))
+		return -EINVAL;
+
 	/*
 	 * Drivers wish to call this before ib_register_driver, so we have to
 	 * setup the port data early.
@@ -2133,9 +2136,6 @@ int ib_device_set_netdev(struct ib_device *ib_dev, struct net_device *ndev,
 	if (ret)
 		return ret;
 
-	if (!rdma_is_port_valid(ib_dev, port))
-		return -EINVAL;
-
 	pdata = &ib_dev->port_data[port];
 	spin_lock_irqsave(&pdata->netdev_lock, flags);
 	old_ndev = rcu_dereference_protected(
drivers/infiniband/core/iwcm.c +7 -4
index 75b6da00065a..7a6747850aea 100644
@@ -370,8 +370,10 @@ EXPORT_SYMBOL(iw_cm_disconnect);
  *
  * Clean up all resources associated with the connection and release
  * the initial reference taken by iw_create_cm_id.
+ *
+ * Returns true if and only if the last cm_id_priv reference has been dropped.
  */
-static void destroy_cm_id(struct iw_cm_id *cm_id)
+static bool destroy_cm_id(struct iw_cm_id *cm_id)
 {
 	struct iwcm_id_private *cm_id_priv;
 	struct ib_qp *qp;
@@ -441,7 +443,7 @@ static void destroy_cm_id(struct iw_cm_id *cm_id)
 		iwpm_remove_mapping(&cm_id->local_addr, RDMA_NL_IWCM);
 	}
 
-	(void)iwcm_deref_id(cm_id_priv);
+	return iwcm_deref_id(cm_id_priv);
 }
 
 /*
@@ -452,7 +454,8 @@ static void destroy_cm_id(struct iw_cm_id *cm_id)
  */
 void iw_destroy_cm_id(struct iw_cm_id *cm_id)
 {
-	destroy_cm_id(cm_id);
+	if (!destroy_cm_id(cm_id))
+		flush_workqueue(iwcm_wq);
 }
 EXPORT_SYMBOL(iw_destroy_cm_id);
 
@@ -1036,7 +1039,7 @@ static void cm_work_handler(struct work_struct *_work)
 		if (!test_bit(IWCM_F_DROP_EVENTS, &cm_id_priv->flags)) {
 			ret = process_event(cm_id_priv, &levent);
 			if (ret)
-				destroy_cm_id(&cm_id_priv->id);
+				WARN_ON_ONCE(destroy_cm_id(&cm_id_priv->id));
 		} else
 			pr_debug("dropping event %d\n", levent.event);
 		if (iwcm_deref_id(cm_id_priv))
drivers/infiniband/hw/bnxt_re/ib_verbs.c +4 -4
index c9a7c03403ac..4a1c11bdc4ad 100644
@@ -2271,7 +2271,7 @@ static int bnxt_re_build_send_wqe(struct bnxt_re_qp *qp,
 		break;
 	case IB_WR_SEND_WITH_IMM:
 		wqe->type = BNXT_QPLIB_SWQE_TYPE_SEND_WITH_IMM;
-		wqe->send.imm_data = wr->ex.imm_data;
+		wqe->send.imm_data = be32_to_cpu(wr->ex.imm_data);
 		break;
 	case IB_WR_SEND_WITH_INV:
 		wqe->type = BNXT_QPLIB_SWQE_TYPE_SEND_WITH_INV;
@@ -2301,7 +2301,7 @@ static int bnxt_re_build_rdma_wqe(const struct ib_send_wr *wr,
 		break;
 	case IB_WR_RDMA_WRITE_WITH_IMM:
 		wqe->type = BNXT_QPLIB_SWQE_TYPE_RDMA_WRITE_WITH_IMM;
-		wqe->rdma.imm_data = wr->ex.imm_data;
+		wqe->rdma.imm_data = be32_to_cpu(wr->ex.imm_data);
 		break;
 	case IB_WR_RDMA_READ:
 		wqe->type = BNXT_QPLIB_SWQE_TYPE_RDMA_READ;
@@ -3250,7 +3250,7 @@ static void bnxt_re_process_res_shadow_qp_wc(struct bnxt_re_qp *gsi_sqp,
 	wc->byte_len = orig_cqe->length;
 	wc->qp = &gsi_qp->ib_qp;
 
-	wc->ex.imm_data = orig_cqe->immdata;
+	wc->ex.imm_data = cpu_to_be32(le32_to_cpu(orig_cqe->immdata));
 	wc->src_qp = orig_cqe->src_qp;
 	memcpy(wc->smac, orig_cqe->smac, ETH_ALEN);
 	if (bnxt_re_is_vlan_pkt(orig_cqe, &vlan_id, &sl)) {
@@ -3391,7 +3391,7 @@ int bnxt_re_poll_cq(struct ib_cq *ib_cq, int num_entries, struct ib_wc *wc)
 				continue;
 			}
 			wc->qp = &qp->ib_qp;
-			wc->ex.imm_data = cqe->immdata;
+			wc->ex.imm_data = cpu_to_be32(le32_to_cpu(cqe->immdata));
 			wc->src_qp = cqe->src_qp;
 			memcpy(wc->smac, cqe->smac, ETH_ALEN);
 			wc->port_num = 1;
drivers/infiniband/hw/bnxt_re/qplib_fp.h +3 -3
index 99e0a13cbefa..ff0f7b109507 100644
@@ -145,7 +145,7 @@ struct bnxt_qplib_swqe {
 		/* Send, with imm, inval key */
 		struct {
 			union {
-				__be32	imm_data;
+				u32	imm_data;
 				u32	inv_key;
 			};
 			u32		q_key;
@@ -163,7 +163,7 @@ struct bnxt_qplib_swqe {
 		/* RDMA write, with imm, read */
 		struct {
 			union {
-				__be32	imm_data;
+				u32	imm_data;
 				u32	inv_key;
 			};
 			u64		remote_va;
@@ -350,7 +350,7 @@ struct bnxt_qplib_cqe {
 	u16				cfa_meta;
 	u64				wr_id;
 	union {
-		__be32			immdata;
+		__le32			immdata;
 		u32			invrkey;
 	};
 	u64				qp_handle;
drivers/infiniband/hw/mlx4/alias_GUID.c +1 -1
index cca414ecfcd5..05420e189ca9 100644
@@ -832,7 +832,7 @@ void mlx4_ib_destroy_alias_guid_service(struct mlx4_ib_dev *dev)
 
 int mlx4_ib_init_alias_guid_service(struct mlx4_ib_dev *dev)
 {
-	char alias_wq_name[15];
+	char alias_wq_name[22];
 	int ret = 0;
 	int i, j;
 	union ib_gid gid;
drivers/infiniband/hw/mlx4/mad.c +1 -1
index 08eccf2b6967..511e095aa556 100644
@@ -2167,7 +2167,7 @@ static int mlx4_ib_alloc_demux_ctx(struct mlx4_ib_dev *dev,
 				       struct mlx4_ib_demux_ctx *ctx,
 				       int port)
 {
-	char name[12];
+	char name[21];
 	int ret = 0;
 	int i;
 
drivers/infiniband/sw/rxe/rxe_req.c +4 -3
index 87702478eb99..85b382507f60 100644
@@ -390,7 +390,7 @@ static struct sk_buff *init_req_packet(struct rxe_qp *qp,
 	int			solicited;
 	u16			pkey;
 	u32			qp_num;
-	int			ack_req;
+	int			ack_req = 0;
 
 	/* length from start of bth to end of icrc */
 	paylen = rxe_opcode[opcode].length + payload + pad + RXE_ICRC_SIZE;
@@ -426,8 +426,9 @@ static struct sk_buff *init_req_packet(struct rxe_qp *qp,
 	qp_num = (pkt->mask & RXE_DETH_MASK) ? ibwr->wr.ud.remote_qpn :
 					 qp->attr.dest_qp_num;
 
-	ack_req = ((pkt->mask & RXE_END_MASK) ||
-		(qp->req.noack_pkts++ > RXE_MAX_PKT_PER_ACK));
+	if (qp_type(qp) != IB_QPT_UD && qp_type(qp) != IB_QPT_UC)
+		ack_req = ((pkt->mask & RXE_END_MASK) ||
+			   (qp->req.noack_pkts++ > RXE_MAX_PKT_PER_ACK));
 	if (ack_req)
 		qp->req.noack_pkts = 0;
 
drivers/input/keyboard/qt1050.c +6 -1
index 403060d05c3b..7193a4198e21 100644
@@ -226,7 +226,12 @@ static bool qt1050_identify(struct qt1050_priv *ts)
 	int err;
 
 	/* Read Chip ID */
-	regmap_read(ts->regmap, QT1050_CHIP_ID, &val);
+	err = regmap_read(ts->regmap, QT1050_CHIP_ID, &val);
+	if (err) {
+		dev_err(&ts->client->dev, "Failed to read chip ID: %d\n", err);
+		return false;
+	}
+
 	if (val != QT1050_CHIP_ID_VER) {
 		dev_err(&ts->client->dev, "ID %d not supported\n", val);
 		return false;
drivers/input/mouse/elan_i2c_core.c +2 -0
index aaef8847f886..5fc4edbb70a9 100644
@@ -1295,6 +1295,8 @@ static int __maybe_unused elan_suspend(struct device *dev)
 	}
 
 err:
+	if (ret)
+		enable_irq(client->irq);
 	mutex_unlock(&data->sysfs_mutex);
 	return ret;
 }
drivers/irqchip/irq-imx-irqsteer.c +33 -7
index 290531ec3d61..23aafc52768c 100644
@@ -12,6 +12,7 @@
 #include <linux/kernel.h>
 #include <linux/of_irq.h>
 #include <linux/of_platform.h>
+#include <linux/pm_runtime.h>
 #include <linux/spinlock.h>
 
 #define CTRL_STRIDE_OFF(_t, _r)	(_t * 4 * _r)
@@ -34,6 +35,7 @@ struct irqsteer_data {
 	int			channel;
 	struct irq_domain	*domain;
 	u32			*saved_reg;
+	struct device		*dev;
 };
 
 static int imx_irqsteer_get_reg_index(struct irqsteer_data *data,
@@ -70,10 +72,26 @@ static void imx_irqsteer_irq_mask(struct irq_data *d)
 	raw_spin_unlock_irqrestore(&data->lock, flags);
 }
 
-static struct irq_chip imx_irqsteer_irq_chip = {
-	.name		= "irqsteer",
-	.irq_mask	= imx_irqsteer_irq_mask,
-	.irq_unmask	= imx_irqsteer_irq_unmask,
+static void imx_irqsteer_irq_bus_lock(struct irq_data *d)
+{
+	struct irqsteer_data *data = d->chip_data;
+
+	pm_runtime_get_sync(data->dev);
+}
+
+static void imx_irqsteer_irq_bus_sync_unlock(struct irq_data *d)
+{
+	struct irqsteer_data *data = d->chip_data;
+
+	pm_runtime_put_autosuspend(data->dev);
+}
+
+static const struct irq_chip imx_irqsteer_irq_chip = {
+	.name			= "irqsteer",
+	.irq_mask		= imx_irqsteer_irq_mask,
+	.irq_unmask		= imx_irqsteer_irq_unmask,
+	.irq_bus_lock		= imx_irqsteer_irq_bus_lock,
+	.irq_bus_sync_unlock	= imx_irqsteer_irq_bus_sync_unlock,
 };
 
 static int imx_irqsteer_irq_map(struct irq_domain *h, unsigned int irq,
@@ -151,6 +169,7 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
 	if (!data)
 		return -ENOMEM;
 
+	data->dev = &pdev->dev;
 	data->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(data->regs)) {
 		dev_err(&pdev->dev, "failed to initialize reg\n");
@@ -181,7 +200,7 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
 	data->irq_count = DIV_ROUND_UP(irqs_num, 64);
 	data->reg_num = irqs_num / 32;
 
-	if (IS_ENABLED(CONFIG_PM_SLEEP)) {
+	if (IS_ENABLED(CONFIG_PM)) {
 		data->saved_reg = devm_kzalloc(&pdev->dev,
 					sizeof(u32) * data->reg_num,
 					GFP_KERNEL);
@@ -205,6 +224,7 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
 		ret = -ENOMEM;
 		goto out;
 	}
+	irq_domain_set_pm_device(data->domain, &pdev->dev);
 
 	if (!data->irq_count || data->irq_count > CHAN_MAX_OUTPUT_INT) {
 		ret = -EINVAL;
@@ -225,6 +245,9 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, data);
 
+	pm_runtime_set_active(&pdev->dev);
+	pm_runtime_enable(&pdev->dev);
+
 	return 0;
 out:
 	clk_disable_unprepare(data->ipg_clk);
@@ -247,7 +270,7 @@ static int imx_irqsteer_remove(struct platform_device *pdev)
 	return 0;
 }
 
-#ifdef CONFIG_PM_SLEEP
+#ifdef CONFIG_PM
 static void imx_irqsteer_save_regs(struct irqsteer_data *data)
 {
 	int i;
@@ -294,7 +317,10 @@ static int imx_irqsteer_resume(struct device *dev)
 #endif
 
 static const struct dev_pm_ops imx_irqsteer_pm_ops = {
-	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(imx_irqsteer_suspend, imx_irqsteer_resume)
+	SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
+				      pm_runtime_force_resume)
+	SET_RUNTIME_PM_OPS(imx_irqsteer_suspend,
+			   imx_irqsteer_resume, NULL)
 };
 
 static const struct of_device_id imx_irqsteer_dt_ids[] = {
drivers/irqchip/irq-mbigen.c +16 -4
index ff7627b57772..192950e9909b 100644
@@ -64,6 +64,20 @@ struct mbigen_device {
 	void __iomem		*base;
 };
 
+static inline unsigned int get_mbigen_node_offset(unsigned int nid)
+{
+	unsigned int offset = nid * MBIGEN_NODE_OFFSET;
+
+	/*
+	 * To avoid touched clear register in unexpected way, we need to directly
+	 * skip clear register when access to more than 10 mbigen nodes.
+	 */
+	if (nid >= (REG_MBIGEN_CLEAR_OFFSET / MBIGEN_NODE_OFFSET))
+		offset += MBIGEN_NODE_OFFSET;
+
+	return offset;
+}
+
 static inline unsigned int get_mbigen_vec_reg(irq_hw_number_t hwirq)
 {
 	unsigned int nid, pin;
@@ -72,8 +86,7 @@ static inline unsigned int get_mbigen_vec_reg(irq_hw_number_t hwirq)
 	nid = hwirq / IRQS_PER_MBIGEN_NODE + 1;
 	pin = hwirq % IRQS_PER_MBIGEN_NODE;
 
-	return pin * 4 + nid * MBIGEN_NODE_OFFSET
-			+ REG_MBIGEN_VEC_OFFSET;
+	return pin * 4 + get_mbigen_node_offset(nid) + REG_MBIGEN_VEC_OFFSET;
 }
 
 static inline void get_mbigen_type_reg(irq_hw_number_t hwirq,
@@ -88,8 +101,7 @@ static inline void get_mbigen_type_reg(irq_hw_number_t hwirq,
 	*mask = 1 << (irq_ofst % 32);
 	ofst = irq_ofst / 32 * 4;
 
-	*addr = ofst + nid * MBIGEN_NODE_OFFSET
-		+ REG_MBIGEN_TYPE_OFFSET;
+	*addr = ofst + get_mbigen_node_offset(nid) + REG_MBIGEN_TYPE_OFFSET;
 }
 
 static inline void get_mbigen_clear_reg(irq_hw_number_t hwirq,
drivers/isdn/hardware/mISDN/hfcmulti.c +4 -3
index 2c7406465233..6e0997561330 100644
@@ -1931,7 +1931,7 @@ hfcmulti_dtmf(struct hfc_multi *hc)
 static void
 hfcmulti_tx(struct hfc_multi *hc, int ch)
 {
-	int i, ii, temp, len = 0;
+	int i, ii, temp, tmp_len, len = 0;
 	int Zspace, z1, z2; /* must be int for calculation */
 	int Fspace, f1, f2;
 	u_char *d;
@@ -2152,14 +2152,15 @@ hfcmulti_tx(struct hfc_multi *hc, int ch)
 		HFC_wait_nodebug(hc);
 	}
 
+	tmp_len = (*sp)->len;
 	dev_kfree_skb(*sp);
 	/* check for next frame */
 	if (bch && get_next_bframe(bch)) {
-		len = (*sp)->len;
+		len = tmp_len;
 		goto next_frame;
 	}
 	if (dch && get_next_dframe(dch)) {
-		len = (*sp)->len;
+		len = tmp_len;
 		goto next_frame;
 	}
 
drivers/leds/led-triggers.c +1 -1
index 0d59763e40de..3ec9629a1b00 100644
@@ -121,9 +121,9 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
 			flags);
 		cancel_work_sync(&led_cdev->set_brightness_work);
 		led_stop_software_blink(led_cdev);
+		device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
 		if (led_cdev->trigger->deactivate)
 			led_cdev->trigger->deactivate(led_cdev);
-		device_remove_groups(led_cdev->dev, led_cdev->trigger->groups);
 		led_cdev->trigger = NULL;
 		led_cdev->trigger_data = NULL;
 		led_cdev->activated = false;
drivers/leds/leds-ss4200.c +5 -2
index 245de443fe9c..833bb721a8e0 100644
@@ -356,8 +356,10 @@ static int ich7_lpc_probe(struct pci_dev *dev,
 
 	nas_gpio_pci_dev = dev;
 	status = pci_read_config_dword(dev, PMBASE, &g_pm_io_base);
-	if (status)
+	if (status) {
+		status = pcibios_err_to_errno(status);
 		goto out;
+	}
 	g_pm_io_base &= 0x00000ff80;
 
 	status = pci_read_config_dword(dev, GPIO_CTRL, &gc);
@@ -369,8 +371,9 @@ static int ich7_lpc_probe(struct pci_dev *dev,
 	}
 
 	status = pci_read_config_dword(dev, GPIO_BASE, &nas_gpio_io_base);
-	if (0 > status) {
+	if (status) {
 		dev_info(&dev->dev, "Unable to read GPIOBASE.\n");
+		status = pcibios_err_to_errno(status);
 		goto out;
 	}
 	dev_dbg(&dev->dev, ": GPIOBASE = 0x%08x\n", nas_gpio_io_base);
drivers/macintosh/therm_windtunnel.c +1 -1
index a0d87ed9da69..63e99762a165 100644
@@ -549,7 +549,7 @@ g4fan_exit( void )
 	platform_driver_unregister( &therm_of_driver );
 
 	if( x.of_dev )
-		of_device_unregister( x.of_dev );
+		of_platform_device_destroy(&x.of_dev->dev, NULL);
 }
 
 module_init(g4fan_init);
drivers/md/raid5.c +13 -7
index bba5e61cc145..41556f5d4dcb 100644
@@ -5821,7 +5821,9 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, int *sk
 	safepos = conf->reshape_safe;
 	sector_div(safepos, data_disks);
 	if (mddev->reshape_backwards) {
-		BUG_ON(writepos < reshape_sectors);
+		if (WARN_ON(writepos < reshape_sectors))
+			return MaxSector;
+
 		writepos -= reshape_sectors;
 		readpos += reshape_sectors;
 		safepos += reshape_sectors;
@@ -5839,14 +5841,18 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, int *sk
 	 * to set 'stripe_addr' which is where we will write to.
 	 */
 	if (mddev->reshape_backwards) {
-		BUG_ON(conf->reshape_progress == 0);
+		if (WARN_ON(conf->reshape_progress == 0))
+			return MaxSector;
+
 		stripe_addr = writepos;
-		BUG_ON((mddev->dev_sectors &
-			~((sector_t)reshape_sectors - 1))
-		       - reshape_sectors - stripe_addr
-		       != sector_nr);
+		if (WARN_ON((mddev->dev_sectors &
+		    ~((sector_t)reshape_sectors - 1)) -
+		    reshape_sectors - stripe_addr != sector_nr))
+			return MaxSector;
 	} else {
-		BUG_ON(writepos != sector_nr + reshape_sectors);
+		if (WARN_ON(writepos != sector_nr + reshape_sectors))
+			return MaxSector;
+
 		stripe_addr = sector_nr;
 	}
 
drivers/media/pci/saa7134/saa7134-dvb.c +6 -2
index f359cd5c006a..c786b83a69d2 100644
@@ -466,7 +466,9 @@ static int philips_europa_tuner_sleep(struct dvb_frontend *fe)
 	/* switch the board to analog mode */
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 1);
-	i2c_transfer(&dev->i2c_adap, &analog_msg, 1);
+	if (i2c_transfer(&dev->i2c_adap, &analog_msg, 1) != 1)
+		return -EIO;
+
 	return 0;
 }
 
@@ -1018,7 +1020,9 @@ static int md8800_set_voltage2(struct dvb_frontend *fe,
 	else
 		wbuf[1] = rbuf & 0xef;
 	msg[0].len = 2;
-	i2c_transfer(&dev->i2c_adap, msg, 1);
+	if (i2c_transfer(&dev->i2c_adap, msg, 1) != 1)
+		return -EIO;
+
 	return 0;
 }
 
drivers/media/platform/qcom/venus/vdec.c +1 -0
index d1ac1d78c08f..a0a67b7132b8 100644
@@ -1400,6 +1400,7 @@ static int vdec_close(struct file *file)
 {
 	struct venus_inst *inst = to_inst(file);
 
+	cancel_work_sync(&inst->delayed_process_work);
 	v4l2_m2m_ctx_release(inst->m2m_ctx);
 	v4l2_m2m_release(inst->m2m_dev);
 	vdec_ctrl_deinit(inst);
drivers/media/platform/vsp1/vsp1_histo.c +8 -12
index 30d751f2cccf..83c50628926b 100644
@@ -36,9 +36,8 @@ struct vsp1_histogram_buffer *
 vsp1_histogram_buffer_get(struct vsp1_histogram *histo)
 {
 	struct vsp1_histogram_buffer *buf = NULL;
-	unsigned long flags;
 
-	spin_lock_irqsave(&histo->irqlock, flags);
+	spin_lock(&histo->irqlock);
 
 	if (list_empty(&histo->irqqueue))
 		goto done;
@@ -49,7 +48,7 @@ vsp1_histogram_buffer_get(struct vsp1_histogram *histo)
 	histo->readout = true;
 
 done:
-	spin_unlock_irqrestore(&histo->irqlock, flags);
+	spin_unlock(&histo->irqlock);
 	return buf;
 }
 
@@ -58,7 +57,6 @@ void vsp1_histogram_buffer_complete(struct vsp1_histogram *histo,
 				    size_t size)
 {
 	struct vsp1_pipeline *pipe = histo->entity.pipe;
-	unsigned long flags;
 
 	/*
 	 * The pipeline pointer is guaranteed to be valid as this function is
@@ -70,10 +68,10 @@ void vsp1_histogram_buffer_complete(struct vsp1_histogram *histo,
 	vb2_set_plane_payload(&buf->buf.vb2_buf, 0, size);
 	vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_DONE);
 
-	spin_lock_irqsave(&histo->irqlock, flags);
+	spin_lock(&histo->irqlock);
 	histo->readout = false;
 	wake_up(&histo->wait_queue);
-	spin_unlock_irqrestore(&histo->irqlock, flags);
+	spin_unlock(&histo->irqlock);
 }
 
 /* -----------------------------------------------------------------------------
@@ -124,11 +122,10 @@ static void histo_buffer_queue(struct vb2_buffer *vb)
 	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
 	struct vsp1_histogram *histo = vb2_get_drv_priv(vb->vb2_queue);
 	struct vsp1_histogram_buffer *buf = to_vsp1_histogram_buffer(vbuf);
-	unsigned long flags;
 
-	spin_lock_irqsave(&histo->irqlock, flags);
+	spin_lock_irq(&histo->irqlock);
 	list_add_tail(&buf->queue, &histo->irqqueue);
-	spin_unlock_irqrestore(&histo->irqlock, flags);
+	spin_unlock_irq(&histo->irqlock);
 }
 
 static int histo_start_streaming(struct vb2_queue *vq, unsigned int count)
@@ -140,9 +137,8 @@ static void histo_stop_streaming(struct vb2_queue *vq)
 {
 	struct vsp1_histogram *histo = vb2_get_drv_priv(vq);
 	struct vsp1_histogram_buffer *buffer;
-	unsigned long flags;
 
-	spin_lock_irqsave(&histo->irqlock, flags);
+	spin_lock_irq(&histo->irqlock);
 
 	/* Remove all buffers from the IRQ queue. */
 	list_for_each_entry(buffer, &histo->irqqueue, queue)
@@ -152,7 +148,7 @@ static void histo_stop_streaming(struct vb2_queue *vq)
 	/* Wait for the buffer being read out (if any) to complete. */
 	wait_event_lock_irq(histo->wait_queue, !histo->readout, histo->irqlock);
 
-	spin_unlock_irqrestore(&histo->irqlock, flags);
+	spin_unlock_irq(&histo->irqlock);
 }
 
 static const struct vb2_ops histo_video_queue_qops = {
drivers/media/platform/vsp1/vsp1_pipe.h +1 -1
index ae646c9ef337..15daf35bda21 100644
@@ -73,7 +73,7 @@ struct vsp1_partition_window {
  * @wpf: The WPF partition window configuration
  */
 struct vsp1_partition {
-	struct vsp1_partition_window rpf;
+	struct vsp1_partition_window rpf[VSP1_MAX_RPF];
 	struct vsp1_partition_window uds_sink;
 	struct vsp1_partition_window uds_source;
 	struct vsp1_partition_window sru;
drivers/media/platform/vsp1/vsp1_rpf.c +5 -3
index 75083cb234fe..996a3058d5b7 100644
@@ -271,8 +271,8 @@ static void rpf_configure_partition(struct vsp1_entity *entity,
 	 * 'width' need to be adjusted.
 	 */
 	if (pipe->partitions > 1) {
-		crop.width = pipe->partition->rpf.width;
-		crop.left += pipe->partition->rpf.left;
+		crop.width = pipe->partition->rpf[rpf->entity.index].width;
+		crop.left += pipe->partition->rpf[rpf->entity.index].left;
 	}
 
 	if (pipe->interlaced) {
@@ -327,7 +327,9 @@ static void rpf_partition(struct vsp1_entity *entity,
 			  unsigned int partition_idx,
 			  struct vsp1_partition_window *window)
 {
-	partition->rpf = *window;
+	struct vsp1_rwpf *rpf = to_rwpf(&entity->subdev);
+
+	partition->rpf[rpf->entity.index] = *window;
 }
 
 static const struct vsp1_entity_operations rpf_entity_ops = {
drivers/media/rc/imon.c +1 -4
index d8401ef9b0a7..38f6dd12d870 100644
@@ -1117,10 +1117,7 @@ static int imon_ir_change_protocol(struct rc_dev *rc, u64 *rc_proto)
 
 	memcpy(ictx->usb_tx_buf, &ir_proto_packet, sizeof(ir_proto_packet));
 
-	if (!mutex_is_locked(&ictx->lock)) {
-		unlock = true;
-		mutex_lock(&ictx->lock);
-	}
+	unlock = mutex_trylock(&ictx->lock);
 
 	retval = send_packet(ictx);
 	if (retval)
drivers/media/usb/uvc/uvc_ctrl.c +60 -30

122 lines not on this page · raw message

drivers/media/usb/uvc/uvc_video.c +33 -4
index 6dff8e2fadba..8a8271e23c63 100644
@@ -207,13 +207,13 @@ static void uvc_fixup_video_ctrl(struct uvc_streaming *stream,
 		/* Compute a bandwidth estimation by multiplying the frame
 		 * size by the number of video frames per second, divide the
 		 * result by the number of USB frames (or micro-frames for
-		 * high-speed devices) per second and add the UVC header size
-		 * (assumed to be 12 bytes long).
+		 * high- and super-speed devices) per second and add the UVC
+		 * header size (assumed to be 12 bytes long).
 		 */
 		bandwidth = frame->wWidth * frame->wHeight / 8 * format->bpp;
 		bandwidth *= 10000000 / interval + 1;
 		bandwidth /= 1000;
-		if (stream->dev->udev->speed == USB_SPEED_HIGH)
+		if (stream->dev->udev->speed >= USB_SPEED_HIGH)
 			bandwidth /= 8;
 		bandwidth += 12;
 
@@ -468,6 +468,7 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
 	ktime_t time;
 	u16 host_sof;
 	u16 dev_sof;
+	u32 dev_stc;
 
 	switch (data[1] & (UVC_STREAM_PTS | UVC_STREAM_SCR)) {
 	case UVC_STREAM_PTS | UVC_STREAM_SCR:
@@ -512,6 +513,34 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
 	if (dev_sof == stream->clock.last_sof)
 		return;
 
+	dev_stc = get_unaligned_le32(&data[header_size - 6]);
+
+	/*
+	 * STC (Source Time Clock) is the clock used by the camera. The UVC 1.5
+	 * standard states that it "must be captured when the first video data
+	 * of a video frame is put on the USB bus". This is generally understood
+	 * as requiring devices to clear the payload header's SCR bit before
+	 * the first packet containing video data.
+	 *
+	 * Most vendors follow that interpretation, but some (namely SunplusIT
+	 * on some devices) always set the `UVC_STREAM_SCR` bit, fill the SCR
+	 * field with 0's,and expect that the driver only processes the SCR if
+	 * there is data in the packet.
+	 *
+	 * Ignore all the hardware timestamp information if we haven't received
+	 * any data for this frame yet, the packet contains no data, and both
+	 * STC and SOF are zero. This heuristics should be safe on compliant
+	 * devices. This should be safe with compliant devices, as in the very
+	 * unlikely case where a UVC 1.1 device would send timing information
+	 * only before the first packet containing data, and both STC and SOF
+	 * happen to be zero for a particular frame, we would only miss one
+	 * clock sample from many and the clock recovery algorithm wouldn't
+	 * suffer from this condition.
+	 */
+	if (buf && buf->bytesused == 0 && len == header_size &&
+	    dev_stc == 0 && dev_sof == 0)
+		return;
+
 	stream->clock.last_sof = dev_sof;
 
 	host_sof = usb_get_current_frame_number(stream->dev->udev);
@@ -549,7 +578,7 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf,
 	spin_lock_irqsave(&stream->clock.lock, flags);
 
 	sample = &stream->clock.samples[stream->clock.head];
-	sample->dev_stc = get_unaligned_le32(&data[header_size - 6]);
+	sample->dev_stc = dev_stc;
 	sample->dev_sof = dev_sof;
 	sample->host_sof = host_sof;
 	sample->host_time = time;
drivers/media/usb/uvc/uvcvideo.h +5 -0
index 9f5b9601eadc..97817b350f98 100644
@@ -350,6 +350,11 @@ struct uvc_entity {
 	u8 bNrInPins;
 	u8 *baSourceID;
 
+	int (*get_info)(struct uvc_device *dev, struct uvc_entity *entity,
+			u8 cs, u8 *caps);
+	int (*get_cur)(struct uvc_device *dev, struct uvc_entity *entity,
+		       u8 cs, void *data, u16 size);
+
 	unsigned int ncontrols;
 	struct uvc_control *controls;
 };
drivers/mfd/omap-usb-tll.c +1 -2
index 265f5e350e1c..17648dd83d66 100644
@@ -235,8 +235,7 @@ static int usbtll_omap_probe(struct platform_device *pdev)
 		break;
 	}
 
-	tll = devm_kzalloc(dev, sizeof(*tll) + sizeof(tll->ch_clk[nch]),
-			   GFP_KERNEL);
+	tll = devm_kzalloc(dev, struct_size(tll, ch_clk, nch), GFP_KERNEL);
 	if (!tll) {
 		pm_runtime_put_sync(dev);
 		pm_runtime_disable(dev);
drivers/mtd/tests/Makefile +17 -17
index 5de0378f90db..7dae831ee8b6 100644
@@ -1,19 +1,19 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_MTD_TESTS) += mtd_oobtest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_pagetest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_readtest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_speedtest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_stresstest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_subpagetest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_torturetest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_nandecctest.o
-obj-$(CONFIG_MTD_TESTS) += mtd_nandbiterrs.o
+obj-$(CONFIG_MTD_TESTS) += mtd_oobtest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_pagetest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_readtest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_speedtest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_stresstest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_subpagetest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_torturetest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_nandecctest.o mtd_test.o
+obj-$(CONFIG_MTD_TESTS) += mtd_nandbiterrs.o mtd_test.o
 
-mtd_oobtest-objs := oobtest.o mtd_test.o
-mtd_pagetest-objs := pagetest.o mtd_test.o
-mtd_readtest-objs := readtest.o mtd_test.o
-mtd_speedtest-objs := speedtest.o mtd_test.o
-mtd_stresstest-objs := stresstest.o mtd_test.o
-mtd_subpagetest-objs := subpagetest.o mtd_test.o
-mtd_torturetest-objs := torturetest.o mtd_test.o
-mtd_nandbiterrs-objs := nandbiterrs.o mtd_test.o
+mtd_oobtest-objs := oobtest.o
+mtd_pagetest-objs := pagetest.o
+mtd_readtest-objs := readtest.o
+mtd_speedtest-objs := speedtest.o
+mtd_stresstest-objs := stresstest.o
+mtd_subpagetest-objs := subpagetest.o
+mtd_torturetest-objs := torturetest.o
+mtd_nandbiterrs-objs := nandbiterrs.o
drivers/mtd/tests/mtd_test.c +9 -0
index c84250beffdc..f391e0300cdc 100644
@@ -25,6 +25,7 @@ int mtdtest_erase_eraseblock(struct mtd_info *mtd, unsigned int ebnum)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(mtdtest_erase_eraseblock);
 
 static int is_block_bad(struct mtd_info *mtd, unsigned int ebnum)
 {
@@ -57,6 +58,7 @@ int mtdtest_scan_for_bad_eraseblocks(struct mtd_info *mtd, unsigned char *bbt,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(mtdtest_scan_for_bad_eraseblocks);
 
 int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt,
 				unsigned int eb, int ebcnt)
@@ -75,6 +77,7 @@ int mtdtest_erase_good_eraseblocks(struct mtd_info *mtd, unsigned char *bbt,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(mtdtest_erase_good_eraseblocks);
 
 int mtdtest_read(struct mtd_info *mtd, loff_t addr, size_t size, void *buf)
 {
@@ -92,6 +95,7 @@ int mtdtest_read(struct mtd_info *mtd, loff_t addr, size_t size, void *buf)
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mtdtest_read);
 
 int mtdtest_write(struct mtd_info *mtd, loff_t addr, size_t size,
 		const void *buf)
@@ -107,3 +111,8 @@ int mtdtest_write(struct mtd_info *mtd, loff_t addr, size_t size,
 
 	return err;
 }
+EXPORT_SYMBOL_GPL(mtdtest_write);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("MTD function test helpers");
+MODULE_AUTHOR("Akinobu Mita");
drivers/mtd/ubi/eba.c +2 -1
index b4cdf2351cac..d33deb84b6ec 100644
@@ -1560,6 +1560,7 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
 					  GFP_KERNEL);
 		if (!fm_eba[i]) {
 			ret = -ENOMEM;
+			kfree(scan_eba[i]);
 			goto out_free;
 		}
 
@@ -1595,7 +1596,7 @@ int self_check_eba(struct ubi_device *ubi, struct ubi_attach_info *ai_fastmap,
 	}
 
 out_free:
-	for (i = 0; i < num_volumes; i++) {
+	while (--i >= 0) {
 		if (!ubi->volumes[i])
 			continue;
 
drivers/net/bonding/bond_main.c +2 -5
index bb1c6743222e..89797b257573 100644
@@ -784,13 +784,10 @@ static struct slave *bond_find_best_slave(struct bonding *bond)
 	return bestslave;
 }
 
+/* must be called in RCU critical section or with RTNL held */
 static bool bond_should_notify_peers(struct bonding *bond)
 {
-	struct slave *slave;
-
-	rcu_read_lock();
-	slave = rcu_dereference(bond->curr_active_slave);
-	rcu_read_unlock();
+	struct slave *slave = rcu_dereference_rtnl(bond->curr_active_slave);
 
 	if (!slave || !bond->send_peer_notif ||
 	    bond->send_peer_notif %
drivers/net/ethernet/brocade/bna/bna_types.h +1 -1
index 666b6922e24d..ebf54d74c2bb 100644
@@ -410,7 +410,7 @@ struct bna_ib {
 /* Tx object */
 
 /* Tx datapath control structure */
-#define BNA_Q_NAME_SIZE		16
+#define BNA_Q_NAME_SIZE		(IFNAMSIZ + 6)
 struct bna_tcb {
 	/* Fast path */
 	void			**sw_qpt;
drivers/net/ethernet/brocade/bna/bnad.c +6 -5
index 94e87e7f277b..838fa3a2700a 100644
@@ -1535,8 +1535,9 @@ bnad_tx_msix_register(struct bnad *bnad, struct bnad_tx_info *tx_info,
 
 	for (i = 0; i < num_txqs; i++) {
 		vector_num = tx_info->tcb[i]->intr_vector;
-		sprintf(tx_info->tcb[i]->name, "%s TXQ %d", bnad->netdev->name,
-				tx_id + tx_info->tcb[i]->id);
+		snprintf(tx_info->tcb[i]->name, BNA_Q_NAME_SIZE, "%s TXQ %d",
+			 bnad->netdev->name,
+			 tx_id + tx_info->tcb[i]->id);
 		err = request_irq(bnad->msix_table[vector_num].vector,
 				  (irq_handler_t)bnad_msix_tx, 0,
 				  tx_info->tcb[i]->name,
@@ -1586,9 +1587,9 @@ bnad_rx_msix_register(struct bnad *bnad, struct bnad_rx_info *rx_info,
 
 	for (i = 0; i < num_rxps; i++) {
 		vector_num = rx_info->rx_ctrl[i].ccb->intr_vector;
-		sprintf(rx_info->rx_ctrl[i].ccb->name, "%s CQ %d",
-			bnad->netdev->name,
-			rx_id + rx_info->rx_ctrl[i].ccb->id);
+		snprintf(rx_info->rx_ctrl[i].ccb->name, BNA_Q_NAME_SIZE,
+			 "%s CQ %d", bnad->netdev->name,
+			 rx_id + rx_info->rx_ctrl[i].ccb->id);
 		err = request_irq(bnad->msix_table[vector_num].vector,
 				  (irq_handler_t)bnad_msix_rx, 0,
 				  rx_info->rx_ctrl[i].ccb->name,
drivers/net/ethernet/freescale/fec_main.c +36 -16

115 lines not on this page · raw message

drivers/net/ethernet/freescale/fec_ptp.c +3 -0
index 37b8ad29b5b3..c5af845b1b25 100644
@@ -635,6 +635,9 @@ void fec_ptp_stop(struct platform_device *pdev)
 	struct net_device *ndev = platform_get_drvdata(pdev);
 	struct fec_enet_private *fep = netdev_priv(ndev);
 
+	if (fep->pps_enable)
+		fec_ptp_enable_pps(fep, 0);
+
 	cancel_delayed_work_sync(&fep->time_keep);
 	if (fep->ptp_clock)
 		ptp_clock_unregister(fep->ptp_clock);
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +6 -1
index 18e0cb02aee1..10411ab89e1c 100644
@@ -1104,7 +1104,12 @@ int mlx5e_ethtool_set_link_ksettings(struct mlx5e_priv *priv,
 	if (!an_changes && link_modes == eproto.admin)
 		goto out;
 
-	mlx5_port_set_eth_ptys(mdev, an_disable, link_modes, ext);
+	err = mlx5_port_set_eth_ptys(mdev, an_disable, link_modes, ext);
+	if (err) {
+		netdev_err(priv->netdev, "%s: failed to set ptys reg: %d\n", __func__, err);
+		goto out;
[… more lines in the raw message]

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c +0 -13
index d231f4d2888b..9eee229303cc 100644

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

drivers/net/ethernet/qlogic/qed/qed_l2.c +3 -20
index 8a73482cb7a8..b21acc07f755 100644

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

drivers/net/ethernet/qlogic/qede/qede_filter.c +19 -28

47 lines not on this page · raw message

drivers/net/netconsole.c +1 -1
index 92001f7af380..924370e53003 100644

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

drivers/net/usb/qmi_wwan.c +1 -0
index 17aa52ed892b..3e219cf4dd85 100644

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

drivers/net/usb/sr9700.c +9 -2
index 3fac642bec77..8d2e3daf03cf 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c +9 -9
index 66797dc5e90d..1e597e5de5f1 100644

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

drivers/net/wireless/marvell/mwifiex/cfg80211.c +2 -0
index 857b61db9d2c..f0f966cecc3a 100644

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

drivers/net/wireless/virt_wifi.c +17 -3
index 4e906910f110..41958eb15f87 100644

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

drivers/nvme/host/pci.c +9 -1
index 486e44d20b43..20f5616fd518 100644

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

drivers/parport/daisy.c +2 -4
index 5484a46dafda..465acebd6438 100644

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

drivers/parport/ieee1284.c +2 -2
index 90fb73575495..5c0c9613e03b 100644

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

drivers/parport/ieee1284_ops.c +1 -2
index 75daa16f38b7..58ec484c7305 100644

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

drivers/parport/parport_amiga.c +1 -1
index 3301861f69fa..8c7a598abcff 100644

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

drivers/parport/parport_atari.c +1 -1
index f8dd368bfdbb..2ff0fe053e6e 100644

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

drivers/parport/parport_cs.c +2 -4
index e77044c2bf62..8e7e3ac4bb87 100644

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

drivers/parport/parport_gsc.c +9 -6
index 922535a118ba..54963f5033fa 100644

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

drivers/parport/parport_ip32.c +10 -15
index ab215b650f41..4f76e4f4f6cf 100644

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

drivers/parport/parport_mfc3.c +1 -1
index 9f87faf939e3..3190ef0f3c81 100644

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

drivers/parport/parport_pc.c +75 -103

178 lines not on this page · raw message

drivers/parport/parport_sunbpp.c +1 -1
index d5a669b60c27..e840c1b5ab90 100644

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

drivers/parport/probe.c +4 -3
index e035174ba205..650206c71875 100644

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

drivers/parport/procfs.c +16 -12
index 48804049d697..595e23e6859b 100644

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

drivers/parport/share.c +12 -12
index 15c81cffd2de..fc2930fb9bee 100644

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

drivers/pci/controller/pci-hyperv.c +2 -2
index f66f07b8eebd..2c502a727f7e 100644

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

drivers/pci/controller/pcie-rockchip.c +6 -6
index b047437605cb..6ab7ca0b9bf9 100644

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

drivers/pci/setup-bus.c +2 -4
index 44f4866d95d8..32e34ade736c 100644

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

drivers/pinctrl/core.c +11 -1
index 1d8324e220fc..fa4aec8c4ad5 100644

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

drivers/pinctrl/freescale/pinctrl-mxs.c +2 -2
index 735cedd0958a..5b0fcf15f280 100644

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

drivers/pinctrl/pinctrl-single.c +4 -3
index ce5be6f0b7aa..13517243355c 100644

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

drivers/pinctrl/ti/pinctrl-ti-iodelay.c +6 -8
index b522ca010332..e75c641c2445 100644

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

drivers/platform/chrome/cros_ec_debugfs.c +1 -0
index c4b57e1df192..704086ca1dd2 100644

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

drivers/platform/mips/cpu_hwmon.c +3 -0
index 3d29a11c1d6b..66770c1ddc49 100644

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

drivers/power/supply/axp288_charger.c +11 -11
index 2ee6bb7c0804..8dfc0b0b6c4f 100644

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

drivers/pwm/pwm-stm32.c +3 -2
index 4b20ff6f687b..9e94a797dcf3 100644

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

drivers/remoteproc/imx_rproc.c +5 -0
index 3e72b6f38d4b..3f3d1eb94e6f 100644

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

drivers/rtc/interface.c +5 -4
index ba345a379e26..d858cd819932 100644

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

drivers/rtc/rtc-cmos.c +4 -6
index c0dc03ffa817..40936c3ff397 100644

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

drivers/rtc/rtc-isl1208.c +4 -7
index ebb691fa48a6..cba0dfe21a15 100644

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

drivers/s390/char/sclp_sd.c +8 -2
index 1e244f78f192..64581433c334 100644

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

drivers/scsi/mpt3sas/mpt3sas_base.c +21 -17
index 35c97bc660bd..1bc23e8ee748 100644

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

drivers/scsi/qla2xxx/qla_bsg.c +1 -1
index e584d39dc982..c94dd4e69b65 100644

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

drivers/scsi/qla2xxx/qla_mid.c +1 -1
index eabc5127174e..9ce8e9873935 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +4 -1
index 11ee87f76f4b..082ab5eb3b90 100644

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

drivers/scsi/qla2xxx/qla_os.c +1 -6
index 6da85ad96c9b..c73f77ad6095 100644

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

drivers/scsi/ufs/ufshcd.c +8 -3
index e54a08f96a50..d396265b24fd 100644

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

drivers/spi/spi-fsl-lpspi.c +5 -6
index 58b2da91be1c..2708bf15e126 100644

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

drivers/tty/serial/serial_core.c +8 -0
index 7cc7bd8aca0f..7e90139df4d8 100644

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

drivers/usb/core/urb.c +23 -8
index 0045bbc3627d..850d0fffe1c6 100644

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

drivers/usb/gadget/udc/core.c +4 -6
index 1fabc2f90626..31ee1ae344d9 100644

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

drivers/usb/serial/usb_debug.c +7 -0
index aaf4813e4971..406cb326e812 100644

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

drivers/usb/usbip/vhci_hcd.c +6 -3
index 170abb06a8a4..ee8fa558e3ed 100644

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

fs/btrfs/free-space-cache.c +1 -0
index 0cb93f73acb2..af89fce57ff7 100644

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

fs/exec.c +7 -1
index 1bce1aade824..4fd9cefb56b5 100644

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

fs/ext4/mballoc.c +1 -2
index b2e7b1907d41..9bc590564ea1 100644

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

fs/ext4/namei.c +57 -16

73 lines not on this page · raw message

fs/ext4/xattr.c +6 -0
index cb7faaa935cc..d65f1eb85a92 100644

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

fs/f2fs/inode.c +3 -0
index 8d04ff8ba54a..53e1a757e4e1 100644

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

fs/file.c +1 -0
index 64892b744419..9e6281046274 100644

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

fs/hfs/inode.c +3 -0
index ee2ea5532e69..c58792cab2be 100644

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

fs/hfsplus/bfind.c +2 -13
index ca2ba8c9f82e..901e83d65d20 100644

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

fs/hfsplus/extents.c +6 -3
index 7054a542689f..c95a2f0ed4a7 100644

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

fs/hfsplus/hfsplus_fs.h +21 -0
index 9580179ff535..909e03956c3f 100644

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

fs/jbd2/journal.c +1 -0
index 81bd7b29a10b..cfa21c29f312 100644

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

fs/jfs/jfs_imap.c +4 -1
index b0965f3ef186..36ed75682064 100644

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

fs/nilfs2/btnode.c +20 -5
index 1776121677e2..28a726553318 100644

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

fs/nilfs2/btree.c +2 -2
index 4905b7cd7bf3..a426e4e2acda 100644

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

fs/nilfs2/segment.c +1 -6
index 23b24ec79527..3c4272762779 100644

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

fs/udf/balloc.c +26 -25

51 lines not on this page · raw message

fs/udf/super.c +2 -1
index 0f8b3cb35585..46384284e7e0 100644

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

include/linux/compiler_attributes.h +1 -0
index a72b0f756a24..1b2338dee977 100644

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

include/linux/irq.h +4 -3
index 5655da9eb1fb..0c3f153f6067 100644

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

include/linux/irqdomain.h +10 -0
index 2552f66a7a89..289556413ad9 100644

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

include/linux/objagg.h +0 -1
index 78021777df46..6df5b887dc54 100644

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

include/linux/pci_ids.h +2 -0
index d8b188643a87..bf8548fbdf55 100644

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

include/linux/platform_data/x86/soc.h new file +65 -0

65 lines not on this page · raw message

include/linux/qed/qed_eth_if.h +8 -13
index a1310482c4ed..8e11dd56dd63 100644

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

include/linux/trace_events.h +0 -1
index 12ee8973ea6f..d88622a9db7b 100644

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

include/linux/usb.h +1 -0
index abcf1ce9bb06..7c0e7efbc8f2 100644

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

include/net/netfilter/nf_tables.h +19 -2
index 4f77e2f8e1ca..648aac42dfec 100644

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

include/net/sctp/sctp.h +2 -2
index 35c108a6b872..aa29695f4bd7 100644

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

include/net/sctp/structs.h +4 -4
index 48cbf3352042..146d46a44b43 100644

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

include/trace/events/rpcgss.h +1 -1
index d1f7fe1b6fe4..23e8288a76b5 100644

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

include/uapi/linux/netfilter/nf_tables.h +1 -1
index bc70d580e8d6..3e6c61d026e3 100644

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

include/uapi/linux/zorro_ids.h +3 -0
index 6e574d7b7d79..393f2ee9c042 100644

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

kernel/debug/kdb/kdb_io.c +3 -3
index 5358e8a8b6f1..bfce77a0daac 100644

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

kernel/dma/mapping.c +1 -1
index 8682a5305cb3..942e489bc1fc 100644

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

kernel/events/core.c +2 -0
index 2347dda682ab..39cf0040e6df 100644

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

kernel/events/internal.h +1 -1
index 6e87b358e082..30218d7c74e6 100644

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

kernel/irq/chip.c +21 -11
index 521121c2666c..5f85eac6af11 100644

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

kernel/irq/irqdesc.c +1 -0
index 0272a2e36ae6..a0e86b426ba5 100644

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

kernel/time/ntp.c +4 -5
index 069ca78fb0bf..02d96c007673 100644

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

kernel/time/tick-broadcast.c +24 -0
index ce7339ff10d2..9629c3ddf631 100644

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

kernel/trace/tracing_map.c +3 -3
index 33c463967bb3..208cfe24c547 100644

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

kernel/watchdog_hld.c +8 -3
index 1e8a49dc956e..8ba4b269ab89 100644

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

lib/decompress_bunzip2.c +2 -1
index 7c4932eed748..b16236747b55 100644

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

lib/kobject_uevent.c +16 -1
index c87d5b6a8a55..38716b2eb671 100644

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

lib/objagg.c +3 -15
index 55621fb82e0a..8a84c6dfa24b 100644

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

mm/page-writeback.c +26 -4
index 5cc892b26339..fd00a511644e 100644

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

net/bluetooth/l2cap_core.c +1 -0
index 2eea802a9cb2..874f12d93bfa 100644

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

net/core/filter.c +11 -4
index 3c4dcdc7217e..f82c27668623 100644

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

net/core/link_watch.c +2 -2
index 35b0e39030da..a70b2adc47a1 100644

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

net/ipv4/nexthop.c +4 -3
index 0137854a7faa..388f5773b88d 100644

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

net/ipv4/route.c +1 -1
index 2672b71e662d..f3e77b1e1d4b 100644

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

net/ipv6/addrconf.c +2 -1
index 2720e5d931e8..57c55909cb6a 100644

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

net/ipv6/ndisc.c +18 -16
index 74977ec77c57..64729e7e6a86 100644

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

net/iucv/af_iucv.c +2 -2
index 652285191da1..74cf37f17ea9 100644

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

net/netfilter/ipset/ip_set_list_set.c +3 -0
index 9f4f0126d6ed..c4aae8c586ac 100644

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

net/netfilter/ipvs/ip_vs_proto_sctp.c +2 -2
index 1e689c714127..83e452916403 100644

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

net/netfilter/nf_conntrack_netlink.c +2 -1
index 45d02185f4b9..c1401193a971 100644

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

net/netfilter/nf_tables_api.c +23 -105

128 lines not on this page · raw message

net/netfilter/nft_set_hash.c +7 -1
index 0581d5499c5a..ec03d4c77b3d 100644

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

net/netfilter/nft_set_rbtree.c +4 -2
index 2b5f65a424b7..ed54cc057899 100644

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

net/packet/af_packet.c +84 -2

86 lines not on this page · raw message

net/sctp/input.c +21 -25

46 lines not on this page · raw message

net/sctp/proc.c +4 -6
index 963b94517ec2..ec00ee75d59a 100644

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

net/sctp/socket.c +3 -3
index c188a0acfa59..614130ff6ba0 100644

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

net/smc/smc_core.c +17 -15
index 66cdfd5725ac..0a1520c75b86 100644

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

net/sunrpc/auth_gss/gss_krb5_keys.c +1 -1
index 3b7f721c023b..f77ea3dc0cc8 100644

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

net/sunrpc/clnt.c +2 -1
index 2e08876bf856..f689c7b0c304 100644

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

net/sunrpc/sched.c +3 -1
index a5c6a3d05741..df83c59cde7f 100644

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

net/tipc/udp_media.c +4 -1
index 1fb0535e2eb4..4db2185a32ae 100644

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

net/wireless/nl80211.c +2 -8
index 0d15dd68565c..e85e8f7b48f9 100644

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

net/wireless/util.c +5 -3
index 95533732f9d6..d3537d621096 100644

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

scripts/gcc-x86_32-has-stack-protector.sh +1 -1
index f5c119495254..e05020116b37 100755

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

scripts/gcc-x86_64-has-stack-protector.sh +1 -1
index 75e4e22b986a..f680bb01aeeb 100755

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

security/apparmor/lsm.c +7 -0
index 21e03380dd86..4c69259b62f1 100644

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

sound/pci/hda/patch_hdmi.c +2 -0
index ff81e6051773..31ba21b80504 100644

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

sound/soc/codecs/max98088.c +7 -3
index fa4cdbfd0b80..678b209d0bce 100644

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

sound/soc/intel/common/soc-intel-quirks.h +4 -51

55 lines not on this page · raw message

sound/usb/helper.c +1 -15
index 4c12cc5b53fd..cf92d7110773 100644

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

sound/usb/helper.h +0 -1
index 5e8a18b4e7b9..f5b4c6647e4d 100644

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

sound/usb/line6/driver.c +5 -0
index efa8fb59d3ad..c60ad1ba0bd5 100644

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

sound/usb/mixer_scarlett_gen2.c +1 -1
index ab7abe360fcf..6d8ef3aa99b5 100644

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

sound/usb/quirks.c +6 -6
index 28489aab6821..d7136f6f9440 100644

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

sound/usb/stream.c +2 -2
index 967f05d7e205..1c4ff5799324 100644

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

tools/lib/bpf/btf_dump.c +5 -3
index a1176a9e8430..1391f6c29205 100644

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

tools/memory-model/lock.cat +10 -10
index 6b52f365d73a..9f3b5b38221b 100644

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

tools/perf/util/sort.c +1 -1
index baf73ca66a2b..d2d149966acc 100644

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

tools/testing/selftests/bpf/prog_tests/send_signal.c +2 -1
index b607112c64e7..281d097b4b76 100644

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

tools/testing/selftests/bpf/progs/btf_dump_test_case_multidim.c +2 -2
index ba97165bdb28..a657651eba52 100644

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

tools/testing/selftests/bpf/progs/btf_dump_test_case_syntax.c +2 -2
index 0620580a5c16..1fcca43ab342 100644

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

tools/testing/selftests/bpf/test_sockmap.c +2 -1
index 779e11da979c..5e5648ed0b11 100644

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

tools/testing/selftests/net/forwarding/devlink_lib.sh +2 -0
index 13d03a6d85ba..dd9a85631858 100644

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

tools/testing/selftests/sigaltstack/current_stack_pointer.h +1 -1
index ea9bdf3a90b1..09da8f1011ce 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.