Skip to contentSkip to conversation

Linux 4.19.307

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Feb 23, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.307 kernel.

All users of the 4.19 kernel series must upgrade.

The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.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/ABI/testing/sysfs-class-net-queues          |   22 -
 Documentation/ABI/testing/sysfs-class-net-statistics      |   60 +++-
 Documentation/sound/soc/dapm.rst                          |    2 
 Makefile                                                  |    2 
 arch/arm/boot/dts/imx1-ads.dts                            |    2 
 arch/arm/boot/dts/imx1-apf9328.dts                        |    2 
 arch/arm/boot/dts/imx1.dtsi                               |    5 
 arch/arm/boot/dts/imx23-sansa.dts                         |   12 
 arch/arm/boot/dts/imx23.dtsi                              |    2 
 arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi              |    2 
 arch/arm/boot/dts/imx27-apf27dev.dts                      |    2 
 arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi              |    4 
 arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi           |    2 
 arch/arm/boot/dts/imx27.dtsi                              |    3 
 arch/arm/boot/dts/imx28.dtsi                              |    2 
 arch/arm/boot/dts/imx7s.dtsi                              |    4 
 arch/arm/boot/dts/rk3036.dtsi                             |   14 -
 arch/mips/include/asm/checksum.h                          |    3 
 arch/mips/kernel/elf.c                                    |    6 
 arch/parisc/kernel/firmware.c                             |    4 
 arch/powerpc/include/asm/mmu.h                            |    4 
 arch/powerpc/include/asm/mmzone.h                         |    3 
 arch/powerpc/kernel/traps.c                               |    2 
 arch/powerpc/lib/Makefile                                 |    4 
 arch/powerpc/lib/sstep.c                                  |   10 
 arch/powerpc/mm/init-common.c                             |    5 
 arch/s390/kernel/ptrace.c                                 |    6 
 arch/s390/kvm/kvm-s390.c                                  |    5 
 arch/um/drivers/net_kern.c                                |    2 
 arch/um/include/shared/kern_util.h                        |    2 
 arch/um/kernel/process.c                                  |    2 
 arch/um/os-Linux/helper.c                                 |    6 
 arch/um/os-Linux/util.c                                   |   19 +
 arch/x86/Kconfig.cpu                                      |    2 
 arch/x86/include/asm/syscall_wrapper.h                    |   25 +
 arch/x86/kernel/cpu/amd.c                                 |   20 -
 arch/x86/mm/ident_map.c                                   |   23 +
 block/bio.c                                               |    5 
 block/blk-mq.c                                            |   16 +
 crypto/algapi.c                                           |    1 
 drivers/acpi/acpi_extlog.c                                |    5 
 drivers/acpi/acpi_video.c                                 |    9 
 drivers/android/binder.c                                  |   10 
 drivers/atm/idt77252.c                                    |    2 
 drivers/base/core.c                                       |   44 +++
 drivers/base/power/domain.c                               |    2 
 drivers/char/hw_random/core.c                             |   34 +-
 drivers/clk/hisilicon/clk-hi3620.c                        |    4 
 drivers/clk/mmp/clk-of-pxa168.c                           |    3 
 drivers/crypto/stm32/stm32_crc32.c                        |    2 
 drivers/firewire/core-device.c                            |    7 
 drivers/gpio/gpio-eic-sprd.c                              |   32 ++
 drivers/gpio/gpiolib-acpi.c                               |   14 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c          |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c                  |    3 
 drivers/gpu/drm/bridge/nxp-ptn3460.c                      |    6 
 drivers/gpu/drm/drm_file.c                                |    2 
 drivers/gpu/drm/drm_framebuffer.c                         |    2 
 drivers/gpu/drm/drm_mipi_dsi.c                            |   17 +
 drivers/gpu/drm/drm_plane.c                               |    1 
 drivers/gpu/drm/exynos/exynos_drm_drv.c                   |   11 
 drivers/gpu/drm/exynos/exynos_drm_gsc.c                   |    2 
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c               |    5 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h                   |    1 
 drivers/gpu/drm/nouveau/nouveau_vmm.c                     |    3 
 drivers/hid/hid-apple.c                                   |   63 ++++
 drivers/hid/hid-ids.h                                     |    1 
 drivers/hid/hid-quirks.c                                  |    1 
 drivers/hid/wacom_sys.c                                   |   63 +++-
 drivers/hid/wacom_wac.c                                   |    9 
 drivers/hwmon/aspeed-pwm-tacho.c                          |    7 
 drivers/hwmon/coretemp.c                                  |   40 +--
 drivers/infiniband/ulp/ipoib/ipoib_multicast.c            |    7 
 drivers/input/keyboard/atkbd.c                            |   13 -
 drivers/irqchip/irq-brcmstb-l2.c                          |    3 
 drivers/leds/trigger/ledtrig-panic.c                      |    5 
 drivers/md/md.c                                           |   54 +++-
 drivers/md/raid5.c                                        |   12 
 drivers/media/pci/ddbridge/ddbridge-main.c                |    2 
 drivers/media/platform/rockchip/rga/rga.c                 |   15 -
 drivers/media/usb/stk1160/stk1160-video.c                 |    5 
 drivers/mfd/Kconfig                                       |    1 
 drivers/net/bonding/bond_alb.c                            |    3 
 drivers/net/ethernet/aquantia/atlantic/aq_nic.c           |    1 
 drivers/net/ethernet/cisco/enic/enic_ethtool.c            |    1 
 drivers/net/ethernet/freescale/fec_main.c                 |    2 
 drivers/net/ethernet/intel/i40e/i40e_main.c               |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c            |   36 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c            |   61 ++--
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c           |  177 ++++++--------
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c          |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c             |   44 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c              |   34 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h              |    1 
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c              |  105 ++++----
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h              |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c            |    2 
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h             |   51 ----
 drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c             |   45 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c             |  149 ++++++-----
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c         |   26 +-
 drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c |    6 
 drivers/net/fjes/fjes_hw.c                                |   37 ++
 drivers/net/ppp/ppp_async.c                               |    4 
 drivers/net/virtio_net.c                                  |    9 
 drivers/net/wan/lmc/lmc_proto.c                           |    4 
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c             |    5 
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c     |   12 
 drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c      |    6 
 drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c      |    4 
 drivers/net/xen-netback/netback.c                         |   84 +++---
 drivers/pci/controller/pcie-mediatek.c                    |   10 
 drivers/pci/quirks.c                                      |   24 +
 drivers/phy/ti/phy-omap-usb2.c                            |    4 
 drivers/pnp/pnpacpi/rsparser.c                            |   12 
 drivers/rpmsg/virtio_rpmsg_bus.c                          |    1 
 drivers/scsi/fcoe/fcoe_ctlr.c                             |   20 -
 drivers/scsi/isci/request.c                               |    2 
 drivers/scsi/libfc/fc_fcp.c                               |   18 -
 drivers/scsi/lpfc/lpfc.h                                  |    1 
 drivers/scsi/lpfc/lpfc_init.c                             |    4 
 drivers/spi/spi-ppc4xx.c                                  |    5 
 drivers/staging/iio/impedance-analyzer/ad5933.c           |    2 
 drivers/tty/serial/max310x.c                              |   21 +
 drivers/tty/serial/sc16is7xx.c                            |    8 
 drivers/usb/core/hub.c                                    |   34 +-
 drivers/usb/gadget/function/f_mass_storage.c              |   20 +
 drivers/usb/serial/cp210x.c                               |    1 
 drivers/usb/serial/option.c                               |    1 
 drivers/usb/serial/qcserial.c                             |    2 
 drivers/vhost/vhost.c                                     |    5 
 fs/afs/server.c                                           |    7 
 fs/btrfs/extent-tree.c                                    |    3 
 fs/btrfs/ioctl.c                                          |    9 
 fs/btrfs/send.c                                           |    2 
 fs/ceph/caps.c                                            |    9 
 fs/compat_ioctl.c                                         |    3 
 fs/dcache.c                                               |    7 
 fs/ext4/mballoc.c                                         |   26 +-
 fs/ext4/move_extent.c                                     |    6 
 fs/ext4/resize.c                                          |   37 +-
 fs/f2fs/recovery.c                                        |   23 +
 fs/jfs/jfs_dmap.c                                         |   57 ++--
 fs/jfs/jfs_dtree.c                                        |    7 
 fs/jfs/jfs_imap.c                                         |    3 
 fs/jfs/jfs_mount.c                                        |    6 
 fs/nilfs2/file.c                                          |    8 
 fs/nilfs2/recovery.c                                      |    7 
 fs/nilfs2/segment.c                                       |    8 
 fs/pstore/ram.c                                           |    1 
 include/drm/drm_mipi_dsi.h                                |    2 
 include/linux/bpf.h                                       |    6 
 include/linux/device.h                                    |    3 
 include/linux/dmaengine.h                                 |    3 
 include/linux/hrtimer.h                                   |    4 
 include/linux/lsm_hooks.h                                 |    9 
 include/linux/pci_ids.h                                   |    1 
 include/linux/security.h                                  |    9 
 include/linux/spi/spi.h                                   |    1 
 include/linux/syscalls.h                                  |    1 
 include/linux/units.h                                     |   92 +++++++
 include/net/af_unix.h                                     |   20 +
 include/net/llc_pdu.h                                     |    6 
 include/uapi/linux/btrfs.h                                |    3 
 include/uapi/linux/netfilter/nf_tables.h                  |    2 
 kernel/audit.c                                            |   31 +-
 kernel/bpf/arraymap.c                                     |   12 
 kernel/bpf/hashtab.c                                      |    6 
 kernel/bpf/map_in_map.c                                   |    2 
 kernel/bpf/map_in_map.h                                   |    2 
 kernel/power/swap.c                                       |   38 +--
 kernel/sched/membarrier.c                                 |    6 
 kernel/time/hrtimer.c                                     |    3 
 kernel/time/tick-sched.c                                  |    5 
 kernel/trace/ring_buffer.c                                |    2 
 kernel/trace/trace_events_trigger.c                       |    6 
 kernel/trace/tracing_map.c                                |    7 
 mm/page-writeback.c                                       |    2 
 net/8021q/vlan_netlink.c                                  |    4 
 net/ipv4/af_inet.c                                        |    6 
 net/ipv4/ip_output.c                                      |   12 
 net/ipv4/tcp.c                                            |    1 
 net/ipv6/addrconf_core.c                                  |   21 +
 net/iucv/af_iucv.c                                        |   14 -
 net/llc/af_llc.c                                          |   26 +-
 net/llc/llc_core.c                                        |    7 
 net/netfilter/nf_log.c                                    |    7 
 net/netfilter/nf_tables_api.c                             |   20 -
 net/netfilter/nft_byteorder.c                             |    5 
 net/netfilter/nft_compat.c                                |   11 
 net/netlink/af_netlink.c                                  |    2 
 net/nfc/nci/core.c                                        |    4 
 net/rds/af_rds.c                                          |    2 
 net/rxrpc/conn_event.c                                    |    8 
 net/rxrpc/conn_service.c                                  |    3 
 net/sched/sch_cbs.c                                       |   30 +-
 net/smc/smc_diag.c                                        |    2 
 net/sunrpc/xprtmultipath.c                                |   17 +
 net/tipc/bearer.c                                         |    6 
 net/unix/af_unix.c                                        |   14 -
 net/unix/diag.c                                           |    2 
 net/wireless/scan.c                                       |    4 
 security/security.c                                       |   17 +
 security/selinux/hooks.c                                  |   28 ++
 security/smack/smack_lsm.c                                |    1 
 security/tomoyo/tomoyo.c                                  |    1 
 sound/pci/hda/hda_intel.c                                 |    2 
 sound/pci/hda/patch_conexant.c                            |   18 +
 sound/soc/codecs/rt5645.c                                 |    1 
 tools/lib/subcmd/help.c                                   |   18 +
 211 files changed, 1781 insertions(+), 998 deletions(-)

Akinobu Mita (1):
include/linux/units.h: add helpers for kelvin to/from Celsius conversion

Al Viro (1):
fast_dput(): handle underflows gracefully

Aleksander Mazur (1):
x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6

Alex Henrie (1):
HID: apple: Add support for the 2021 Magic Keyboard

Alex Lyakas (1):
md: Whenassemble the array, consult the superblock of the freshest device

Alexander Stein (2):
ARM: dts: imx7s: Fix lcdif compatible
ARM: dts: imx7s: Fix nand-controller #size-cells

Alexey Khoroshilov (1):

      ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()

Alfred Piccioni (1):
lsm: new security_file_ioctl_compat() hook

Andrzej Hajda (1):
driver core: add device probe log helper

Andy Shevchenko (1):
driver core: Annotate dev_err_probe() with __must_check

Anna Schumaker (1):
SUNRPC: Fix a suspicious RCU usage warning

Anton Ivanov (1):
um: Fix naming clash between UML and scheduler

Baokun Li (4):
ext4: unify the type of flexbg_size to unsigned int
ext4: remove unnecessary check from alloc_flex_gd()
ext4: avoid online resizing failures due to oversized flex bg
ext4: fix double-free of blocks due to wrong extents moved_len

Benjamin Berg (3):
wifi: cfg80211: free beacon_ies when overridden from hidden BSS
um: Don't use vfprintf() for os_info()
HID: apple: Add 2021 magic keyboard FN key mapping

Boris Burkov (1):
btrfs: forbid creating subvol qgroups

Breno Leitao (2):
net: sysfs: Fix /sys/class/net/<iface> path
net: sysfs: Fix /sys/class/net/<iface> path for statistics

Carlos Llamas (1):
binder: signal epoll threads of self-work

Chao Yu (1):
f2fs: fix to check return value of f2fs_reserve_new_block()

Chris Riches (1):
audit: Send netlink ACK before setting connection in auditd_set

Christophe JAILLET (1):
ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()

Cristian Ciocaltea (1):
ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument

