Linux 4.19.307
Greg Kroah-Hartman
maintainerI'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
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-class-net-queues +11 -11
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h +0 -1
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +1 -1
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
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfpcore/nfp6000_pcie.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c +2 -2
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/staging/iio/impedance-analyzer/ad5933.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/f_mass_storage.c +18 -2
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
include/linux/units.h new file +92 -0
92 lines not on this page · raw message
include/uapi/linux/netfilter/nf_tables.h +2 -0
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.