Dan Carpenter (3):
drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking drm/bridge: nxp-ptn3460: simplify some error checking
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()

Daniel Basilio (1):
nfp: use correct macro for LengthSelect in BAR config

Daniel Lezcano (3):
units: Add Watt units
units: change from 'L' to 'UL'
units: add the HZ macros

Daniel Vacek (1):
IB/ipoib: Fix mcast list locking

Dave Airlie (1):
nouveau/vmm: don't set addr on the fail path to avoid warning

David Howells (1):
rxrpc: Fix response to PING RESPONSE ACKs to a dead call

David Schiller (1):
staging: iio: ad5933: fix type mismatch regression

David Sterba (2):
btrfs: don't warn if discard range is not aligned to sector
btrfs: send: return EOPNOTSUPP on unknown flags

Denis Efremov (1):

      net/mlx5: Use kfree(ft->g) in arfs_create_groups()

Dmitry Antipov (1):
PNP: ACPI: fix fortify warning

Doug Berger (1):
irqchip/irq-brcmstb-l2: Add write memory barrier before exit

Douglas Anderson (1):
drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time

Edward Adam Davis (3):
jfs: fix uaf in jfs_evict_inode
jfs: fix array-index-out-of-bounds in diNewExt
wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update

Eric Dumazet (5):
llc: make llc_ui_sendmsg() more robust against bonding changes
llc: call sock_orphan() at release time
af_unix: fix lockdep positive in sk_diag_dump_icons()
inet: read sk->sk_family once in inet_recv_error()
ppp_async: limit MRU to 64K

Fabio Estevam (7):
ARM: dts: imx25/27-eukrea: Fix RTC node name
ARM: dts: imx: Use flash@0,0 pattern
ARM: dts: imx27: Fix sram node
ARM: dts: imx1: Fix sram node
ARM: dts: imx27-apf27dev: Fix LED name
ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
ARM: dts: imx23/28: Fix the DMA controller node name

Fedor Pchelkin (2):
drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
nfc: nci: free rx_data_reassembly skb on NCI device cleanup

Felix Kuehling (1):
drm/amdgpu: Let KFD sync with VM fences

Florian Westphal (2):
netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
netfilter: nf_tables: reject QUEUE/DROP verdict parameters

Frank Li (1):
dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV

Frederic Weisbecker (1):
hrtimer: Report offline hrtimer enqueue

Ghanshyam Agrawal (1):
media: stk1160: Fixed high volume of stk1160_dbg messages

Greg Kroah-Hartman (2):
Revert "driver core: Annotate dev_err_probe() with __must_check" Linux 4.19.307

Guenter Roeck (1):
MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler

Guilherme G. Piccoli (1):
PCI: Only override AMD USB controller if required

Hannes Reinecke (2):
scsi: libfc: Don't schedule abort twice
scsi: libfc: Fix up timeout error in fc_fcp_rec_error()

Hans de Goede (1):
Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID

Hardik Gajjar (1):
usb: hub: Replace hardcoded quirk value with BIT() macro

Heiko Carstens (2):
s390/ptrace: handle setting of fpc register correctly
KVM: s390: fix setting of fpc register

Heiner Kallweit (1):
leds: trigger: panic: Don't register panic notifier if creating the trigger failed

Helge Deller (2):
parisc/firmware: Fix F-extend for PDC addresses
ipv6: Ensure natural alignment of const ipv6 loopback and router addresses

Herbert Xu (2):
crypto: api - Disallow identical driver names
hwrng: core - Fix page fault dead lock on mmap-ed hwrng

Hongchen Zhang (1):
PM: hibernate: Enforce ordering during image compression/decompression

Hou Tao (1):
bpf: Add map and need_defer parameters to .map_fd_put_ptr()

Hugo Villeneuve (4):
serial: sc16is7xx: set safe default SPI clock frequency
serial: sc16is7xx: add check for unsupported SPI modes during probe
serial: max310x: set default value when reading clock ready bit
serial: max310x: improve crystal stable clock detection

Ian Rogers (1):
libsubcmd: Fix memory leak in uniq()

Ido Schimmel (1):
PCI: Add no PM reset quirk for NVIDIA Spectrum devices

Ivan Vecera (1):
i40e: Fix waiting for queues of all VSIs to be disabled

Jack Wang (1):
RDMA/IPoIB: Fix error code return in ipoib_mcast_join

JackBB Wu (1):
USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e

Jan Beulich (1):
xen-netback: properly sync TX responses

Jason Gerecke (1):
HID: wacom: Do not register input devices until after hid_hw_start

Jedrzej Jagielski (2):
ixgbe: Refactor returning internal error codes
ixgbe: Refactor overtemp event handling

Johan Jonker (1):
ARM: dts: rockchip: fix rk3036 hdmi ports node

Julian Wiedmann (2):
net/af_iucv: clean up a try_then_request_module()
Documentation: net-sysfs: describe missing statistics

Junxiao Bi (1):
Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"

Justin Tee (1):
scsi: lpfc: Fix possible file string name overflow when updating firmware

Konrad Dybcio (1):
pmdomain: core: Move the unused cleanup to a _sync initcall

Kuan-Wei Chiu (2):
clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()

Kuniyuki Iwashima (1):

      llc: Drop support for ETH_P_TR_802_2.

Kunwu Chan (1):
powerpc/mm: Fix null-pointer dereference in pgtable_cache_add

Lee Duncan (1):

      scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"

Leonard Dallmayr (1):

      USB: serial: cp210x: add ID for IMST iM871A-USB

Lin Ma (1):
vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING

Linus Torvalds (1):
sched/membarrier: reduce the ability to hammer on sys_membarrier

Loic Prylli (1):
hwmon: (aspeed-pwm-tacho) mutex for tach reading

Maciej S. Szmigiero (1):

      x86/CPU/AMD: Fix disabling XSAVES on AMD family 0x17 due to erratum

Manas Ghandat (2):
jfs: fix slab-out-of-bounds Read in dtSearch
jfs: fix array-index-out-of-bounds in dbAdjTree

Mario Limonciello (1):
gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04

Masami Hiramatsu (Google) (1):
tracing/trigger: Fix to return error if failed to alloc snapshot

Matthew Wilcox (Oracle) (1):
block: Remove special-casing of compound pages

Mauro Carvalho Chehab (1):
drivers: core: fix kernel-doc markup for dev_err_probe()

Michael Ellerman (2):
powerpc: Fix build error due to is_valid_bugaddr() powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()

Michael Tretter (1):
media: rockchip: rga: fix swizzling for RGB formats

Michał Mirosław (1):
driver code: print symbolic error code

Ming Lei (1):
blk-mq: fix IO hang from sbitmap wakeup race

Minsuk Kang (1):
wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()

Nathan Chancellor (2):
powerpc: Use always instead of always-y in for crtsavres.o
um: net: Fix return type of uml_net_start_xmit()

Naveen N Rao (1):
powerpc/lib: Validate size for vector operations

Oleg Nesterov (2):
afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*() rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()

Oleksij Rempel (1):
spi: introduce SPI_MODE_X_MASK macro

Oliver Neukum (1):
USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT

Osama Muhammad (2):
FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
UBSAN: array-index-out-of-bounds in dtSplitRoot

Pablo Neira Ayuso (3):
netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
netfilter: nft_compat: reject unused compat flag
netfilter: nft_compat: restrict match/target protocol to u16

Peter Robinson (1):
mfd: ti_am335x_tscadc: Fix TI SoC dependencies

Petr Pavlu (1):
tracing: Ensure visibility when inserting an element into tracing_map

Pierre-Louis Bossart (2):
PCI: add INTEL_HDA_ARL to pci_ids.h
ALSA: hda: Intel: add HDA_ARL PCI ID support

Piotr Skajewski (1):
ixgbe: Remove non-inclusive language

Prarit Bhargava (1):
ACPI: extlog: fix NULL pointer dereference check

Prathu Baronia (1):
vhost: use kzalloc() instead of kmalloc() followed by memset()

Puliang Lu (1):
USB: serial: option: add Fibocom FM101-GL variant

Qu Wenruo (1):
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args

Richard Palethorpe (1):
x86/entry/ia32: Ensure s32 is sign extended to s64

Rob Clark (1):
drm/msm/dpu: Ratelimit framedone timeout msgs

Ryusuke Konishi (3):
nilfs2: fix data corruption in dsync block recovery for small block sizes
nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
nilfs2: fix potential bug in end_buffer_async_write

Salvatore Dipietro (1):
tcp: Add memory barrier to tcp_push()

Sharath Srinivasan (1):
net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv

Shenwei Wang (1):
net: fec: fix the unhandled context fault from smmu

Shigeru Yoshida (1):
tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()

Srinivasan Shanmugam (2):
drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()' drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'

Steve Wahl (1):
x86/mm/ident_map: Use gbpages only where full GB page should be mapped.

Su Hui (3):
wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
media: ddbridge: fix an error code problem in ddb_probe
scsi: isci: Fix an error code problem in isci_io_request_build()

Suraj Jitindar Singh (1):
ext4: allow for the last group to be marked as trimmed

Takashi Sakamoto (1):
firewire: core: correct documentation of fw_csr_string() kernel API

Tatsunosuke Tobita (1):
HID: wacom: generic: Avoid reporting a serial of '0' to userspace

Thomas Bourgoin (1):
crypto: stm32/crc32 - fix parsing list of devices

Tim Chen (1):
tick/sched: Preserve number of idle sleeps across CPU hotplug events

Tom Rix (1):
net: remove unneeded break

Tomi Valkeinen (3):
drm/drm_file: fix use of uninitialized variable drm/framebuffer: Fix use of uninitialized variable drm/mipi-dsi: Fix detach call without attach

Tony Lindgren (1):
phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP

Uwe Kleine-König (1):
spi: ppc4xx: Drop write-only variable

Ville Syrjälä (1):
drm: Don't unref the same fb many times by mistake due to deadlock handling

Vincent Donnefort (1):
ring-buffer: Clean ring_buffer_poll_wait() error return

Vinicius Costa Gomes (1):
net/sched: cbs: Fix not adding cbs instance to list

Weichen Chen (1):
pstore/ram: Fix crash when setting number of cpus to an odd number

Wen Gu (1):
net/smc: fix illegal rmb_desc access in SMC-D connection dump

Wenhua Lin (1):
gpio: eic-sprd: Clear interrupt after set the interrupt type

Xi Ruoyao (1):
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan

Xiaolei Wang (1):
rpmsg: virtio: Free driver_override when rpmsg_remove()

Xiubo Li (1):
ceph: fix deadlock or deadcode of misusing dget()

Ye Bin (1):
ext4: fix inconsistent between segment fstrim and full fstrim

Yuluo Qiu (1):
ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop

Zach O'Keefe (1):
mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again

Zenm Chen (1):
wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices

Zhang Rui (2):
hwmon: (coretemp) Fix out-of-bounds memory access
hwmon: (coretemp) Fix bogus core_id to attr name mapping

Zhengchao Shao (3):
netlink: fix potential sleeping issue in mqueue_flush_file
bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
bonding: remove print in bond_verify_device_path

Zhipeng Lu (4):
net/mlx5e: fix a double-free in arfs_create_groups
fjes: fix memleaks in fjes_hw_setup
net: ipv4: fix a memleak in ip_setup_cork
atm: idt77252: fix a memleak in open_card_ubr0

Zhu Yanjun (1):
virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings

bo liu (1):
ALSA: hda/conexant: Add quirk for SWS JS201D

free5lot (1):
HID: apple: Swap the Fn and Left Control keys on Apple keyboards

qizhong cheng (1):
PCI: mediatek: Clear interrupt status before dispatching handler

yuan linyu (1):
usb: f_mass_storage: forbid async queue when shutdown happen

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-class-net-queues +11 -11
index 978b76358661..40d5aab8452d 100644
@@ -1,4 +1,4 @@
-What:		/sys/class/<iface>/queues/rx-<queue>/rps_cpus
+What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
 Date:		March 2010
 KernelVersion:	2.6.35
 Contact:	[email protected]
@@ -8,7 +8,7 @@ Description:
 		network device queue. Possible values depend on the number
 		of available CPU(s) in the system.
 
-What:		/sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt
+What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
 Date:		April 2010
 KernelVersion:	2.6.35
 Contact:	[email protected]
@@ -16,7 +16,7 @@ Description:
 		Number of Receive Packet Steering flows being currently
 		processed by this particular network device receive queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/tx_timeout
+What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -24,7 +24,7 @@ Description:
 		Indicates the number of transmit timeout events seen by this
 		network interface transmit queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/tx_maxrate
+What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
 Date:		March 2015
 KernelVersion:	4.1
 Contact:	[email protected]
@@ -32,7 +32,7 @@ Description:
 		A Mbps max-rate set for the queue, a value of zero means disabled,
 		default is disabled.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/xps_cpus
+What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
 Date:		November 2010
 KernelVersion:	2.6.38
 Contact:	[email protected]
@@ -42,7 +42,7 @@ Description:
 		network device transmit queue. Possible vaules depend on the
 		number of available CPU(s) in the system.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/xps_rxqs
+What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs
 Date:		June 2018
 KernelVersion:	4.18.0
 Contact:	[email protected]
@@ -53,7 +53,7 @@ Description:
 		number of available receive queue(s) in the network device.
 		Default is disabled.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -62,7 +62,7 @@ Description:
 		of this particular network device transmit queue.
 		Default value is 1000.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -70,7 +70,7 @@ Description:
 		Indicates the number of bytes (objects) in flight on this
 		network device transmit queue.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -79,7 +79,7 @@ Description:
 		on this network device transmit queue. This value is clamped
 		to be within the bounds defined by limit_max and limit_min.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
@@ -88,7 +88,7 @@ Description:
 		queued on this network device transmit queue. See
 		include/linux/dynamic_queue_limits.h for the default value.
 
-What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
+What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
 Date:		November 2011
 KernelVersion:	3.3
 Contact:	[email protected]
Documentation/ABI/testing/sysfs-class-net-statistics +38 -22

189 lines not on this page · raw message

Documentation/sound/soc/dapm.rst +1 -1
index 8e44107933ab..c3154ce6e1b2 100644
@@ -234,7 +234,7 @@ corresponding soft power control. In this case it is necessary to create
 a virtual widget - a widget with no control bits e.g.
 ::
 
-  SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_DAPM_NOPM, 0, 0, NULL, 0),
+  SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
 
 This can be used to merge to signal paths together in software.
 
Makefile +1 -1
index 6c5cb44190dd..4c1ea41b5621 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 306
+SUBLEVEL = 307
 EXTRAVERSION =
 NAME = "People's Front"
 
arch/arm/boot/dts/imx1-ads.dts +1 -1
index 119b19ba53b6..26af4e05abec 100644
@@ -71,7 +71,7 @@
 	pinctrl-0 = <&pinctrl_weim>;
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <4>;
arch/arm/boot/dts/imx1-apf9328.dts +1 -1
index ee4b1b106b1a..f5015f5e808a 100644
@@ -51,7 +51,7 @@
 	pinctrl-0 = <&pinctrl_weim>;
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <2>;
arch/arm/boot/dts/imx1.dtsi +4 -1
index 2b6e77029de4..8c4c7464b133 100644
@@ -268,9 +268,12 @@
 			status = "disabled";
 		};
 
-		esram: esram@300000 {
+		esram: sram@300000 {
 			compatible = "mmio-sram";
 			reg = <0x00300000 0x20000>;
+			ranges = <0 0x00300000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 	};
 };
arch/arm/boot/dts/imx23-sansa.dts +4 -8
index fa22fd9b2412..a0bbc39e644a 100644
@@ -175,10 +175,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "i2c-gpio";
-		gpios = <
-			&gpio1 24 0		/* SDA */
-			&gpio1 22 0		/* SCL */
-		>;
+		sda-gpios = <&gpio1 24 0>;
+		scl-gpios = <&gpio1 22 0>;
 		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
 	};
 
@@ -186,10 +184,8 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 		compatible = "i2c-gpio";
-		gpios = <
-			&gpio0 31 0		/* SDA */
-			&gpio0 30 0		/* SCL */
-		>;
+		sda-gpios = <&gpio0 31 0>;
+		scl-gpios = <&gpio0 30 0>;
 		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
 
 		touch: touch@20 {
arch/arm/boot/dts/imx23.dtsi +1 -1
index aaaa987d8eff..223c5171edab 100644
@@ -406,7 +406,7 @@
 				status = "disabled";
 			};
 
-			dma_apbx: dma-apbx@80024000 {
+			dma_apbx: dma-controller@80024000 {
 				compatible = "fsl,imx23-dma-apbx";
 				reg = <0x80024000 0x2000>;
 				interrupts = <7 5 9 26
arch/arm/boot/dts/imx25-eukrea-cpuimx25.dtsi +1 -1
index e4d7da267532..5858ec8a409a 100644
@@ -35,7 +35,7 @@
 	pinctrl-0 = <&pinctrl_i2c1>;
 	status = "okay";
 
-	pcf8563@51 {
+	rtc@51 {
 		compatible = "nxp,pcf8563";
 		reg = <0x51>;
 	};
arch/arm/boot/dts/imx27-apf27dev.dts +1 -1
index 5f84b598e0d0..167f21434fbf 100644
@@ -53,7 +53,7 @@
 		pinctrl-names = "default";
 		pinctrl-0 = <&pinctrl_gpio_leds>;
 
-		user {
+		led-user {
 			label = "Heartbeat";
 			gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
 			linux,default-trigger = "heartbeat";
arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi +2 -2
index c85f9d01768a..bb1d0576732d 100644
@@ -39,7 +39,7 @@
 	pinctrl-0 = <&pinctrl_i2c1>;
 	status = "okay";
 
-	pcf8563@51 {
+	rtc@51 {
 		compatible = "nxp,pcf8563";
 		reg = <0x51>;
 	};
@@ -96,7 +96,7 @@
 &weim {
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
 		compatible = "cfi-flash";
arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi +1 -1
index 0935e1400e5d..e4ed62397d62 100644
@@ -328,7 +328,7 @@
 &weim {
 	status = "okay";
 
-	nor: nor@0,0 {
+	nor: flash@0,0 {
 		compatible = "cfi-flash";
 		reg = <0 0x00000000 0x02000000>;
 		bank-width = <2>;
arch/arm/boot/dts/imx27.dtsi +3 -0
index 39e75b997bdc..ecfb07c8e185 100644
@@ -588,6 +588,9 @@
 		iram: iram@ffff4c00 {
 			compatible = "mmio-sram";
 			reg = <0xffff4c00 0xb400>;
+			ranges = <0 0xffff4c00 0xb400>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 	};
 };
arch/arm/boot/dts/imx28.dtsi +1 -1
index 5107fdc482ea..84f7c86373b5 100644
@@ -984,7 +984,7 @@
 				status = "disabled";
 			};
 
-			dma_apbx: dma-apbx@80024000 {
+			dma_apbx: dma-controller@80024000 {
 				compatible = "fsl,imx28-dma-apbx";
 				reg = <0x80024000 0x2000>;
 				interrupts = <78 79 66 0
arch/arm/boot/dts/imx7s.dtsi +2 -2
index 36c00fe29f4f..c62cf9fea481 100644
@@ -701,7 +701,7 @@
 			};
 
 			lcdif: lcdif@30730000 {
-				compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
+				compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif";
 				reg = <0x30730000 0x10000>;
 				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
@@ -1094,7 +1094,7 @@
 		gpmi: gpmi-nand@33002000{
 			compatible = "fsl,imx7d-gpmi-nand";
 			#address-cells = <1>;
-			#size-cells = <1>;
+			#size-cells = <0>;
 			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
 			reg-names = "gpmi-nand", "bch";
 			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/rk3036.dtsi +11 -3
index db612271371b..c5144f06c3e7 100644
@@ -336,12 +336,20 @@
 		pinctrl-0 = <&hdmi_ctl>;
 		status = "disabled";
 
-		hdmi_in: port {
+		ports {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			hdmi_in_vop: endpoint@0 {
+
+			hdmi_in: port@0 {
 				reg = <0>;
-				remote-endpoint = <&vop_out_hdmi>;
+
+				hdmi_in_vop: endpoint {
+					remote-endpoint = <&vop_out_hdmi>;
+				};
+			};
+
+			hdmi_out: port@1 {
+				reg = <1>;
 			};
 		};
 	};
arch/mips/include/asm/checksum.h +2 -1
index e8161e4dfde7..4680bac894f6 100644
@@ -276,7 +276,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
 	"	.set	pop"
 	: "=&r" (sum), "=&r" (tmp)
 	: "r" (saddr), "r" (daddr),
-	  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum));
+	  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)
+	: "memory");
 
 	return csum_fold(sum);
 }
arch/mips/kernel/elf.c +6 -0
index 731325a61a78..d7d0a4872389 100644
@@ -15,6 +15,7 @@
 
 #include <asm/cpu-features.h>
 #include <asm/cpu-info.h>
+#include <asm/fpu.h>
 
 /* Whether to accept legacy-NaN and 2008-NaN user binaries.  */
 bool mips_use_nan_legacy;
@@ -311,6 +312,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)
 	struct cpuinfo_mips *c = &boot_cpu_data;
 	struct task_struct *t = current;
 
+	/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case
+	 * we are preempted before the lose_fpu(0) in start_thread.
+	 */
+	lose_fpu(0);
+
 	t->thread.fpu.fcr31 = c->fpu_csr31;
 	switch (state->nan_2008) {
 	case 0:
arch/parisc/kernel/firmware.c +2 -2
index 906b7c882587..82f264621845 100644
@@ -127,10 +127,10 @@ static unsigned long f_extend(unsigned long address)
 #ifdef CONFIG_64BIT
 	if(unlikely(parisc_narrow_firmware)) {
 		if((address & 0xff000000) == 0xf0000000)
-			return 0xf0f0f0f000000000UL | (u32)address;
+			return (0xfffffff0UL << 32) | (u32)address;
 
 		if((address & 0xf0000000) == 0xf0000000)
-			return 0xffffffff00000000UL | (u32)address;
+			return (0xffffffffUL << 32) | (u32)address;
 	}
 #endif
 	return address;
arch/powerpc/include/asm/mmu.h +4 -0
index 2b396de45e9e..20cdf744522b 100644
@@ -330,5 +330,9 @@ static inline void mmu_early_init_devtree(void) { }
 #include <asm/nohash/mmu.h>
 #endif
 
+#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
+#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
+#endif
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_MMU_H_ */
arch/powerpc/include/asm/mmzone.h +0 -3
index 91c69ff53a8a..50c2198c2c76 100644
@@ -42,9 +42,6 @@ u64 memory_hotplug_max(void);
 #else
 #define memory_hotplug_max() memblock_end_of_DRAM()
 #endif /* CONFIG_NEED_MULTIPLE_NODES */
-#ifdef CONFIG_FA_DUMP
-#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
-#endif
 
 #endif /* __KERNEL__ */
 #endif /* _ASM_MMZONE_H_ */
arch/powerpc/kernel/traps.c +2 -0
index 63c751ce130a..67a00131ec42 100644
@@ -1341,10 +1341,12 @@ static int emulate_instruction(struct pt_regs *regs)
 	return -EINVAL;
 }
 
+#ifdef CONFIG_GENERIC_BUG
 int is_valid_bugaddr(unsigned long addr)
 {
 	return is_kernel_addr(addr);
 }
+#endif
 
 #ifdef CONFIG_MATH_EMULATION
 static int emulate_math(struct pt_regs *regs)
arch/powerpc/lib/Makefile +2 -2
index 6f1e57182876..f0aa6fc8c6b2 100644
@@ -21,8 +21,8 @@ obj-$(CONFIG_PPC32)	+= div64.o copy_32.o crtsavres.o strlen_32.o
 # 64-bit linker creates .sfpr on demand for final link (vmlinux),
 # so it is only needed for modules, and only for older linkers which
 # do not support --save-restore-funcs
-ifeq ($(call ld-ifversion, -lt, 225000000, y),y)
-always-$(CONFIG_PPC64)	+= crtsavres.o
+ifeq ($(call ld-ifversion, -lt, 225000000, y)$(CONFIG_PPC64),yy)
+always	+= crtsavres.o
 endif
 
 obj-$(CONFIG_PPC_BOOK3S_64) += copyuser_power7.o copypage_power7.o \
arch/powerpc/lib/sstep.c +10 -0
index 30c434abe861..3da6290e3ccc 100644
@@ -473,6 +473,8 @@ static int do_fp_load(struct instruction_op *op, unsigned long ea,
 	} u;
 
 	nb = GETSIZE(op->type);
+	if (nb > sizeof(u))
+		return -EINVAL;
 	if (!address_ok(regs, ea, nb))
 		return -EFAULT;
 	rn = op->reg;
@@ -523,6 +525,8 @@ static int do_fp_store(struct instruction_op *op, unsigned long ea,
 	} u;
 
 	nb = GETSIZE(op->type);
+	if (nb > sizeof(u))
+		return -EINVAL;
 	if (!address_ok(regs, ea, nb))
 		return -EFAULT;
 	rn = op->reg;
@@ -567,6 +571,9 @@ static nokprobe_inline int do_vec_load(int rn, unsigned long ea,
 		u8 b[sizeof(__vector128)];
 	} u = {};
 
+	if (size > sizeof(u))
+		return -EINVAL;
+
 	if (!address_ok(regs, ea & ~0xfUL, 16))
 		return -EFAULT;
 	/* align to multiple of size */
@@ -594,6 +601,9 @@ static nokprobe_inline int do_vec_store(int rn, unsigned long ea,
 		u8 b[sizeof(__vector128)];
 	} u;
 
+	if (size > sizeof(u))
+		return -EINVAL;
+
 	if (!address_ok(regs, ea & ~0xfUL, 16))
 		return -EFAULT;
 	/* align to multiple of size */
arch/powerpc/mm/init-common.c +3 -2
index 2b656e67f2ea..927703af49be 100644
@@ -65,7 +65,7 @@ void pgtable_cache_add(unsigned shift, void (*ctor)(void *))
 	 * as to leave enough 0 bits in the address to contain it. */
 	unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1,
 				     HUGEPD_SHIFT_MASK + 1);
-	struct kmem_cache *new;
+	struct kmem_cache *new = NULL;
 
 	/* It would be nice if this was a BUILD_BUG_ON(), but at the
 	 * moment, gcc doesn't seem to recognize is_power_of_2 as a
@@ -78,7 +78,8 @@ void pgtable_cache_add(unsigned shift, void (*ctor)(void *))
 
 	align = max_t(unsigned long, align, minalign);
 	name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift);
-	new = kmem_cache_create(name, table_size, align, 0, ctor);
+	if (name)
+		new = kmem_cache_create(name, table_size, align, 0, ctor);
 	if (!new)
 		panic("Could not allocate pgtable cache for order %d", shift);
 
arch/s390/kernel/ptrace.c +3 -3
index c36289a3ad50..0495a1906a38 100644
@@ -414,6 +414,7 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
 		/*
 		 * floating point control reg. is in the thread structure
 		 */
+		save_fpu_regs();
 		if ((unsigned int) data != 0 ||
 		    test_fp_ctl(data >> (BITS_PER_LONG - 32)))
 			return -EINVAL;
@@ -774,6 +775,7 @@ static int __poke_user_compat(struct task_struct *child,
 		/*
 		 * floating point control reg. is in the thread structure
 		 */
+		save_fpu_regs();
 		if (test_fp_ctl(tmp))
 			return -EINVAL;
 		child->thread.fpu.fpc = data;
@@ -1002,9 +1004,7 @@ static int s390_fpregs_set(struct task_struct *target,
 	int rc = 0;
 	freg_t fprs[__NUM_FPRS];
 
-	if (target == current)
-		save_fpu_regs();
-
+	save_fpu_regs();
 	if (MACHINE_HAS_VX)
 		convert_vx_to_fp(fprs, target->thread.fpu.vxrs);
 	else
arch/s390/kvm/kvm-s390.c +0 -5
index 92041d442d2e..bc700cb9fc53 100644
@@ -2995,10 +2995,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
 
 	vcpu_load(vcpu);
 
-	if (test_fp_ctl(fpu->fpc)) {
-		ret = -EINVAL;
-		goto out;
-	}
 	vcpu->run->s.regs.fpc = fpu->fpc;
 	if (MACHINE_HAS_VX)
 		convert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs,
@@ -3006,7 +3002,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
 	else
 		memcpy(vcpu->run->s.regs.fprs, &fpu->fprs, sizeof(fpu->fprs));
 
-out:
 	vcpu_put(vcpu);
 	return ret;
 }
arch/um/drivers/net_kern.c +1 -1
index 3ef1b48e064a..0216e3254c90 100644
@@ -206,7 +206,7 @@ static int uml_net_close(struct net_device *dev)
 	return 0;
 }
 
-static int uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
+static netdev_tx_t uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct uml_net_private *lp = netdev_priv(dev);
 	unsigned long flags;
arch/um/include/shared/kern_util.h +1 -1
index 35ab97e4bb9b..f2da8347d5f5 100644
@@ -49,7 +49,7 @@ extern void do_uml_exitcalls(void);
  * Are we disallowed to sleep? Used to choose between GFP_KERNEL and
  * GFP_ATOMIC.
  */
-extern int __cant_sleep(void);
+extern int __uml_cant_sleep(void);
 extern int get_current_pid(void);
 extern int copy_from_user_proc(void *to, void *from, int size);
 extern int cpu(void);
arch/um/kernel/process.c +1 -1
index 691b83b10649..c9d09d04d19d 100644
@@ -210,7 +210,7 @@ void arch_cpu_idle(void)
 	local_irq_enable();
 }
 
-int __cant_sleep(void) {
+int __uml_cant_sleep(void) {
 	return in_atomic() || irqs_disabled() || in_interrupt();
 	/* Is in_interrupt() really needed? */
 }
arch/um/os-Linux/helper.c +3 -3
index 3f02d4232812..53d450e4a53a 100644
@@ -45,7 +45,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
 	unsigned long stack, sp;
 	int pid, fds[2], ret, n;
 
-	stack = alloc_stack(0, __cant_sleep());
+	stack = alloc_stack(0, __uml_cant_sleep());
 	if (stack == 0)
 		return -ENOMEM;
 
@@ -69,7 +69,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
 	data.pre_data = pre_data;
 	data.argv = argv;
 	data.fd = fds[1];
-	data.buf = __cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
+	data.buf = __uml_cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
 					uml_kmalloc(PATH_MAX, UM_GFP_KERNEL);
 	pid = clone(helper_child, (void *) sp, CLONE_VM, &data);
 	if (pid < 0) {
@@ -116,7 +116,7 @@ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags,
 	unsigned long stack, sp;
 	int pid, status, err;
 
-	stack = alloc_stack(0, __cant_sleep());
+	stack = alloc_stack(0, __uml_cant_sleep());
 	if (stack == 0)
 		return -ENOMEM;
 
arch/um/os-Linux/util.c +17 -2
index 8cc8b2617a67..0436cc9537e0 100644
@@ -166,23 +166,38 @@ __uml_setup("quiet", quiet_cmd_param,
 "quiet\n"
 "    Turns off information messages during boot.\n\n");
 
+/*
+ * The os_info/os_warn functions will be called by helper threads. These
+ * have a very limited stack size and using the libc formatting functions
+ * may overflow the stack.
+ * So pull in the kernel vscnprintf and use that instead with a fixed
+ * on-stack buffer.
+ */
+int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
+
 void os_info(const char *fmt, ...)
 {
+	char buf[256];
 	va_list list;
+	int len;
 
 	if (quiet_info)
 		return;
 
 	va_start(list, fmt);
-	vfprintf(stderr, fmt, list);
+	len = vscnprintf(buf, sizeof(buf), fmt, list);
+	fwrite(buf, len, 1, stderr);
 	va_end(list);
 }
 
 void os_warn(const char *fmt, ...)
 {
+	char buf[256];
 	va_list list;
+	int len;
 
 	va_start(list, fmt);
-	vfprintf(stderr, fmt, list);
+	len = vscnprintf(buf, sizeof(buf), fmt, list);
+	fwrite(buf, len, 1, stderr);
 	va_end(list);
 }
arch/x86/Kconfig.cpu +1 -1
index 638411f22267..fd0a2d4d60d5 100644
@@ -372,7 +372,7 @@ config X86_CMOV
 config X86_MINIMUM_CPU_FAMILY
 	int
 	default "64" if X86_64
-	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
+	default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
 	default "5" if X86_32 && X86_CMPXCHG64
 	default "4"
 
arch/x86/include/asm/syscall_wrapper.h +21 -4
index 90eb70df0b18..523f21593cd9 100644
@@ -12,12 +12,29 @@
 		,,regs->di,,regs->si,,regs->dx				\
 		,,regs->r10,,regs->r8,,regs->r9)			\
 
+
+/* SYSCALL_PT_ARGS is Adapted from s390x */
+#define SYSCALL_PT_ARG6(m, t1, t2, t3, t4, t5, t6)			\
+	SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp))
+#define SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5)				\
+	SYSCALL_PT_ARG4(m, t1, t2, t3, t4),  m(t5, (regs->di))
+#define SYSCALL_PT_ARG4(m, t1, t2, t3, t4)				\
+	SYSCALL_PT_ARG3(m, t1, t2, t3),  m(t4, (regs->si))
+#define SYSCALL_PT_ARG3(m, t1, t2, t3)					\
+	SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx))
+#define SYSCALL_PT_ARG2(m, t1, t2)					\
+	SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx))
+#define SYSCALL_PT_ARG1(m, t1) m(t1, (regs->bx))
+#define SYSCALL_PT_ARGS(x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__)
+
+#define __SC_COMPAT_CAST(t, a)						\
+	(__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U)))	\
+	(unsigned int)a
+
 /* Mapping of registers to parameters for syscalls on i386 */
 #define SC_IA32_REGS_TO_ARGS(x, ...)					\
-	__MAP(x,__SC_ARGS						\
-	      ,,(unsigned int)regs->bx,,(unsigned int)regs->cx		\
-	      ,,(unsigned int)regs->dx,,(unsigned int)regs->si		\
-	      ,,(unsigned int)regs->di,,(unsigned int)regs->bp)
+	SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST,				\
+			__MAP(x, __SC_TYPE, __VA_ARGS__))		\
 
 #ifdef CONFIG_IA32_EMULATION
 /*
arch/x86/kernel/cpu/amd.c +11 -9
index 84667781c41d..5b75a4ff6802 100644
@@ -271,15 +271,6 @@ static void init_amd_k6(struct cpuinfo_x86 *c)
 		return;
 	}
 #endif
-	/*
-	 * Work around Erratum 1386.  The XSAVES instruction malfunctions in
-	 * certain circumstances on Zen1/2 uarch, and not all parts have had
-	 * updated microcode at the time of writing (March 2023).
-	 *
-	 * Affected parts all have no supervisor XSAVE states, meaning that
-	 * the XSAVEC instruction (which works fine) is equivalent.
-	 */
-	clear_cpu_cap(c, X86_FEATURE_XSAVES);
 }
 
 static void init_amd_k7(struct cpuinfo_x86 *c)
@@ -979,6 +970,17 @@ static void init_amd_zn(struct cpuinfo_x86 *c)
 		if (c->x86 == 0x19 && !cpu_has(c, X86_FEATURE_BTC_NO))
 			set_cpu_cap(c, X86_FEATURE_BTC_NO);
 	}
+
+	/*
+	 * Work around Erratum 1386.  The XSAVES instruction malfunctions in
+	 * certain circumstances on Zen1/2 uarch, and not all parts have had
+	 * updated microcode at the time of writing (March 2023).
+	 *
+	 * Affected parts all have no supervisor XSAVE states, meaning that
+	 * the XSAVEC instruction (which works fine) is equivalent.
+	 */
+	if (c->x86 == 0x17)
+		clear_cpu_cap(c, X86_FEATURE_XSAVES);
 }
 
 static bool cpu_has_zenbleed_microcode(void)
arch/x86/mm/ident_map.c +18 -5
index 968d7005f4a7..f50cc210a981 100644
@@ -26,18 +26,31 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,
 	for (; addr < end; addr = next) {
 		pud_t *pud = pud_page + pud_index(addr);
 		pmd_t *pmd;
+		bool use_gbpage;
 
 		next = (addr & PUD_MASK) + PUD_SIZE;
 		if (next > end)
 			next = end;
 
-		if (info->direct_gbpages) {
-			pud_t pudval;
+		/* if this is already a gbpage, this portion is already mapped */
+		if (pud_large(*pud))
+			continue;
+
+		/* Is using a gbpage allowed? */
+		use_gbpage = info->direct_gbpages;
 
-			if (pud_present(*pud))
-				continue;
+		/* Don't use gbpage if it maps more than the requested region. */
+		/* at the begining: */
+		use_gbpage &= ((addr & ~PUD_MASK) == 0);
+		/* ... or at the end: */
+		use_gbpage &= ((next & ~PUD_MASK) == 0);
+
+		/* Never overwrite existing mappings */
+		use_gbpage &= !pud_present(*pud);
+
+		if (use_gbpage) {
+			pud_t pudval;
 
-			addr &= PUD_MASK;
 			pudval = __pud((addr - info->offset) | info->page_flag);
 			set_pud(pud, pudval);
 			continue;
block/bio.c +2 -3
index 7858b2d23916..476a88e11715 100644
@@ -1592,8 +1592,7 @@ void bio_set_pages_dirty(struct bio *bio)
 	int i;
 
 	bio_for_each_segment_all(bvec, bio, i) {
-		if (!PageCompound(bvec->bv_page))
-			set_page_dirty_lock(bvec->bv_page);
+		set_page_dirty_lock(bvec->bv_page);
 	}
 }
 EXPORT_SYMBOL_GPL(bio_set_pages_dirty);
@@ -1652,7 +1651,7 @@ void bio_check_pages_dirty(struct bio *bio)
 	int i;
 
 	bio_for_each_segment_all(bvec, bio, i) {
-		if (!PageDirty(bvec->bv_page) && !PageCompound(bvec->bv_page))
+		if (!PageDirty(bvec->bv_page))
 			goto defer;
 	}
 
block/blk-mq.c +16 -0
index ae70b4809bec..0cb559d63998 100644
@@ -1064,6 +1064,22 @@ static bool blk_mq_mark_tag_wait(struct blk_mq_hw_ctx *hctx,
 	wait->flags &= ~WQ_FLAG_EXCLUSIVE;
 	__add_wait_queue(wq, wait);
 
+	/*
+	 * Add one explicit barrier since blk_mq_get_driver_tag() may
+	 * not imply barrier in case of failure.
+	 *
+	 * Order adding us to wait queue and allocating driver tag.
+	 *
+	 * The pair is the one implied in sbitmap_queue_wake_up() which
+	 * orders clearing sbitmap tag bits and waitqueue_active() in
+	 * __sbitmap_queue_wake_up(), since waitqueue_active() is lockless
+	 *
+	 * Otherwise, re-order of adding wait queue and getting driver tag
+	 * may cause __sbitmap_queue_wake_up() to wake up nothing because
+	 * the waitqueue_active() may not observe us in wait queue.
+	 */
+	smp_mb();
+
 	/*
 	 * It's possible that a tag was freed in the window between the
 	 * allocation failure and adding the hardware queue to the wait
crypto/algapi.c +1 -0
index 346557a3fc0b..a1ceca922841 100644
@@ -231,6 +231,7 @@ static struct crypto_larval *__crypto_register_alg(struct crypto_alg *alg)
 		}
 
 		if (!strcmp(q->cra_driver_name, alg->cra_name) ||
+		    !strcmp(q->cra_driver_name, alg->cra_driver_name) ||
 		    !strcmp(q->cra_name, alg->cra_driver_name))
 			goto err;
 	}
drivers/acpi/acpi_extlog.c +3 -2
index e05309bc41cc..e148b0a28ec9 100644
@@ -317,9 +317,10 @@ static void __exit extlog_exit(void)
 {
 	edac_set_report_status(old_edac_report_status);
 	mce_unregister_decode_chain(&extlog_mce_dec);
-	((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
-	if (extlog_l1_addr)
+	if (extlog_l1_addr) {
+		((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
 		acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
+	}
 	if (elog_addr)
 		acpi_os_unmap_iomem(elog_addr, elog_size);
 	release_mem_region(elog_base, elog_size);
drivers/acpi/acpi_video.c +9 -0
index c22297cce288..a3f8368fe231 100644
@@ -581,6 +581,15 @@ static const struct dmi_system_id video_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"),
 		},
 	},
+	{
+	 .callback = video_set_report_key_events,
+	 .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS),
+	 .ident = "COLORFUL X15 AT 23",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "COLORFUL"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "X15 AT 23"),
+		},
+	},
 	/*
 	 * Some machines change the brightness themselves when a brightness
 	 * hotkey gets pressed, despite us telling them not to. In this case
drivers/android/binder.c +10 -0
index 4f06fd570d2c..2232576cbe2b 100644
@@ -846,6 +846,16 @@ binder_enqueue_thread_work_ilocked(struct binder_thread *thread,
 {
 	WARN_ON(!list_empty(&thread->waiting_thread_node));
 	binder_enqueue_work_ilocked(work, &thread->todo);
+
+	/* (e)poll-based threads require an explicit wakeup signal when
+	 * queuing their own work; they rely on these events to consume
+	 * messages without I/O block. Without it, threads risk waiting
+	 * indefinitely without handling the work.
+	 */
+	if (thread->looper & BINDER_LOOPER_STATE_POLL &&
+	    thread->pid == current->pid && !thread->process_todo)
+		wake_up_interruptible_sync(&thread->wait);
+
 	thread->process_todo = true;
 }
 
drivers/atm/idt77252.c +2 -0
index 3380322df98e..36629633ae52 100644
@@ -2936,6 +2936,8 @@ open_card_ubr0(struct idt77252_dev *card)
 	vc->scq = alloc_scq(card, vc->class);
 	if (!vc->scq) {
 		printk("%s: can't get SCQ.\n", card->name);
+		kfree(card->vcs[0]);
+		card->vcs[0] = NULL;
 		return -ENOMEM;
 	}
 
drivers/base/core.c +44 -0

50 lines not on this page · raw message

drivers/base/power/domain.c +1 -1
index b32d3cf4f670..8d71a6844787 100644
@@ -847,7 +847,7 @@ static int __init genpd_power_off_unused(void)
 
 	return 0;
 }
-late_initcall(genpd_power_off_unused);
+late_initcall_sync(genpd_power_off_unused);
 
 #if defined(CONFIG_PM_SLEEP) || defined(CONFIG_PM_GENERIC_DOMAINS_OF)
 
drivers/char/hw_random/core.c +21 -13
index c9757fa2d308..d932dd95b04e 100644
@@ -24,10 +24,13 @@
 #include <linux/random.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 
 #define RNG_MODULE_NAME		"hw_random"
 
+#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES)
+
 static struct hwrng *current_rng;
 /* the current rng has been explicitly chosen by user via sysfs */
 static int cur_rng_set_by_user;
@@ -59,7 +62,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 
 static size_t rng_buffer_size(void)
 {
-	return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES;
+	return RNG_BUFFER_SIZE;
 }
 
 static void add_early_randomness(struct hwrng *rng)
@@ -202,6 +205,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			    size_t size, loff_t *offp)
 {
+	u8 buffer[RNG_BUFFER_SIZE];
 	ssize_t ret = 0;
 	int err = 0;
 	int bytes_read, len;
@@ -229,34 +233,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			if (bytes_read < 0) {
 				err = bytes_read;
 				goto out_unlock_reading;
+			} else if (bytes_read == 0 &&
+				   (filp->f_flags & O_NONBLOCK)) {
+				err = -EAGAIN;
+				goto out_unlock_reading;
 			}
+
 			data_avail = bytes_read;
 		}
 
-		if (!data_avail) {
-			if (filp->f_flags & O_NONBLOCK) {
-				err = -EAGAIN;
-				goto out_unlock_reading;
-			}
-		} else {
-			len = data_avail;
+		len = data_avail;
+		if (len) {
 			if (len > size)
 				len = size;
 
 			data_avail -= len;
 
-			if (copy_to_user(buf + ret, rng_buffer + data_avail,
-								len)) {
+			memcpy(buffer, rng_buffer + data_avail, len);
+		}
+		mutex_unlock(&reading_mutex);
+		put_rng(rng);
+
+		if (len) {
+			if (copy_to_user(buf + ret, buffer, len)) {
 				err = -EFAULT;
-				goto out_unlock_reading;
+				goto out;
 			}
 
 			size -= len;
 			ret += len;
 		}
 
-		mutex_unlock(&reading_mutex);
-		put_rng(rng);
 
 		if (need_resched())
 			schedule_timeout_interruptible(1);
@@ -267,6 +274,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 		}
 	}
 out:
+	memzero_explicit(buffer, sizeof(buffer));
 	return ret ? : err;
 
 out_unlock_reading:
drivers/clk/hisilicon/clk-hi3620.c +3 -1
index 77072c7778b9..93b4d8933797 100644
@@ -481,8 +481,10 @@ static void __init hi3620_mmc_clk_init(struct device_node *node)
 		return;
 
 	clk_data->clks = kcalloc(num, sizeof(*clk_data->clks), GFP_KERNEL);
-	if (!clk_data->clks)
+	if (!clk_data->clks) {
+		kfree(clk_data);
 		return;
+	}
 
 	for (i = 0; i < num; i++) {
 		struct hisi_mmc_clock *mmc_clk = &hi3620_mmc_clks[i];
drivers/clk/mmp/clk-of-pxa168.c +3 -0
index f110c02e83cb..9674c6c06dca 100644
@@ -258,18 +258,21 @@ static void __init pxa168_clk_init(struct device_node *np)
 	pxa_unit->mpmu_base = of_iomap(np, 0);
 	if (!pxa_unit->mpmu_base) {
 		pr_err("failed to map mpmu registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
 	pxa_unit->apmu_base = of_iomap(np, 1);
 	if (!pxa_unit->apmu_base) {
 		pr_err("failed to map apmu registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
 	pxa_unit->apbc_base = of_iomap(np, 2);
 	if (!pxa_unit->apbc_base) {
 		pr_err("failed to map apbc registers\n");
+		kfree(pxa_unit);
 		return;
 	}
 
drivers/crypto/stm32/stm32_crc32.c +1 -1
index de645bf84980..04adc84d677c 100644
@@ -98,7 +98,7 @@ static struct stm32_crc *stm32_crc_get_next_crc(void)
 	struct stm32_crc *crc;
 
 	spin_lock_bh(&crc_list.lock);
-	crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list);
+	crc = list_first_entry_or_null(&crc_list.dev_list, struct stm32_crc, list);
 	if (crc)
 		list_move_tail(&crc->list, &crc_list.dev_list);
 	spin_unlock_bh(&crc_list.lock);
drivers/firewire/core-device.c +3 -4
index a293b39fd4ce..25c5de074525 100644
@@ -113,10 +113,9 @@ static int textual_leaf_to_string(const u32 *block, char *buf, size_t size)
  * @buf:	where to put the string
  * @size:	size of @buf, in bytes
  *
- * The string is taken from a minimal ASCII text descriptor leaf after
- * the immediate entry with @key.  The string is zero-terminated.
- * An overlong string is silently truncated such that it and the
- * zero byte fit into @size.
+ * The string is taken from a minimal ASCII text descriptor leaf just after the entry with the
+ * @key. The string is zero-terminated. An overlong string is silently truncated such that it
+ * and the zero byte fit into @size.
  *
  * Returns strlen(buf) or a negative error code.
  */
drivers/gpio/gpio-eic-sprd.c +28 -4
index 4f1af323ec03..cfa36c0de5b6 100644
@@ -318,20 +318,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IEV, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_DBNC_IC, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_DBNC_IEV, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_DBNC_IC, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -343,20 +350,27 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 		switch (flow_type) {
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_LATCH_INTCLR, 1);
 			break;
 		case IRQ_TYPE_EDGE_RISING:
 		case IRQ_TYPE_EDGE_FALLING:
 		case IRQ_TYPE_EDGE_BOTH:
 			state = sprd_eic_get(chip, offset);
-			if (state)
+			if (state) {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 0);
-			else
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			} else {
 				sprd_eic_update(chip, offset,
 						SPRD_EIC_LATCH_INTPOL, 1);
+				sprd_eic_update(chip, offset,
+						SPRD_EIC_LATCH_INTCLR, 1);
+			}
 			break;
 		default:
 			return -ENOTSUPP;
@@ -370,29 +384,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_ASYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
@@ -405,29 +424,34 @@ static int sprd_eic_irq_set_type(struct irq_data *data, unsigned int flow_type)
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_FALLING:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_EDGE_BOTH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_edge_irq);
 			break;
 		case IRQ_TYPE_LEVEL_HIGH:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 1);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		case IRQ_TYPE_LEVEL_LOW:
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTBOTH, 0);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTMODE, 1);
 			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTPOL, 0);
+			sprd_eic_update(chip, offset, SPRD_EIC_SYNC_INTCLR, 1);
 			irq_set_handler_locked(data, handle_level_irq);
 			break;
 		default:
drivers/gpio/gpiolib-acpi.c +14 -0
index 6afe833031e3..33b28430e618 100644
@@ -1427,6 +1427,20 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] = {
 			.ignore_wake = "INT33FF:01@0",
 		},
 	},
+	{
+		/*
+		 * Spurious wakeups from TP_ATTN# pin
+		 * Found in BIOS 0.35
+		 * https://gitlab.freedesktop.org/drm/amd/-/issues/3073
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "GPD"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "G1619-04"),
+		},
+		.driver_data = &(struct acpi_gpiolib_dmi_quirk) {
+			.ignore_wake = "PNP0C50:00@8",
+		},
+	},
 	{} /* Terminating entry */
 };
 
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +1 -1
index 574c1181ae9a..75e4f1abb4c9 100644
@@ -88,7 +88,7 @@ struct amdgpu_amdkfd_fence *to_amdgpu_amdkfd_fence(struct dma_fence *f)
 		return NULL;
 
 	fence = container_of(f, struct amdgpu_amdkfd_fence, base);
-	if (fence && f->ops == &amdkfd_fence_ops)
+	if (f->ops == &amdkfd_fence_ops)
 		return fence;
 
 	return NULL;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -0
index c84f475d4f13..ae28f72c73ef 100644
@@ -823,6 +823,7 @@ bool amdgpu_device_need_post(struct amdgpu_device *adev)
 				return true;
 
 			fw_ver = *((uint32_t *)adev->pm.fw->data + 69);
+			release_firmware(adev->pm.fw);
 			if (fw_ver < 0x00160e00)
 				return true;
 		}
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +2 -1
index 2d6f5ec77a68..5eb8f93c7022 100644
@@ -219,7 +219,8 @@ int amdgpu_sync_resv(struct amdgpu_device *adev,
 		 */
 		fence_owner = amdgpu_sync_get_owner(f);
 		if (fence_owner == AMDGPU_FENCE_OWNER_KFD &&
-		    owner != AMDGPU_FENCE_OWNER_UNDEFINED)
+		    owner != AMDGPU_FENCE_OWNER_UNDEFINED &&
+	    owner != AMDGPU_FENCE_OWNER_KFD)
 			continue;
 
 		if (amdgpu_sync_same_dev(adev, f)) {
drivers/gpu/drm/bridge/nxp-ptn3460.c +3 -3
index a3e817abace1..5eb7e4992f39 100644
@@ -64,13 +64,13 @@ static int ptn3460_read_bytes(struct ptn3460_bridge *ptn_bridge, char addr,
 	int ret;
 
 	ret = i2c_master_send(ptn_bridge->client, &addr, 1);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
 
 	ret = i2c_master_recv(ptn_bridge->client, buf, len);
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to recv i2c data, ret=%d\n", ret);
 		return ret;
 	}
@@ -88,7 +88,7 @@ static int ptn3460_write_byte(struct ptn3460_bridge *ptn_bridge, char addr,
 	buf[1] = val;
 
 	ret = i2c_master_send(ptn_bridge->client, buf, ARRAY_SIZE(buf));
-	if (ret <= 0) {
+	if (ret < 0) {
 		DRM_ERROR("Failed to send i2c command, ret=%d\n", ret);
 		return ret;
 	}
drivers/gpu/drm/drm_file.c +1 -1
index 334addaca9c5..06cdae6f598c 100644
@@ -299,7 +299,7 @@ int drm_open(struct inode *inode, struct file *filp)
 {
 	struct drm_device *dev;
 	struct drm_minor *minor;
-	int retcode;
+	int retcode = 0;
 	int need_setup = 0;
 
 	minor = drm_minor_acquire(iminor(inode));
drivers/gpu/drm/drm_framebuffer.c +1 -1
index b64a6ffc0aed..9fc4af4b10a6 100644
@@ -538,7 +538,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
 	struct drm_framebuffer *fb;
 	unsigned flags;
 	int num_clips;
-	int ret;
+	int ret = 0;
 
 	if (!drm_core_check_feature(dev, DRIVER_MODESET))
 		return -EINVAL;
drivers/gpu/drm/drm_mipi_dsi.c +15 -2
index 81923442b42d..2bd4e768b129 100644
@@ -305,7 +305,8 @@ static int mipi_dsi_remove_device_fn(struct device *dev, void *priv)
 {
 	struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev);
 
-	mipi_dsi_detach(dsi);
+	if (dsi->attached)
+		mipi_dsi_detach(dsi);
 	mipi_dsi_device_unregister(dsi);
 
 	return 0;
@@ -328,11 +329,18 @@ EXPORT_SYMBOL(mipi_dsi_host_unregister);
 int mipi_dsi_attach(struct mipi_dsi_device *dsi)
 {
 	const struct mipi_dsi_host_ops *ops = dsi->host->ops;
+	int ret;
 
 	if (!ops || !ops->attach)
 		return -ENOSYS;
 
-	return ops->attach(dsi->host, dsi);
+	ret = ops->attach(dsi->host, dsi);
+	if (ret)
+		return ret;
+
+	dsi->attached = true;
+
+	return 0;
 }
 EXPORT_SYMBOL(mipi_dsi_attach);
 
@@ -344,9 +352,14 @@ int mipi_dsi_detach(struct mipi_dsi_device *dsi)
 {
 	const struct mipi_dsi_host_ops *ops = dsi->host->ops;
 
+	if (WARN_ON(!dsi->attached))
+		return -EINVAL;
+
 	if (!ops || !ops->detach)
 		return -ENOSYS;
 
+	dsi->attached = false;
+
 	return ops->detach(dsi->host, dsi);
 }
 EXPORT_SYMBOL(mipi_dsi_detach);
drivers/gpu/drm/drm_plane.c +1 -0
index 425e76e39b3b..35df2fac5c29 100644
@@ -1183,6 +1183,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
 out:
 	if (fb)
 		drm_framebuffer_put(fb);
+	fb = NULL;
 	if (plane->old_fb)
 		drm_framebuffer_put(plane->old_fb);
 	plane->old_fb = NULL;
drivers/gpu/drm/exynos/exynos_drm_drv.c +11 -0
index b599f74692e5..db09e2055c86 100644
@@ -410,6 +410,7 @@ static int exynos_drm_bind(struct device *dev)
 	drm_release_iommu_mapping(drm);
 err_free_private:
 	kfree(private);
+	dev_set_drvdata(dev, NULL);
 err_free_drm:
 	drm_dev_put(drm);
 
@@ -424,6 +425,7 @@ static void exynos_drm_unbind(struct device *dev)
 
 	exynos_drm_fbdev_fini(drm);
 	drm_kms_helper_poll_fini(drm);
+	drm_atomic_helper_shutdown(drm);
 
 	component_unbind_all(drm->dev, drm);
 	drm_mode_config_cleanup(drm);
@@ -461,9 +463,18 @@ static int exynos_drm_platform_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static void exynos_drm_platform_shutdown(struct platform_device *pdev)
+{
+	struct drm_device *drm = platform_get_drvdata(pdev);
+
+	if (drm)
+		drm_atomic_helper_shutdown(drm);
+}
+
 static struct platform_driver exynos_drm_platform_driver = {
 	.probe	= exynos_drm_platform_probe,
 	.remove	= exynos_drm_platform_remove,
+	.shutdown = exynos_drm_platform_shutdown,
 	.driver	= {
 		.name	= "exynos-drm",
 		.pm	= &exynos_drm_pm_ops,
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
index d71188b982cb..4a93d87c2096 100644
@@ -1322,7 +1322,7 @@ static int __maybe_unused gsc_runtime_resume(struct device *dev)
 	for (i = 0; i < ctx->num_clocks; i++) {
 		ret = clk_prepare_enable(ctx->clocks[i]);
 		if (ret) {
-			while (--i > 0)
+			while (--i >= 0)
 				clk_disable_unprepare(ctx->clocks[i]);
 			return ret;
 		}
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +4 -1
index 19e2753ffe07..a411cfe76998 100644
@@ -53,6 +53,9 @@
 		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
 		##__VA_ARGS__)
 
+#define DPU_ERROR_ENC_RATELIMITED(e, fmt, ...) DPU_ERROR_RATELIMITED("enc%d " fmt,\
+		(e) ? (e)->base.base.id : -1, ##__VA_ARGS__)
+
 /*
  * Two to anticipate panels that can do cmd/vid dynamic switching
  * plan is to create all possible physical encoder types, and switch between
@@ -2326,7 +2329,7 @@ static void dpu_encoder_frame_done_timeout(struct timer_list *t)
 		return;
 	}
 
-	DPU_ERROR_ENC(dpu_enc, "frame done timeout\n");
+	DPU_ERROR_ENC_RATELIMITED(dpu_enc, "frame done timeout\n");
 
 	event = DPU_ENCODER_FRAME_EVENT_ERROR;
 	trace_dpu_enc_frame_done_timeout(DRMID(drm_enc), event);
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +1 -0
index 66d466628e2b..56ae888e18fc 100644
@@ -61,6 +61,7 @@
 	} while (0)
 
 #define DPU_ERROR(fmt, ...) pr_err("[dpu error]" fmt, ##__VA_ARGS__)
+#define DPU_ERROR_RATELIMITED(fmt, ...) pr_err_ratelimited("[dpu error]" fmt, ##__VA_ARGS__)
 
 /**
  * ktime_compare_safe - compare two ktime structures
drivers/gpu/drm/nouveau/nouveau_vmm.c +3 -0
index 2032c3e4f6e5..fe8b88c6e2f9 100644
@@ -107,6 +107,9 @@ nouveau_vma_new(struct nouveau_bo *nvbo, struct nouveau_vmm *vmm,
 	} else {
 		ret = nvif_vmm_get(&vmm->vmm, PTES, false, mem->mem.page, 0,
 				   mem->mem.size, &tmp);
+		if (ret)
+			goto done;
+
 		vma->addr = tmp.addr;
 	}
 
drivers/hid/hid-apple.c +60 -3

110 lines not on this page · raw message

drivers/hid/hid-ids.h +1 -0
index 93faf083e550..3267e2da30e6 100644
@@ -176,6 +176,7 @@
 #define USB_DEVICE_ID_APPLE_IRCONTROL3	0x8241
 #define USB_DEVICE_ID_APPLE_IRCONTROL4	0x8242
 #define USB_DEVICE_ID_APPLE_IRCONTROL5	0x8243
+#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021   0x029c
 
 #define USB_VENDOR_ID_ASUS		0x0486
 #define USB_DEVICE_ID_ASUS_T91MT	0x0185
drivers/hid/hid-quirks.c +1 -0
index 2e1b95f73c64..d2ca1fc3d37e 100644
@@ -301,6 +301,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) },
 #endif
 #if IS_ENABLED(CONFIG_HID_APPLEIR)
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) },
drivers/hid/wacom_sys.c +43 -20

99 lines not on this page · raw message

drivers/hid/wacom_wac.c +8 -1
index 9b2a5a6917fc..46dd5a93a375 100644
@@ -2461,7 +2461,14 @@ static void wacom_wac_pen_report(struct hid_device *hdev,
 				wacom_wac->hid_data.tipswitch);
 		input_report_key(input, wacom_wac->tool[0], sense);
 		if (wacom_wac->serial[0]) {
-			input_event(input, EV_MSC, MSC_SERIAL, wacom_wac->serial[0]);
+			/*
+			 * xf86-input-wacom does not accept a serial number
+			 * of '0'. Report the low 32 bits if possible, but
+			 * if they are zero, report the upper ones instead.
+			 */
+			__u32 serial_lo = wacom_wac->serial[0] & 0xFFFFFFFFu;
+			__u32 serial_hi = wacom_wac->serial[0] >> 32;
+			input_event(input, EV_MSC, MSC_SERIAL, (int)(serial_lo ? serial_lo : serial_hi));
 			input_report_abs(input, ABS_MISC, sense ? id : 0);
 		}
 
drivers/hwmon/aspeed-pwm-tacho.c +7 -0
index a43fa730a513..4097ae62e9a4 100644
@@ -197,6 +197,8 @@ struct aspeed_pwm_tacho_data {
 	u8 fan_tach_ch_source[16];
 	struct aspeed_cooling_device *cdev[8];
 	const struct attribute_group *groups[3];
+	/* protects access to shared ASPEED_PTCR_RESULT */
+	struct mutex tach_lock;
 };
 
 enum type { TYPEM, TYPEN, TYPEO };
@@ -531,6 +533,8 @@ static int aspeed_get_fan_tach_ch_rpm(struct aspeed_pwm_tacho_data *priv,
 	u8 fan_tach_ch_source, type, mode, both;
 	int ret;
 
+	mutex_lock(&priv->tach_lock);
+
 	regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0);
 	regmap_write(priv->regmap, ASPEED_PTCR_TRIGGER, 0x1 << fan_tach_ch);
 
@@ -548,6 +552,8 @@ static int aspeed_get_fan_tach_ch_rpm(struct aspeed_pwm_tacho_data *priv,
 		ASPEED_RPM_STATUS_SLEEP_USEC,
 		usec);
 
+	mutex_unlock(&priv->tach_lock);
+
 	/* return -ETIMEDOUT if we didn't get an answer. */
 	if (ret)
 		return ret;
@@ -938,6 +944,7 @@ static int aspeed_pwm_tacho_probe(struct platform_device *pdev)
 	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
+	mutex_init(&priv->tach_lock);
 	priv->regmap = devm_regmap_init(dev, NULL, (__force void *)regs,
 			&aspeed_pwm_tacho_regmap_config);
 	if (IS_ERR(priv->regmap))
drivers/hwmon/coretemp.c +21 -19
index 33371f7a4c0f..d06e88477588 100644
@@ -393,7 +393,7 @@ static int get_tjmax(struct cpuinfo_x86 *c, u32 id, struct device *dev)
 }
 
 static int create_core_attrs(struct temp_data *tdata, struct device *dev,
-			     int attr_no)
+			     int index)
 {
 	int i;
 	static ssize_t (*const rd_ptr[TOTAL_ATTRS]) (struct device *dev,
@@ -405,13 +405,20 @@ static int create_core_attrs(struct temp_data *tdata, struct device *dev,
 	};
 
 	for (i = 0; i < tdata->attr_size; i++) {
+		/*
+		 * We map the attr number to core id of the CPU
+		 * The attr number is always core id + 2
+		 * The Pkgtemp will always show up as temp1_*, if available
+		 */
+		int attr_no = tdata->is_pkg_data ? 1 : tdata->cpu_core_id + 2;
+
 		snprintf(tdata->attr_name[i], CORETEMP_NAME_LENGTH,
 			 "temp%d_%s", attr_no, suffixes[i]);
 		sysfs_attr_init(&tdata->sd_attrs[i].dev_attr.attr);
 		tdata->sd_attrs[i].dev_attr.attr.name = tdata->attr_name[i];
 		tdata->sd_attrs[i].dev_attr.attr.mode = S_IRUGO;
 		tdata->sd_attrs[i].dev_attr.show = rd_ptr[i];
-		tdata->sd_attrs[i].index = attr_no;
+		tdata->sd_attrs[i].index = index;
 		tdata->attrs[i] = &tdata->sd_attrs[i].dev_attr.attr;
 	}
 	tdata->attr_group.attrs = tdata->attrs;
@@ -469,27 +476,22 @@ static int create_core_data(struct platform_device *pdev, unsigned int cpu,
 	struct platform_data *pdata = platform_get_drvdata(pdev);
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
 	u32 eax, edx;
-	int err, index, attr_no;
+	int err, index;
 
 	/*
-	 * Find attr number for sysfs:
-	 * We map the attr number to core id of the CPU
-	 * The attr number is always core id + 2
-	 * The Pkgtemp will always show up as temp1_*, if available
+	 * Get the index of tdata in pdata->core_data[]
+	 * tdata for package: pdata->core_data[1]
+	 * tdata for core: pdata->core_data[2] .. pdata->core_data[NUM_REAL_CORES + 1]
 	 */
 	if (pkg_flag) {
-		attr_no = PKG_SYSFS_ATTR_NO;
+		index = PKG_SYSFS_ATTR_NO;
 	} else {
-		index = ida_alloc(&pdata->ida, GFP_KERNEL);
+		index = ida_alloc_max(&pdata->ida, NUM_REAL_CORES - 1, GFP_KERNEL);
 		if (index < 0)
 			return index;
-		pdata->cpu_map[index] = topology_core_id(cpu);
-		attr_no = index + BASE_SYSFS_ATTR_NO;
-	}
 
-	if (attr_no > MAX_CORE_DATA - 1) {
-		err = -ERANGE;
-		goto ida_free;
+		pdata->cpu_map[index] = topology_core_id(cpu);
+		index += BASE_SYSFS_ATTR_NO;
 	}
 
 	tdata = init_temp_data(cpu, pkg_flag);
@@ -521,20 +523,20 @@ static int create_core_data(struct platform_device *pdev, unsigned int cpu,
 		}
 	}
 
-	pdata->core_data[attr_no] = tdata;
+	pdata->core_data[index] = tdata;
 
 	/* Create sysfs interfaces */
-	err = create_core_attrs(tdata, pdata->hwmon_dev, attr_no);
+	err = create_core_attrs(tdata, pdata->hwmon_dev, index);
 	if (err)
 		goto exit_free;
 
 	return 0;
 exit_free:
-	pdata->core_data[attr_no] = NULL;
+	pdata->core_data[index] = NULL;
 	kfree(tdata);
 ida_free:
 	if (!pkg_flag)
-		ida_free(&pdata->ida, index);
+		ida_free(&pdata->ida, index - BASE_SYSFS_ATTR_NO);
 	return err;
 }
 
drivers/infiniband/ulp/ipoib/ipoib_multicast.c +2 -5
index b9e9562f5034..de82fb0cb1d5 100644
@@ -543,21 +543,18 @@ static int ipoib_mcast_join(struct net_device *dev, struct ipoib_mcast *mcast)
 			/* SM supports sendonly-fullmember, otherwise fallback to full-member */
 			rec.join_state = SENDONLY_FULLMEMBER_JOIN;
 	}
-	spin_unlock_irq(&priv->lock);
 
 	multicast = ib_sa_join_multicast(&ipoib_sa_client, priv->ca, priv->port,
-					 &rec, comp_mask, GFP_KERNEL,
+					 &rec, comp_mask, GFP_ATOMIC,
 					 ipoib_mcast_join_complete, mcast);
-	spin_lock_irq(&priv->lock);
 	if (IS_ERR(multicast)) {
 		ret = PTR_ERR(multicast);
 		ipoib_warn(priv, "ib_sa_join_multicast failed, status %d\n", ret);
 		/* Requeue this join task with a backoff delay */
 		__ipoib_mcast_schedule_join_thread(priv, mcast, 1);
 		clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
-		spin_unlock_irq(&priv->lock);
 		complete(&mcast->done);
-		spin_lock_irq(&priv->lock);
+		return ret;
 	}
 	return 0;
 }
drivers/input/keyboard/atkbd.c +8 -5
index facfdc8fb122..585bf7392539 100644
@@ -763,7 +763,6 @@ static int atkbd_probe(struct atkbd *atkbd)
 {
 	struct ps2dev *ps2dev = &atkbd->ps2dev;
 	unsigned char param[2];
-	bool skip_getid;
 
 /*
  * Some systems, where the bit-twiddling when testing the io-lines of the
@@ -777,6 +776,11 @@ static int atkbd_probe(struct atkbd *atkbd)
 				 "keyboard reset failed on %s\n",
 				 ps2dev->serio->phys);
 
+	if (atkbd_skip_getid(atkbd)) {
+		atkbd->id = 0xab83;
+		return 0;
+	}
+
 /*
  * Then we check the keyboard ID. We should get 0xab83 under normal conditions.
  * Some keyboards report different values, but the first byte is always 0xab or
@@ -785,18 +789,17 @@ static int atkbd_probe(struct atkbd *atkbd)
  */
 
 	param[0] = param[1] = 0xa5;	/* initialize with invalid values */
-	skip_getid = atkbd_skip_getid(atkbd);
-	if (skip_getid || ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
+	if (ps2_command(ps2dev, param, ATKBD_CMD_GETID)) {
 
 /*
- * If the get ID command was skipped or failed, we check if we can at least set
+ * If the get ID command failed, we check if we can at least set
  * the LEDs on the keyboard. This should work on every keyboard out there.
  * It also turns the LEDs off, which we want anyway.
  */
 		param[0] = 0;
 		if (ps2_command(ps2dev, param, ATKBD_CMD_SETLEDS))
 			return -1;
-		atkbd->id = skip_getid ? 0xab83 : 0xabba;
+		atkbd->id = 0xabba;
 		return 0;
 	}
 
drivers/irqchip/irq-brcmstb-l2.c +3 -0
index 3f1ae63233cb..18c46194dcd1 100644
@@ -121,6 +121,9 @@ static void brcmstb_l2_intc_irq_handle(struct irq_desc *desc)
 		generic_handle_irq(irq_linear_revmap(b->domain, irq));
 	} while (status);
 out:
+	/* Don't ack parent before all device writes are done */
+	wmb();
+
 	chained_irq_exit(chip, desc);
 }
 
drivers/leds/trigger/ledtrig-panic.c +4 -1
index d735526b9db4..2fc04418a87e 100644
@@ -67,10 +67,13 @@ static long led_panic_blink(int state)
 
 static int __init ledtrig_panic_init(void)
 {
+	led_trigger_register_simple("panic", &trigger);
+	if (!trigger)
+		return -ENOMEM;
+
 	atomic_notifier_chain_register(&panic_notifier_list,
 				       &led_trigger_panic_nb);
 
-	led_trigger_register_simple("panic", &trigger);
 	panic_blink = led_panic_blink;
 	return 0;
 }
drivers/md/md.c +44 -10

114 lines not on this page · raw message

drivers/md/raid5.c +0 -12
index b98abe927d06..e2fcc09a18cd 100644
@@ -44,7 +44,6 @@
  */
 
 #include <linux/blkdev.h>
-#include <linux/delay.h>
 #include <linux/kthread.h>
 #include <linux/raid/pq.h>
 #include <linux/async_tx.h>
@@ -6330,18 +6329,7 @@ static void raid5d(struct md_thread *thread)
 			spin_unlock_irq(&conf->device_lock);
 			md_check_recovery(mddev);
 			spin_lock_irq(&conf->device_lock);
-
-			/*
-			 * Waiting on MD_SB_CHANGE_PENDING below may deadlock
-			 * seeing md_check_recovery() is needed to clear
-			 * the flag when using mdmon.
-			 */
-			continue;
 		}
-
-		wait_event_lock_irq(mddev->sb_wait,
-			!test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags),
-			conf->device_lock);
 	}
 	pr_debug("%d stripes handled\n", handled);
 
drivers/media/pci/ddbridge/ddbridge-main.c +1 -1
index f4748cfd904b..7aa6c966ba0d 100644
@@ -247,7 +247,7 @@ static int ddb_probe(struct pci_dev *pdev,
 	ddb_unmap(dev);
 	pci_set_drvdata(pdev, NULL);
 	pci_disable_device(pdev);
-	return -1;
+	return stat;
 }
 
 /****************************************************************************/
drivers/media/platform/rockchip/rga/rga.c +3 -12
index 86a76f35a9a1..03bf575fd31a 100644
@@ -195,25 +195,16 @@ static int rga_setup_ctrls(struct rga_ctx *ctx)
 static struct rga_fmt formats[] = {
 	{
 		.fourcc = V4L2_PIX_FMT_ARGB32,
-		.color_swap = RGA_COLOR_RB_SWAP,
+		.color_swap = RGA_COLOR_ALPHA_SWAP,
 		.hw_format = RGA_COLOR_FMT_ABGR8888,
 		.depth = 32,
 		.uv_factor = 1,
 		.y_div = 1,
 		.x_div = 1,
 	},
-	{
-		.fourcc = V4L2_PIX_FMT_XRGB32,
-		.color_swap = RGA_COLOR_RB_SWAP,
-		.hw_format = RGA_COLOR_FMT_XBGR8888,
-		.depth = 32,
-		.uv_factor = 1,
-		.y_div = 1,
-		.x_div = 1,
-	},
 	{
 		.fourcc = V4L2_PIX_FMT_ABGR32,
-		.color_swap = RGA_COLOR_ALPHA_SWAP,
+		.color_swap = RGA_COLOR_RB_SWAP,
 		.hw_format = RGA_COLOR_FMT_ABGR8888,
 		.depth = 32,
 		.uv_factor = 1,
@@ -222,7 +213,7 @@ static struct rga_fmt formats[] = {
 	},
 	{
 		.fourcc = V4L2_PIX_FMT_XBGR32,
-		.color_swap = RGA_COLOR_ALPHA_SWAP,
+		.color_swap = RGA_COLOR_RB_SWAP,
 		.hw_format = RGA_COLOR_FMT_XBGR8888,
 		.depth = 32,
 		.uv_factor = 1,
drivers/media/usb/stk1160/stk1160-video.c +2 -3
index 2811f612820f..0e98b450ae01 100644
@@ -117,8 +117,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 
 	/*
 	 * TODO: These stk1160_dbg are very spammy!
-	 * We should 1) check why we are getting them
-	 * and 2) add ratelimit.
+	 * We should check why we are getting them.
 	 *
 	 * UPDATE: One of the reasons (the only one?) for getting these
 	 * is incorrect standard (mismatch between expected and configured).
@@ -161,7 +160,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int len)
 
 	/* Let the bug hunt begin! sanity checks! */
 	if (lencopy < 0) {
-		stk1160_dbg("copy skipped: negative lencopy\n");
+		printk_ratelimited(KERN_DEBUG "copy skipped: negative lencopy\n");
 		return;
 	}
 
drivers/mfd/Kconfig +1 -0
index dd938a5d0409..6b7526669875 100644
@@ -1247,6 +1247,7 @@ config MFD_DAVINCI_VOICECODEC
 
 config MFD_TI_AM335X_TSCADC
 	tristate "TI ADC / Touch Screen chip support"
+	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
 	select MFD_CORE
 	select REGMAP
 	select REGMAP_MMIO
drivers/net/bonding/bond_alb.c +2 -1
index e03f4883858a..5947c1305527 100644
@@ -984,7 +984,8 @@ static int alb_upper_dev_walk(struct net_device *upper, void *_data)
 	if (netif_is_macvlan(upper) && !strict_match) {
 		tags = bond_verify_device_path(bond->dev, upper, 0);
 		if (IS_ERR_OR_NULL(tags))
-			BUG();
+			return -ENOMEM;
+
 		alb_send_lp_vid(slave, upper->dev_addr,
 				tags[0].vlan_proto, tags[0].vlan_id);
 		kfree(tags);
drivers/net/ethernet/aquantia/atlantic/aq_nic.c +0 -1
index adac5df0d6b4..26ccaf173ba7 100644
@@ -823,7 +823,6 @@ int aq_nic_set_link_ksettings(struct aq_nic_s *self,
 		default:
 			err = -1;
 			goto err_exit;
-		break;
 		}
 		if (!(self->aq_nic_cfg.aq_hw_caps->link_speed_msk & rate)) {
 			err = -1;
drivers/net/ethernet/cisco/enic/enic_ethtool.c +0 -1
index f42f7a6e1559..abe01562729f 100644
@@ -454,7 +454,6 @@ static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd)
 		break;
 	default:
 		return -EINVAL;
-		break;
 	}
 
 	fsp->h_u.tcp_ip4_spec.ip4src = flow_get_u32_src(&n->keys);
drivers/net/ethernet/freescale/fec_main.c +2 -0
index e4162c2271e3..9c4c892bfc83 100644
@@ -1798,6 +1798,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
 
 		/* if any of the above changed restart the FEC */
 		if (status_change) {
+			netif_stop_queue(ndev);
 			napi_disable(&fep->napi);
 			netif_tx_lock_bh(ndev);
 			fec_restart(ndev);
@@ -1807,6 +1808,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
 		}
 	} else {
 		if (fep->link) {
+			netif_stop_queue(ndev);
 			napi_disable(&fep->napi);
 			netif_tx_lock_bh(ndev);
 			fec_stop(ndev);
drivers/net/ethernet/intel/i40e/i40e_main.c +1 -1
index 97cf144a4ff9..491e5c776306 100644
@@ -4966,7 +4966,7 @@ static int i40e_pf_wait_queues_disabled(struct i40e_pf *pf)
 {
 	int v, ret = 0;
 
-	for (v = 0; v < pf->hw.func_caps.num_vsis; v++) {
+	for (v = 0; v < pf->num_alloc_vsi; v++) {
 		if (pf->vsi[v]) {
 			ret = i40e_vsi_wait_queues_disabled(pf->vsi[v]);
 			if (ret)
drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c +18 -18
index eee277c1bedf..b1788ddffcb2 100644
@@ -123,14 +123,14 @@ static s32 ixgbe_init_phy_ops_82598(struct ixgbe_hw *hw)
 		if (ret_val)
 			return ret_val;
 		if (hw->phy.sfp_type == ixgbe_sfp_type_unknown)
-			return IXGBE_ERR_SFP_NOT_SUPPORTED;
+			return -EOPNOTSUPP;
 
 		/* Check to see if SFP+ module is supported */
 		ret_val = ixgbe_get_sfp_init_sequence_offsets(hw,
 							    &list_offset,
 							    &data_offset);
 		if (ret_val)
-			return IXGBE_ERR_SFP_NOT_SUPPORTED;
+			return -EOPNOTSUPP;
 		break;
 	default:
 		break;
@@ -213,7 +213,7 @@ static s32 ixgbe_get_link_capabilities_82598(struct ixgbe_hw *hw,
 		break;
 
 	default:
-		return IXGBE_ERR_LINK_SETUP;
+		return -EIO;
 	}
 
 	return 0;
@@ -283,7 +283,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 
 	/* Validate the water mark configuration */
 	if (!hw->fc.pause_time)
-		return IXGBE_ERR_INVALID_LINK_SETTINGS;
+		return -EINVAL;
 
 	/* Low water mark of zero causes XOFF floods */
 	for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
@@ -292,7 +292,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 			if (!hw->fc.low_water[i] ||
 			    hw->fc.low_water[i] >= hw->fc.high_water[i]) {
 				hw_dbg(hw, "Invalid water mark configuration\n");
-				return IXGBE_ERR_INVALID_LINK_SETTINGS;
+				return -EINVAL;
 			}
 		}
 	}
@@ -369,7 +369,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw)
 		break;
 	default:
 		hw_dbg(hw, "Flow control param set incorrectly\n");
-		return IXGBE_ERR_CONFIG;
+		return -EIO;
 	}
 
 	/* Set 802.3x based flow control settings. */
@@ -438,7 +438,7 @@ static s32 ixgbe_start_mac_link_82598(struct ixgbe_hw *hw,
 				msleep(100);
 			}
 			if (!(links_reg & IXGBE_LINKS_KX_AN_COMP)) {
-				status = IXGBE_ERR_AUTONEG_NOT_COMPLETE;
+				status = -EIO;
 				hw_dbg(hw, "Autonegotiation did not complete.\n");
 			}
 		}
@@ -478,7 +478,7 @@ static s32 ixgbe_validate_link_ready(struct ixgbe_hw *hw)
 
 	if (timeout == IXGBE_VALIDATE_LINK_READY_TIMEOUT) {
 		hw_dbg(hw, "Link was indicated but link is down\n");
-		return IXGBE_ERR_LINK_SETUP;
+		return -EIO;
 	}
 
 	return 0;
@@ -594,7 +594,7 @@ static s32 ixgbe_setup_mac_link_82598(struct ixgbe_hw *hw,
 	speed &= link_capabilities;
 
 	if (speed == IXGBE_LINK_SPEED_UNKNOWN)
-		return IXGBE_ERR_LINK_SETUP;
+		return -EINVAL;
 
 	/* Set KX4/KX support according to speed requested */
 	else if (link_mode == IXGBE_AUTOC_LMS_KX4_AN ||
@@ -701,9 +701,9 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw)
 
 		/* Init PHY and function pointers, perform SFP setup */
 		phy_status = hw->phy.ops.init(hw);
-		if (phy_status == IXGBE_ERR_SFP_NOT_SUPPORTED)
+		if (phy_status == -EOPNOTSUPP)
 			return phy_status;
-		if (phy_status == IXGBE_ERR_SFP_NOT_PRESENT)
+		if (phy_status == -ENOENT)
 			goto mac_reset_top;
 
 		hw->phy.ops.reset(hw);
@@ -727,7 +727,7 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw)
 		udelay(1);
 	}
 	if (ctrl & IXGBE_CTRL_RST) {
-		status = IXGBE_ERR_RESET_FAILED;
+		status = -EIO;
 		hw_dbg(hw, "Reset polling failed to complete.\n");
 	}
 
@@ -789,7 +789,7 @@ static s32 ixgbe_set_vmdq_82598(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
 	/* Make sure we are using a valid rar index range */
 	if (rar >= rar_entries) {
 		hw_dbg(hw, "RAR index %d is out of range.\n", rar);
-		return IXGBE_ERR_INVALID_ARGUMENT;
+		return -EINVAL;
 	}
 
 	rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar));
@@ -814,7 +814,7 @@ static s32 ixgbe_clear_vmdq_82598(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
 	/* Make sure we are using a valid rar index range */
 	if (rar >= rar_entries) {
 		hw_dbg(hw, "RAR index %d is out of range.\n", rar);
-		return IXGBE_ERR_INVALID_ARGUMENT;
+		return -EINVAL;
 	}
 
 	rar_high = IXGBE_READ_REG(hw, IXGBE_RAH(rar));
@@ -845,7 +845,7 @@ static s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, u32 vind,
 	u32 vftabyte;
 
 	if (vlan > 4095)
-		return IXGBE_ERR_PARAM;
+		return -EINVAL;
 
 	/* Determine 32-bit word position in array */
 	regindex = (vlan >> 5) & 0x7F;   /* upper seven bits */
@@ -964,7 +964,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 		gssr = IXGBE_GSSR_PHY0_SM;
 
 	if (hw->mac.ops.acquire_swfw_sync(hw, gssr) != 0)
-		return IXGBE_ERR_SWFW_SYNC;
+		return -EBUSY;
 
 	if (hw->phy.type == ixgbe_phy_nl) {
 		/*
@@ -993,7 +993,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 
 		if (sfp_stat != IXGBE_I2C_EEPROM_STATUS_PASS) {
 			hw_dbg(hw, "EEPROM read did not pass.\n");
-			status = IXGBE_ERR_SFP_NOT_PRESENT;
+			status = -ENOENT;
 			goto out;
 		}
 
@@ -1003,7 +1003,7 @@ static s32 ixgbe_read_i2c_phy_82598(struct ixgbe_hw *hw, u8 dev_addr,
 
 		*eeprom_data = (u8)(sfp_data >> 8);
 	} else {
-		status = IXGBE_ERR_PHY;
+		status = -EIO;
 	}
 
 out:
drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c +30 -31

232 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +83 -94

498 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +1 -1
index 3d361557a63a..343f076da6a6 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +20 -24

44 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c +17 -17
index 5679293e53f7..fe7ef5773369 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h +0 -1
index e085b6520dac..25675b2d21eb 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +53 -52

105 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h +1 -1
index c56baad04ee6..aeee56e58597 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +1 -1
index 9b463ef62be5..847a33427db8 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_type.h +6 -45

51 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c +22 -23

45 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +77 -72

149 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c +15 -11
index a4be04debe67..31da51b74c16 100644

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

drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
index c8d0b1016a64..6dae2e23eacc 100644

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

drivers/net/fjes/fjes_hw.c +30 -7
index 9c652c04375b..c3fa8db69b9e 100644

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

drivers/net/ppp/ppp_async.c +4 -0
index bf03db40d4f0..fb1e28a29892 100644

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

drivers/net/virtio_net.c +5 -4
index 331d74f9281b..2b012d7165cd 100644

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

drivers/net/wan/lmc/lmc_proto.c +0 -4
index f600075e84a2..7ae39a2b6340 100644

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

drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +3 -2
index 979ac31a77a0..527bca8f7deb 100644

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

drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +12 -0
index 780dab276829..9c5a7ea1479e 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c +3 -3
index 5cf29f5a4b54..e6ac496e898e 100644

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

drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c +2 -2
index 1263b12db5dc..bbbbf61d7bcf 100644

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

drivers/net/xen-netback/netback.c +40 -44

84 lines not on this page · raw message

drivers/pci/controller/pcie-mediatek.c +8 -2
index 066e9e00de11..0d5be37660aa 100644

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

drivers/pci/quirks.c +20 -4
index eb507751c115..99a8a24ea79d 100644

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

drivers/phy/ti/phy-omap-usb2.c +2 -2
index fe909fd8144f..ae94e1e66bcc 100644

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

drivers/pnp/pnpacpi/rsparser.c +6 -6
index 43d8ed577e70..d8cee80e8df8 100644

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

drivers/rpmsg/virtio_rpmsg_bus.c +1 -0
index 664f957012cd..aab990339051 100644

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

drivers/scsi/fcoe/fcoe_ctlr.c +8 -12
index c49986eba47b..1e087a206f48 100644

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

drivers/scsi/isci/request.c +1 -1
index 2f151708b59a..13ecf554762e 100644

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

drivers/scsi/libfc/fc_fcp.c +12 -6
index 4fae253d4f3d..faea7333c7e8 100644

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

drivers/scsi/lpfc/lpfc.h +1 -0
index 706aca3f7c25..53b661793268 100644

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

drivers/scsi/lpfc/lpfc_init.c +2 -2
index c6caacaa3e7a..7db4e893e10e 100644

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

drivers/spi/spi-ppc4xx.c +0 -5
index 967d94844b30..58765a62fc15 100644

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

drivers/staging/iio/impedance-analyzer/ad5933.c +1 -1
index 14df89510396..d384c09d681a 100644

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

drivers/tty/serial/max310x.c +16 -5
index c1ab0dbda8a9..e68dbd13110b 100644

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

drivers/tty/serial/sc16is7xx.c +6 -2
index c65f9194abb0..800cb94e4b91 100644

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

drivers/usb/core/hub.c +21 -13
index 898df2e43945..774cefe4e1f0 100644

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

drivers/usb/gadget/function/f_mass_storage.c +18 -2
index 4f221ca7aad1..9f96c1c701eb 100644

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

drivers/usb/serial/cp210x.c +1 -0
index c203b2e7b838..b58ca66dc3ae 100644

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

drivers/usb/serial/option.c +1 -0
index c0e385b3f4ae..5014f45c7c6a 100644

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

drivers/usb/serial/qcserial.c +2 -0
index b7ba15d0ed6c..5570c50d005d 100644

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

drivers/vhost/vhost.c +2 -3
index 7a58f629155d..3321333a1186 100644

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

fs/afs/server.c +4 -3
index 2c7f6211c360..b12caa1acf53 100644

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

fs/btrfs/extent-tree.c +2 -1
index 902ab00bfd7a..51f21cd61422 100644

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

fs/btrfs/ioctl.c +9 -0
index c76277ccf03b..a4c0fc19c5e8 100644

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

fs/btrfs/send.c +1 -1
index cb584c044f8a..0c86409a316e 100644

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

fs/ceph/caps.c +3 -6
index fcfba2af5f98..729a67700a4f 100644

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

fs/compat_ioctl.c +1 -2
index c6fe9914440e..368128c30e60 100644

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

fs/dcache.c +4 -3
index 1897833a4668..4d96eb591f5d 100644

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

fs/ext4/mballoc.c +18 -8
index 8875fac9f958..df390979058f 100644

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

fs/ext4/move_extent.c +2 -4
index 287631bb09e7..2c368d67a33a 100644

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

fs/ext4/resize.c +22 -15
index f4b3d450dead..97af09d6e7e6 100644

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

fs/f2fs/recovery.c +17 -6
index ad0486beee2c..fffc7a9de04b 100644

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

fs/jfs/jfs_dmap.c +31 -26

57 lines not on this page · raw message

fs/jfs/jfs_dtree.c +6 -1
index 52bae3f5c914..ea2c8f0fe832 100644

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

fs/jfs/jfs_imap.c +3 -0
index b45cc109e506..00800c8c6f07 100644

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

fs/jfs/jfs_mount.c +3 -3
index f1a705d15904..97d91c1686b8 100644

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

fs/nilfs2/file.c +7 -1
index 64bc81363c6c..3802b42e1cb4 100644

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

fs/nilfs2/recovery.c +4 -3
index 140b663e91c7..18feb9c7c706 100644

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

fs/nilfs2/segment.c +5 -3
index fdcbed6ee832..7d1860d33723 100644

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

fs/pstore/ram.c +1 -0
index 33294dee7d7f..0050aa56b0fa 100644

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

include/drm/drm_mipi_dsi.h +2 -0
index 689f615471ab..a059f1d968b7 100644

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

include/linux/bpf.h +5 -1
index 766ea96bf5b8..269754890879 100644

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

include/linux/device.h +3 -0
index bccd367c11de..0714d6e5d500 100644

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

include/linux/dmaengine.h +2 -1
index 50128c36f0b4..6e869419ab17 100644

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

include/linux/hrtimer.h +3 -1
index 3bdaa92a2cab..88496ba45c48 100644

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

include/linux/lsm_hooks.h +9 -0
index e65dace667d3..9a3ded44fb60 100644

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

include/linux/pci_ids.h +1 -0
index 76d5490231a7..3ac7b92b35b9 100644

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

include/linux/security.h +9 -0
index 273877cf47bf..817af8ef3aef 100644

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

include/linux/spi/spi.h +1 -0
index 16158fe097a8..23a232d6db69 100644

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

include/linux/syscalls.h +1 -0
index 2ff814c92f7f..bbe89b1cbf63 100644

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

include/linux/units.h new file +92 -0

92 lines not on this page · raw message

include/net/af_unix.h +14 -6
index 7ec1cdb66be8..e514508bdc92 100644

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

include/net/llc_pdu.h +2 -4
index 49aa79c7b278..581cd37aa98b 100644

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

include/uapi/linux/btrfs.h +3 -0
index dd7a7b3e53f4..7fdc42645410 100644

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

include/uapi/linux/netfilter/nf_tables.h +2 -0
index cc00be102b9f..39774870c864 100644

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

kernel/audit.c +24 -7
index 471d3ad910aa..5fb87eccb8c2 100644

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

kernel/bpf/arraymap.c +7 -5
index 0c17aab3ce5f..44f53c06629e 100644

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

kernel/bpf/hashtab.c +3 -3
index 3f3ed33bd2fd..8e379b667a0f 100644

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

kernel/bpf/map_in_map.c +1 -1
index 9670ee5ee74e..051c5e40792c 100644

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

kernel/bpf/map_in_map.h +1 -1
index 6183db9ec08c..1e652a7bf60e 100644

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

kernel/power/swap.c +19 -19
index 9db7f2f93fae..a818ad6ade9c 100644

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

kernel/sched/membarrier.c +6 -0
index dd27e632b1ba..9049ca636e17 100644

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

kernel/time/hrtimer.c +3 -0
index bf74f43e42af..0eb5b6cc6d93 100644

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

kernel/time/tick-sched.c +5 -0
index a05b735b96ac..e858522cbd15 100644

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

kernel/trace/ring_buffer.c +1 -1
index d2903d8834fe..788b89e98338 100644

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

kernel/trace/trace_events_trigger.c +4 -2
index 4b0bde304ad7..8cb4ddb88601 100644

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

kernel/trace/tracing_map.c +6 -1
index 83c2a0598c64..33c463967bb3 100644

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

mm/page-writeback.c +1 -1
index 078f1461e074..170609a4d5f0 100644

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

net/8021q/vlan_netlink.c +4 -0
index 74042b9d7f73..231eae2f1685 100644

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

net/ipv4/af_inet.c +4 -2
index 7c902a1efbbf..01952a520d6f 100644

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

net/ipv4/ip_output.c +6 -6
index 6936f703758b..3e15c1b388ae 100644

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

net/ipv4/tcp.c +1 -0
index 00648a478c6a..712186336997 100644

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

net/ipv6/addrconf_core.c +14 -7
index 66a1a0eb2ed0..9c2c7baa3929 100644

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

net/iucv/af_iucv.c +3 -11
index d59f2341bfec..1ff2860dd3ff 100644

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

net/llc/af_llc.c +18 -8
index 5cba9199c3c9..fc7507ccc667 100644

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

net/llc/llc_core.c +0 -7
index 64d4bef04e73..4900a27b5176 100644

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

net/netfilter/nf_log.c +4 -3
index a61d6df6e5f6..75bdeee325eb 100644

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

net/netfilter/nf_tables_api.c +10 -10
index e0c224dea316..94f1104b0487 100644

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

net/netfilter/nft_byteorder.c +3 -2
index dba16126c7ee..8c4ee49a80fb 100644

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

net/netfilter/nft_compat.c +9 -2
index 2846d64659f2..763ba07a58ab 100644

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

net/netlink/af_netlink.c +1 -1
index e91489b3274c..72936d154c96 100644

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

net/nfc/nci/core.c +4 -0
index 33723d843e47..2e885b7a02a1 100644

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

net/rds/af_rds.c +1 -1
index cd7e01ea8144..5eb71d276706 100644

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

net/rxrpc/conn_event.c +8 -0
index 04213afd7710..84a70d7d0285 100644

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

net/rxrpc/conn_service.c +2 -1
index 6da7c4bf15e8..4b1564824aed 100644

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

net/sched/sch_cbs.c +13 -17
index f95dc899e989..1140218c077b 100644

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

net/smc/smc_diag.c +1 -1
index 6c4a7a5938b7..3ab14678afff 100644

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

net/sunrpc/xprtmultipath.c +15 -2
index e2d64c7138c3..699d5ba128fa 100644

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

net/tipc/bearer.c +6 -0
index 4353968bc5a5..c7686ff00f5b 100644

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

net/unix/af_unix.c +6 -8
index 0632b494d329..7910b9c88d8b 100644

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

net/unix/diag.c +1 -1
index 3183d9b8ab33..d6ceac688def 100644

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

net/wireless/scan.c +4 -0
index d871349036a5..dacb9ceee3ef 100644

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

security/security.c +17 -0
index 21c27424a44b..e8a53164e6b5 100644

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

security/selinux/hooks.c +28 -0
index 749dbf9f2cfc..a6086a6eb693 100644

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

security/smack/smack_lsm.c +1 -0
index 266eb8ca3381..128a5f464740 100644

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

security/tomoyo/tomoyo.c +1 -0
index 9f932e2d6852..6d7ea66f634a 100644

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

sound/pci/hda/hda_intel.c +2 -0
index e66d8729c72f..94a97832cf0f 100644

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

sound/pci/hda/patch_conexant.c +18 -0
index cfa958dc2dd5..d97d4286c9d7 100644

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

sound/soc/codecs/rt5645.c +1 -0
index 37ad3bee66a4..5ec6e9f251c5 100644

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

tools/lib/subcmd/help.c +14 -4
index 2859f107abc8..4260c8b4257b 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.