Skip to contentSkip to conversation

Linux 5.11.12

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 7, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.11.12 kernel.

All users of the 5.11 kernel series must upgrade.

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

thanks,

greg k-h

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

 Makefile                                                    |    2 
 arch/arm64/mm/mmu.c                                         |   20 
 arch/powerpc/platforms/pseries/lpar.c                       |    3 
 arch/powerpc/platforms/pseries/mobility.c                   |   48 
 arch/riscv/include/asm/uaccess.h                            |    7 
 arch/s390/include/asm/vdso/data.h                           |    2 
 arch/s390/kernel/time.c                                     |    1 
 arch/x86/include/asm/smp.h                                  |    1 
 arch/x86/kernel/acpi/boot.c                                 |   25 
 arch/x86/kernel/setup.c                                     |    8 
 arch/x86/kernel/smpboot.c                                   |    2 
 arch/x86/kvm/svm/nested.c                                   |   28 
 arch/xtensa/kernel/coprocessor.S                            |   64 
 arch/xtensa/mm/fault.c                                      |    5 
 drivers/acpi/processor_idle.c                               |    7 
 drivers/acpi/scan.c                                         |   12 
 drivers/acpi/tables.c                                       |   42 
 drivers/base/dd.c                                           |    3 
 drivers/base/power/runtime.c                                |   10 
 drivers/extcon/extcon.c                                     |    1 
 drivers/firewire/nosy.c                                     |    9 
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c                     |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c                      |   10 
 drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c                     |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c       |    6 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h       |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c             |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c          |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c          |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h                       |    8 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c         |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c            |    5 
 drivers/gpu/drm/imx/imx-drm-core.c                          |    2 
 drivers/gpu/drm/nouveau/nouveau_bo.c                        |    8 
 drivers/gpu/drm/tegra/dc.c                                  |   20 
 drivers/gpu/drm/tegra/sor.c                                 |    7 
 drivers/net/can/Makefile                                    |    7 
 drivers/net/can/dev.c                                       | 1339 -----------
 drivers/net/can/dev/Makefile                                |    7 
 drivers/net/can/dev/dev.c                                   | 1341 ++++++++++++
 drivers/net/can/dev/rx-offload.c                            |  376 +++
 drivers/net/can/m_can/tcan4x5x.c                            |    2 
 drivers/net/can/rx-offload.c                                |  376 ---
 drivers/net/can/slcan.c                                     |    4 
 drivers/net/can/vcan.c                                      |    2 
 drivers/net/can/vxcan.c                                     |    6 
 drivers/net/ethernet/aquantia/atlantic/aq_main.c            |    4 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c             |    4 
 drivers/net/ipa/gsi.c                                       |   28 
 drivers/net/ipa/gsi.h                                       |    5 
 drivers/net/ipa/gsi_reg.h                                   |   31 
 drivers/net/ipa/ipa_cmd.c                                   |   32 
 drivers/net/netdevsim/dev.c                                 |   40 
 drivers/net/wan/lmc/lmc_main.c                              |    2 
 drivers/net/wireless/ath/ath10k/wmi-tlv.c                   |    7 
 drivers/net/wireless/ath/ath11k/mac.c                       |    7 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c |    7 
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c             |   11 
 drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c           |    5 
 drivers/net/wireless/intel/iwlwifi/pcie/tx.c                |   22 
 drivers/net/wireless/realtek/rtw88/rtw8821c.c               |   16 
 drivers/nvme/target/tcp.c                                   |    2 
 drivers/pinctrl/pinctrl-microchip-sgpio.c                   |    2 
 drivers/pinctrl/pinctrl-rockchip.c                          |   13 
 drivers/pinctrl/qcom/pinctrl-lpass-lpi.c                    |    2 
 drivers/pinctrl/qcom/pinctrl-sc7280.c                       |   16 
 drivers/pinctrl/qcom/pinctrl-sdx55.c                        |    2 
 drivers/scsi/qla2xxx/qla_target.h                           |    2 
 drivers/scsi/st.c                                           |    2 
 drivers/soc/qcom/qcom-geni-se.c                             |   74 
 drivers/staging/comedi/drivers/cb_pcidas.c                  |    2 
 drivers/staging/comedi/drivers/cb_pcidas64.c                |    2 
 drivers/staging/rtl8192e/rtllib.h                           |    2 
 drivers/staging/rtl8192e/rtllib_rx.c                        |    2 
 drivers/thermal/thermal_sysfs.c                             |    3 
 drivers/tty/serial/qcom_geni_serial.c                       |    7 
 drivers/usb/class/cdc-acm.c                                 |   61 
 drivers/usb/core/quirks.c                                   |    4 
 drivers/usb/dwc2/hcd.c                                      |    5 
 drivers/usb/dwc3/dwc3-pci.c                                 |    2 
 drivers/usb/dwc3/dwc3-qcom.c                                |    3 
 drivers/usb/dwc3/gadget.c                                   |    8 
 drivers/usb/gadget/udc/amd5536udc_pci.c                     |   10 
 drivers/usb/host/xhci-mtk.c                                 |   10 
 drivers/usb/musb/musb_core.c                                |   12 
 drivers/usb/usbip/vhci_hcd.c                                |    2 
 drivers/vfio/pci/Kconfig                                    |    2 
 drivers/vhost/vhost.c                                       |    2 
 drivers/video/fbdev/core/fbcon.c                            |    3 
 drivers/video/fbdev/hyperv_fb.c                             |    3 
 fs/ext4/balloc.c                                            |   38 
 fs/ext4/ext4.h                                              |    1 
 fs/ext4/inode.c                                             |    6 
 fs/ext4/namei.c                                             |   18 
 fs/ext4/super.c                                             |    5 
 fs/ext4/sysfs.c                                             |    7 
 fs/fuse/virtio_fs.c                                         |    9 
 fs/io_uring.c                                               |   41 
 fs/iomap/swapfile.c                                         |   10 
 fs/nfsd/Kconfig                                             |    1 
 fs/nfsd/nfs4callback.c                                      |    1 
 fs/reiserfs/xattr.h                                         |    2 
 include/drm/ttm/ttm_bo_api.h                                |    6 
 include/linux/acpi.h                                        |    9 
 include/linux/can/can-ml.h                                  |   12 
 include/linux/extcon.h                                      |   23 
 include/linux/firmware/intel/stratix10-svc-client.h         |    2 
 include/linux/netdevice.h                                   |   34 
 include/linux/qcom-geni-se.h                                |    2 
 include/linux/ww_mutex.h                                    |    5 
 kernel/locking/mutex.c                                      |   25 
 kernel/reboot.c                                             |    2 
 kernel/static_call.c                                        |   14 
 kernel/trace/trace.c                                        |    3 
 mm/memory.c                                                 |    2 
 net/9p/client.c                                             |    4 
 net/appletalk/ddp.c                                         |   33 
 net/can/af_can.c                                            |   34 
 net/can/j1939/main.c                                        |   22 
 net/can/j1939/socket.c                                      |   13 
 net/can/proc.c                                              |   19 
 net/core/filter.c                                           |   12 
 net/core/flow_dissector.c                                   |    6 
 net/mptcp/options.c                                         |    3 
 net/mptcp/protocol.c                                        |  111 
 net/mptcp/protocol.h                                        |    4 
 net/mptcp/subflow.c                                         |   83 
 net/sunrpc/auth_gss/svcauth_gss.c                           |   11 
 sound/pci/hda/hda_intel.c                                   |    8 
 sound/pci/hda/patch_realtek.c                               |    4 
 sound/soc/codecs/cs42l42.c                                  |   74 
 sound/soc/codecs/cs42l42.h                                  |   13 
 sound/soc/codecs/es8316.c                                   |    9 
 sound/soc/codecs/rt1015.c                                   |    1 
 sound/soc/codecs/rt5640.c                                   |    4 
 sound/soc/codecs/rt5651.c                                   |    4 
 sound/soc/codecs/rt5659.c                                   |    5 
 sound/soc/codecs/rt711.c                                    |    8 
 sound/soc/codecs/sgtl5000.c                                 |    2 
 sound/soc/mediatek/mt8192/mt8192-dai-tdm.c                  |    4 
 sound/soc/mediatek/mt8192/mt8192-reg.h                      |    8 
 sound/soc/soc-core.c                                        |    4 
 sound/usb/quirks.c                                          |    1 
 tools/testing/selftests/net/forwarding/tc_flower.sh         |   38 
 144 files changed, 2794 insertions(+), 2350 deletions(-)

Adrian Hunter (2):
PM: runtime: Fix race getting/putting suppliers at probe
PM: runtime: Fix ordering in pm_runtime_get_suppliers()

Ahmad Fatoum (1):
driver core: clear deferred probe reason on probe retry

Alex Deucher (1):
drm/amdgpu/vangogh: don't check for dpm in is_dpm_running when in suspend

Alex Elder (3):
net: ipa: remove two unused register definitions
net: ipa: use a separate pointer for adjusted GSI memory
net: ipa: fix register write command validation

Alexey Dobriyan (1):
scsi: qla2xxx: Fix broken #endif placement

Andy Shevchenko (1):
usb: dwc3: pci: Enable dis_uX_susphy_quirk for Intel Merrifield

Aneesh Kumar K.V (1):
powerpc/mm/book3s64: Use the correct storage key value when calling H_PROTECT

Arnd Bergmann (1):
pinctrl: qcom: fix unintentional string concatenation

Artur Petrosyan (2):
usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
usb: dwc2: Prevent core suspend when port connection flag is 0

Atul Gopinathan (2):
staging: rtl8192e: Fix incorrect source in memcpy()
staging: rtl8192e: Change state information from u16 to u8

Bard Liao (1):
ASoC: rt711: add snd_soc_component remove callback

Ben Dooks (1):
riscv: evaluate put_user() arg before enabling user access

Benjamin Rood (1):
ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe

Christian König (1):
drm/ttm: make ttm_bo_unpin more defensive

Chunfeng Yun (1):
usb: xhci-mtk: fix broken streams issue on 0.96 xHCI

Dan Carpenter (1):
mptcp: fix bit MPTCP_PUSH_PENDING tests

David S. Miller (1):
Revert "net: bonding: fix error return code of bond_neigh_init()"

Davide Caratti (1):
flow_dissector: fix TTL and TOS dissection on IPv4 fragments

Dinghao Liu (1):
extcon: Fix error handling in extcon_dev_register

Doug Brown (1):
appletalk: Fix skb allocation size in loopback case

Du Cheng (1):
drivers: video: fbcon: fix NULL dereference in fbcon_cursor()

Elad Grupi (1):
nvmet-tcp: fix kmap leak when data digest in use

Eric Whitney (1):
ext4: shrink race window in ext4_should_retry_alloc()

Evan Quan (1):
drm/amd/pm: no need to force MCLK to highest when no display connected

Florian Westphal (1):
mptcp: provide subflow aware release function

Greg Kroah-Hartman (1):

      Linux 5.11.12

Guo-Feng Fan (1):
rtw88: coex: 8821c: correct antenna switch function

Hans de Goede (4):
ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
ASoC: es8316: Simplify adc_pga_gain_tlv table
ACPI: scan: Fix _STA getting called on devices with unmet dependencies

Heiko Carstens (2):
s390/vdso: copy tod_steering_delta value to vdso_data page s390/vdso: fix tod_steering_delta type

Huacai Chen (1):
drm/amdgpu: Set a suitable dev_info.gart_page_size

Hui Wang (2):
ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook

Ido Schimmel (1):
netdevsim: dev: Initialize FIB module after debugfs

Ikjoon Jang (1):
ALSA: usb-audio: Apply sample rate quirk to Logitech Connect

Ilya Lipnitskiy (1):
mm: fix race by making init_zero_pfn() early_initcall

J. Bruce Fields (1):
rpc: fix NULL dereference on kmalloc failure

Jack Yu (1):
ASoC: rt1015: fix i2c communication error

Jason Gunthorpe (1):
vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends

Jens Axboe (2):
kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing Revert "kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing"

Jeremy Szu (1):
ALSA: hda/realtek: fix mute/micmute LEDs for HP 640 G8

Jesper Dangaard Brouer (1):
bpf: Remove MTU check in __bpf_skb_max_len

Jia-Ju Bai (1):
net: bonding: fix error return code of bond_neigh_init()

Jiaxin Yu (1):
ASoC: mediatek: mt8192: fix tdm out data is valid on rising edge

Jisheng Zhang (1):
net: 9p: advance iov on empty read

Johan Hovold (2):
USB: cdc-acm: fix double free on probe failure
USB: cdc-acm: fix use-after-free after probe failure

Johannes Berg (1):
iwlwifi: pcie: don't disable interrupts for reg_lock

Jon Hunter (1):
ASoC: soc-core: Prevent warning if no DMI table is present

Jonathan Marek (1):
pinctrl: qcom: lpass lpi: use default pullup/strength values

Josef Bacik (1):
Revert "PM: ACPI: reboot: Use S5 for reboot"

Julian Braha (1):
fs: nfsd: fix kconfig dependency warning for NFSD_V4

Krzysztof Kozlowski (1):
extcon: Add stubs for extcon_register_notifier_all() functions

Lars Povlsen (1):
pinctrl: microchip-sgpio: Fix wrong register offset for IRQ trigger

Laurent Vivier (1):
vhost: Fix vhost_vq_reset()

Luca Pesce (1):
brcmfmac: clear EAP/association status bits on linkdown events

Lucas Tanure (4):
ASoC: cs42l42: Fix Bitclock polarity inversion
ASoC: cs42l42: Fix channel width support
ASoC: cs42l42: Fix mixer volume control
ASoC: cs42l42: Always wait at least 3ms after reset

Lv Yunlong (2):
scsi: st: Fix a use after free in st_open()
video: hyperv_fb: Fix a double free in hvfb_probe

Manaf Meethalavalappu Pallikunhi (1):
thermal/core: Add NULL pointer check before using cooling device stats

Marc Kleine-Budde (1):
can: dev: move driver related infrastructure into separate subdir

Max Filippov (2):
xtensa: fix uaccess-related livelock in do_page_fault
xtensa: move coprocessor_flush to the .text section

Nathan Lynch (2):
powerpc/pseries/mobility: use struct for shared state powerpc/pseries/mobility: handle premature return from H_JOIN

Nathan Rossi (1):
net: ethernet: aquantia: Handle error cleanup of start on open

Nirmoy Das (1):
drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()

Oleksij Rempel (1):
net: introduce CAN specific pointer in the struct net_device

Olga Kornievskaia (1):
NFSD: fix error handling in NFSv4.0 callbacks

Oliver Neukum (3):
cdc-acm: fix BREAK rx code path adding necessary calls
USB: cdc-acm: untangle a circular dependency between callback and softint
USB: cdc-acm: downgrade message to debug

Pan Bian (1):
drm/imx: fix memory leak when fails to init

Paolo Abeni (6):
mptcp: deliver ssk errors to msk
mptcp: fix poll after shutdown
mptcp: init mptcp request socket earlier
mptcp: add a missing retransmission timer scheduling
mptcp: fix DATA_FIN processing for orphaned sockets
mptcp: fix race in release_cb

Paolo Bonzini (2):
KVM: SVM: load control fields from VMCB12 before checking them
KVM: SVM: ensure that EFER.SVME is set when running nested guest or on nested vmexit

Pavel Begunkov (3):
io_uring: fix ->flags races by linked timeouts
io_uring: halt SQO submission on ctx exit
io_uring: do ctx sqd ejection in a clear context

Pavel Tatashin (1):
arm64: mm: correct the inside linear map range during hotplug check

Peter Zijlstra (1):
static_call: Align static_call_is_init() patching condition

Qu Huang (1):
drm/amdkfd: dqm fence memory corruption

Rafael J. Wysocki (1):
ACPI: tables: x86: Reserve memory occupied by ACPI tables

Rajendra Nayak (2):
pinctrl: qcom: sc7280: Fix SDC_QDSD_PINGROUP and UFS_RESET offsets
pinctrl: qcom: sc7280: Fix SDC1_RCLK configurations

Richard Gong (1):
firmware: stratix10-svc: reset COMMAND_RECONFIG_FLAG_PARTIAL to 0

Ritesh Harjani (1):

      iomap: Fix negative assignment to unsigned sis->pages in iomap_swapfile_activate

Roja Rani Yarubandi (1):
soc: qcom-geni-se: Cleanup the code to remove proxy votes

Sameer Pujar (1):
ASoC: rt5659: Update MCLK rate in set_sysclk()

Sasha Levin (2):
net: mvpp2: fix interrupt mask/unmask skip condition
can: tcan4x5x: fix max register value

Shawn Guo (1):
usb: dwc3: qcom: skip interconnect init for ACPI probe

Shuah Khan (2):
ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()

Stefan Metzmacher (2):
io_uring: imply MSG_NOSIGNAL for send[msg]()/recv[msg]() calls
io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL

Steven Rostedt (VMware) (1):
tracing: Fix stack trace event size

Takashi Iwai (2):
ALSA: hda: Re-add dropped snd_poewr_change_state() calls
ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks

Tetsuo Handa (1):
reiserfs: update reiserfs_xattrs_initialized() condition

Thierry Reding (2):
drm/tegra: dc: Restore coupling of display controllers drm/tegra: sor: Grab runtime PM reference across reset

Tobias Klausmann (1):
nouveau: Skip unvailable ttm page entries

Tong Zhang (4):
staging: comedi: cb_pcidas: fix request_irq() warn
staging: comedi: cb_pcidas64: fix request_irq() warn
net: wan/lmc: unregister device when no matching device is found
usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference

Tony Lindgren (1):
usb: musb: Fix suspend with devices connected for a64

Vincent Palatin (1):
USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem

Vitaly Kuznetsov (1):
ACPI: processor: Fix CPU0 wakeup in acpi_idle_play_dead()

Vivek Goyal (1):
virtiofs: Fail dax mount if device does not support it

Waiman Long (2):
locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling locking/ww_mutex: Fix acquire/release imbalance in ww_acquire_init()/ww_acquire_fini()

Wang Panzhenzhuan (1):
pinctrl: rockchip: fix restore error in resume

Wen Gong (1):
ath11k: add ieee80211_unregister_hw to avoid kernel crash caused by NULL pointer

Wesley Cheng (1):
usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable

Xℹ Ruoyao (1):
drm/amdgpu: check alignment on CPU page for bo map

Zhaolong Zhang (1):
ext4: fix bh ref count on error paths

Zheyu Ma (1):
firewire: nosy: Fix a use-after-free bug in nosy_ioctl()

zhangyi (F) (1):
ext4: do not iput inode under running transaction in ext4_rename()

author maintainer
#1 lore raw
Makefile +1 -1
index 7578e0d9622f..1e31504aab61 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 11
-SUBLEVEL = 11
+SUBLEVEL = 12
 EXTRAVERSION =
 NAME = 💕 Valentine's Day Edition 💕
 
arch/arm64/mm/mmu.c +18 -2
index 6f0648777d34..ee01f421e1e4 100644
@@ -1445,14 +1445,30 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
 
 static bool inside_linear_region(u64 start, u64 size)
 {
+	u64 start_linear_pa = __pa(_PAGE_OFFSET(vabits_actual));
+	u64 end_linear_pa = __pa(PAGE_END - 1);
+
+	if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) {
+		/*
+		 * Check for a wrap, it is possible because of randomized linear
+		 * mapping the start physical address is actually bigger than
+		 * the end physical address. In this case set start to zero
+		 * because [0, end_linear_pa] range must still be able to cover
+		 * all addressable physical addresses.
+		 */
+		if (start_linear_pa > end_linear_pa)
+			start_linear_pa = 0;
+	}
+
+	WARN_ON(start_linear_pa > end_linear_pa);
+
 	/*
 	 * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
 	 * accommodating both its ends but excluding PAGE_END. Max physical
 	 * range which can be mapped inside this linear mapping range, must
 	 * also be derived from its end points.
 	 */
-	return start >= __pa(_PAGE_OFFSET(vabits_actual)) &&
-	       (start + size - 1) <= __pa(PAGE_END - 1);
+	return start >= start_linear_pa && (start + size - 1) <= end_linear_pa;
 }
 
 int arch_add_memory(int nid, u64 start, u64 size,
arch/powerpc/platforms/pseries/lpar.c +2 -1
index 764170fdb0f7..3805519a6469 100644
@@ -887,7 +887,8 @@ static long pSeries_lpar_hpte_updatepp(unsigned long slot,
 
 	want_v = hpte_encode_avpn(vpn, psize, ssize);
 
-	flags = (newpp & 7) | H_AVPN;
+	flags = (newpp & (HPTE_R_PP | HPTE_R_N | HPTE_R_KEY_LO)) | H_AVPN;
+	flags |= (newpp & HPTE_R_KEY_HI) >> 48;
 	if (mmu_has_feature(MMU_FTR_KERNEL_RO))
 		/* Move pp0 into bit 8 (IBM 55) */
 		flags |= (newpp & HPTE_R_PP0) >> 55;
arch/powerpc/platforms/pseries/mobility.c +44 -4

81 lines not on this page · raw message

arch/riscv/include/asm/uaccess.h +5 -2
index 824b2c9da75b..f944062c9d99 100644
@@ -306,7 +306,9 @@ do {								\
  * data types like structures or arrays.
  *
  * @ptr must have pointer-to-simple-variable type, and @x must be assignable
- * to the result of dereferencing @ptr.
+ * to the result of dereferencing @ptr. The value of @x is copied to avoid
+ * re-ordering where @x is evaluated inside the block that enables user-space
+ * access (thus bypassing user space protection if @x is a function).
  *
  * Caller must check the pointer with access_ok() before calling this
  * function.
@@ -316,12 +318,13 @@ do {								\
 #define __put_user(x, ptr)					\
 ({								\
 	__typeof__(*(ptr)) __user *__gu_ptr = (ptr);		\
+	__typeof__(*__gu_ptr) __val = (x);			\
 	long __pu_err = 0;					\
 								\
 	__chk_user_ptr(__gu_ptr);				\
 								\
 	__enable_user_access();					\
-	__put_user_nocheck(x, __gu_ptr, __pu_err);		\
+	__put_user_nocheck(__val, __gu_ptr, __pu_err);		\
 	__disable_user_access();				\
 								\
 	__pu_err;						\
arch/s390/include/asm/vdso/data.h +1 -1
index 7b3cdb4a5f48..73ee89142666 100644
@@ -6,7 +6,7 @@
 #include <vdso/datapage.h>
 
 struct arch_vdso_data {
-	__u64 tod_steering_delta;
+	__s64 tod_steering_delta;
 	__u64 tod_steering_end;
 };
 
arch/s390/kernel/time.c +1 -0
index c59cb44fbb7d..c71c4c12c9d3 100644
@@ -398,6 +398,7 @@ static void clock_sync_global(unsigned long long delta)
 		      tod_steering_delta);
 	tod_steering_end = now + (abs(tod_steering_delta) << 15);
 	vdso_data->arch_data.tod_steering_end = tod_steering_end;
+	vdso_data->arch_data.tod_steering_delta = tod_steering_delta;
 
 	/* Update LPAR offset. */
 	if (ptff_query(PTFF_QTO) && ptff(&qto, sizeof(qto), PTFF_QTO) == 0)
arch/x86/include/asm/smp.h +1 -0
index c0538f82c9a2..57ef2094af93 100644
@@ -132,6 +132,7 @@ void native_play_dead(void);
 void play_dead_common(void);
 void wbinvd_on_cpu(int cpu);
 int wbinvd_on_all_cpus(void);
+bool wakeup_cpu0(void);
 
 void native_smp_send_reschedule(int cpu);
 void native_send_call_func_ipi(const struct cpumask *mask);
arch/x86/kernel/acpi/boot.c +12 -13
index 7bdc0239a943..14cd3186dc77 100644
@@ -1554,10 +1554,18 @@ void __init acpi_boot_table_init(void)
 	/*
 	 * Initialize the ACPI boot-time table parser.
 	 */
-	if (acpi_table_init()) {
+	if (acpi_locate_initial_tables())
 		disable_acpi();
-		return;
-	}
+	else
+		acpi_reserve_initial_tables();
+}
+
+int __init early_acpi_boot_init(void)
+{
+	if (acpi_disabled)
+		return 1;
+
+	acpi_table_init_complete();
 
 	acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf);
 
@@ -1570,18 +1578,9 @@ void __init acpi_boot_table_init(void)
 		} else {
 			printk(KERN_WARNING PREFIX "Disabling ACPI support\n");
 			disable_acpi();
-			return;
+			return 1;
 		}
 	}
-}
-
-int __init early_acpi_boot_init(void)
-{
-	/*
-	 * If acpi_disabled, bail out
-	 */
-	if (acpi_disabled)
-		return 1;
 
 	/*
 	 * Process the Multiple APIC Description Table (MADT), if present
arch/x86/kernel/setup.c +3 -5
index 740f3bdb3f61..df964571a6b4 100644
@@ -1046,6 +1046,9 @@ void __init setup_arch(char **cmdline_p)
 
 	cleanup_highmap();
 
+	/* Look for ACPI tables and reserve memory occupied by them. */
+	acpi_boot_table_init();
+
 	memblock_set_current_limit(ISA_END_ADDRESS);
 	e820__memblock_setup();
 
@@ -1137,11 +1140,6 @@ void __init setup_arch(char **cmdline_p)
 
 	early_platform_quirks();
 
-	/*
-	 * Parse the ACPI tables for possible boot-time SMP configuration.
-	 */
-	acpi_boot_table_init();
-
 	early_acpi_boot_init();
 
 	initmem_init();
arch/x86/kernel/smpboot.c +1 -1
index 02813a7f3a7c..f877150a91da 100644
@@ -1659,7 +1659,7 @@ void play_dead_common(void)
 	local_irq_disable();
 }
 
-static bool wakeup_cpu0(void)
+bool wakeup_cpu0(void)
 {
 	if (smp_processor_id() == 0 && enable_start_cpu0)
 		return true;
arch/x86/kvm/svm/nested.c +23 -5
index d36773c7b535..0b3bf6e2aeb9 100644
@@ -246,11 +246,18 @@ static bool nested_vmcb_check_controls(struct vmcb_control_area *control)
 	return true;
 }
 
-static bool nested_vmcb_checks(struct vcpu_svm *svm, struct vmcb *vmcb12)
+static bool nested_vmcb_check_save(struct vcpu_svm *svm, struct vmcb *vmcb12)
 {
 	struct kvm_vcpu *vcpu = &svm->vcpu;
 	bool vmcb12_lma;
 
+	/*
+	 * FIXME: these should be done after copying the fields,
+	 * to avoid TOC/TOU races.  For these save area checks
+	 * the possible damage is limited since kvm_set_cr0 and
+	 * kvm_set_cr4 handle failure; EFER_SVME is an exception
+	 * so it is force-set later in nested_prepare_vmcb_save.
+	 */
 	if ((vmcb12->save.efer & EFER_SVME) == 0)
 		return false;
 
@@ -271,7 +278,7 @@ static bool nested_vmcb_checks(struct vcpu_svm *svm, struct vmcb *vmcb12)
 	if (!kvm_is_valid_cr4(&svm->vcpu, vmcb12->save.cr4))
 		return false;
 
-	return nested_vmcb_check_controls(&vmcb12->control);
+	return true;
 }
 
 static void load_nested_vmcb_control(struct vcpu_svm *svm,
@@ -396,7 +403,14 @@ static void nested_prepare_vmcb_save(struct vcpu_svm *svm, struct vmcb *vmcb12)
 	svm->vmcb->save.gdtr = vmcb12->save.gdtr;
 	svm->vmcb->save.idtr = vmcb12->save.idtr;
 	kvm_set_rflags(&svm->vcpu, vmcb12->save.rflags | X86_EFLAGS_FIXED);
-	svm_set_efer(&svm->vcpu, vmcb12->save.efer);
+
+	/*
+	 * Force-set EFER_SVME even though it is checked earlier on the
+	 * VMCB12, because the guest can flip the bit between the check
+	 * and now.  Clearing EFER_SVME would call svm_free_nested.
+	 */
+	svm_set_efer(&svm->vcpu, vmcb12->save.efer | EFER_SVME);
+
 	svm_set_cr0(&svm->vcpu, vmcb12->save.cr0);
 	svm_set_cr4(&svm->vcpu, vmcb12->save.cr4);
 	svm->vmcb->save.cr2 = svm->vcpu.arch.cr2 = vmcb12->save.cr2;
@@ -454,7 +468,6 @@ int enter_svm_guest_mode(struct vcpu_svm *svm, u64 vmcb12_gpa,
 	int ret;
 
 	svm->nested.vmcb12_gpa = vmcb12_gpa;
-	load_nested_vmcb_control(svm, &vmcb12->control);
 	nested_prepare_vmcb_save(svm, vmcb12);
 	nested_prepare_vmcb_control(svm);
 
@@ -501,7 +514,10 @@ int nested_svm_vmrun(struct vcpu_svm *svm)
 	if (WARN_ON_ONCE(!svm->nested.initialized))
 		return -EINVAL;
 
-	if (!nested_vmcb_checks(svm, vmcb12)) {
+	load_nested_vmcb_control(svm, &vmcb12->control);
+
+	if (!nested_vmcb_check_save(svm, vmcb12) ||
+	    !nested_vmcb_check_controls(&svm->nested.ctl)) {
 		vmcb12->control.exit_code    = SVM_EXIT_ERR;
 		vmcb12->control.exit_code_hi = 0;
 		vmcb12->control.exit_info_1  = 0;
@@ -1207,6 +1223,8 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu,
 	 */
 	if (!(save->cr0 & X86_CR0_PG))
 		goto out_free;
+	if (!(save->efer & EFER_SVME))
+		goto out_free;
 
 	/*
 	 * All checks done, we can enter guest mode.  L1 control fields
arch/xtensa/kernel/coprocessor.S +33 -31

76 lines not on this page · raw message

arch/xtensa/mm/fault.c +4 -1
index 7666408ce12a..95a74890c7e9 100644
@@ -112,8 +112,11 @@ void do_page_fault(struct pt_regs *regs)
 	 */
 	fault = handle_mm_fault(vma, address, flags, regs);
 
-	if (fault_signal_pending(fault, regs))
+	if (fault_signal_pending(fault, regs)) {
+		if (!user_mode(regs))
+			goto bad_page_fault;
 		return;
+	}
 
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
drivers/acpi/processor_idle.c +7 -0
index d93e400940a3..768a6b4d2368 100644
@@ -29,6 +29,7 @@
  */
 #ifdef CONFIG_X86
 #include <asm/apic.h>
+#include <asm/cpu.h>
 #endif
 
 #define _COMPONENT              ACPI_PROCESSOR_COMPONENT
@@ -541,6 +542,12 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
 			wait_for_freeze();
 		} else
 			return -ENODEV;
+
+#if defined(CONFIG_X86) && defined(CONFIG_HOTPLUG_CPU)
+		/* If NMI wants to wake up CPU0, start CPU0. */
+		if (wakeup_cpu0())
+			start_cpu0();
+#endif
 	}
 
 	/* Never reached */
drivers/acpi/scan.c +11 -1
index a4fdf61b0644..239eeeafc62f 100644
@@ -1669,6 +1669,8 @@ void acpi_init_device_object(struct acpi_device *device, acpi_handle handle,
 	device_initialize(&device->dev);
 	dev_set_uevent_suppress(&device->dev, true);
 	acpi_init_coherency(device);
+	/* Assume there are unmet deps to start with. */
+	device->dep_unmet = 1;
 }
 
 void acpi_device_add_finalize(struct acpi_device *device)
@@ -1934,6 +1936,8 @@ static void acpi_scan_dep_init(struct acpi_device *adev)
 {
 	struct acpi_dep_data *dep;
 
+	adev->dep_unmet = 0;
+
 	mutex_lock(&acpi_dep_list_lock);
 
 	list_for_each_entry(dep, &acpi_dep_list, node) {
@@ -1981,7 +1985,13 @@ static acpi_status acpi_bus_check_add(acpi_handle handle, bool check_dep,
 		return AE_CTRL_DEPTH;
 
 	acpi_scan_init_hotplug(device);
-	if (!check_dep)
+	/*
+	 * If check_dep is true at this point, the device has no dependencies,
+	 * or the creation of the device object would have been postponed above.
+	 */
+	if (check_dep)
+		device->dep_unmet = 0;
+	else
 		acpi_scan_dep_init(device);
 
 out:
drivers/acpi/tables.c +39 -3

62 lines not on this page · raw message

drivers/base/dd.c +3 -0
index 9179825ff646..e2cf3b29123e 100644
@@ -97,6 +97,9 @@ static void deferred_probe_work_func(struct work_struct *work)
 
 		get_device(dev);
 
+		kfree(dev->p->deferred_probe_reason);
+		dev->p->deferred_probe_reason = NULL;
+
 		/*
 		 * Drop the mutex while probing each device; the probe path may
 		 * manipulate the deferred list
drivers/base/power/runtime.c +8 -2
index 5ef67bacb585..d6d73ff94e88 100644
@@ -1690,8 +1690,8 @@ void pm_runtime_get_suppliers(struct device *dev)
 				device_links_read_lock_held())
 		if (link->flags & DL_FLAG_PM_RUNTIME) {
 			link->supplier_preactivated = true;
-			refcount_inc(&link->rpm_active);
 			pm_runtime_get_sync(link->supplier);
+			refcount_inc(&link->rpm_active);
 		}
 
 	device_links_read_unlock(idx);
@@ -1704,6 +1704,8 @@ void pm_runtime_get_suppliers(struct device *dev)
 void pm_runtime_put_suppliers(struct device *dev)
 {
 	struct device_link *link;
+	unsigned long flags;
+	bool put;
 	int idx;
 
 	idx = device_links_read_lock();
@@ -1712,7 +1714,11 @@ void pm_runtime_put_suppliers(struct device *dev)
 				device_links_read_lock_held())
 		if (link->supplier_preactivated) {
 			link->supplier_preactivated = false;
-			if (refcount_dec_not_one(&link->rpm_active))
+			spin_lock_irqsave(&dev->power.lock, flags);
+			put = pm_runtime_status_suspended(dev) &&
+			      refcount_dec_not_one(&link->rpm_active);
+			spin_unlock_irqrestore(&dev->power.lock, flags);
+			if (put)
 				pm_runtime_put(link->supplier);
 		}
 
drivers/extcon/extcon.c +1 -0
index 0a6438cbb3f3..e7a9561a826d 100644
@@ -1241,6 +1241,7 @@ int extcon_dev_register(struct extcon_dev *edev)
 				sizeof(*edev->nh), GFP_KERNEL);
 	if (!edev->nh) {
 		ret = -ENOMEM;
+		device_unregister(&edev->dev);
 		goto err_dev;
 	}
 
drivers/firewire/nosy.c +7 -2
index 5fd6a60b6741..88ed971e32c0 100644
@@ -346,6 +346,7 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 	struct client *client = file->private_data;
 	spinlock_t *client_list_lock = &client->lynx->client_list_lock;
 	struct nosy_stats stats;
+	int ret;
 
 	switch (cmd) {
 	case NOSY_IOC_GET_STATS:
@@ -360,11 +361,15 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 			return 0;
 
 	case NOSY_IOC_START:
+		ret = -EBUSY;
 		spin_lock_irq(client_list_lock);
-		list_add_tail(&client->link, &client->lynx->client_list);
+		if (list_empty(&client->link)) {
+			list_add_tail(&client->link, &client->lynx->client_list);
+			ret = 0;
+		}
 		spin_unlock_irq(client_list_lock);
 
-		return 0;
+		return ret;
 
 	case NOSY_IOC_STOP:
 		spin_lock_irq(client_list_lock);
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +2 -2
index b16b32797624..37010f290ba4 100644
@@ -780,9 +780,9 @@ int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
 			dev_info->high_va_offset = AMDGPU_GMC_HOLE_END;
 			dev_info->high_va_max = AMDGPU_GMC_HOLE_END | vm_size;
 		}
-		dev_info->virtual_address_alignment = max((int)PAGE_SIZE, AMDGPU_GPU_PAGE_SIZE);
+		dev_info->virtual_address_alignment = max_t(u32, PAGE_SIZE, AMDGPU_GPU_PAGE_SIZE);
 		dev_info->pte_fragment_size = (1 << adev->vm_manager.fragment_size) * AMDGPU_GPU_PAGE_SIZE;
-		dev_info->gart_page_size = AMDGPU_GPU_PAGE_SIZE;
+		dev_info->gart_page_size = max_t(u32, PAGE_SIZE, AMDGPU_GPU_PAGE_SIZE);
 		dev_info->cu_active_number = adev->gfx.cu_info.number;
 		dev_info->cu_ao_mask = adev->gfx.cu_info.ao_cu_mask;
 		dev_info->ce_ram_size = adev->gfx.ce_ram_size;
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +5 -5
index 0768c8686983..b24cb4473913 100644
@@ -2195,8 +2195,8 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
 	uint64_t eaddr;
 
 	/* validate the parameters */
-	if (saddr & AMDGPU_GPU_PAGE_MASK || offset & AMDGPU_GPU_PAGE_MASK ||
-	    size == 0 || size & AMDGPU_GPU_PAGE_MASK)
+	if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK ||
+	    size == 0 || size & ~PAGE_MASK)
 		return -EINVAL;
 
 	/* make sure object fit at this offset */
@@ -2261,8 +2261,8 @@ int amdgpu_vm_bo_replace_map(struct amdgpu_device *adev,
 	int r;
 
 	/* validate the parameters */
-	if (saddr & AMDGPU_GPU_PAGE_MASK || offset & AMDGPU_GPU_PAGE_MASK ||
-	    size == 0 || size & AMDGPU_GPU_PAGE_MASK)
+	if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK ||
+	    size == 0 || size & ~PAGE_MASK)
 		return -EINVAL;
 
 	/* make sure object fit at this offset */
@@ -2407,7 +2407,7 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
 			after->start = eaddr + 1;
 			after->last = tmp->last;
 			after->offset = tmp->offset;
-			after->offset += after->start - tmp->start;
+			after->offset += (after->start - tmp->start) << PAGE_SHIFT;
 			after->flags = tmp->flags;
 			after->bo_va = tmp->bo_va;
 			list_add(&after->list, &tmp->bo_va->invalids);
drivers/gpu/drm/amd/amdkfd/kfd_dbgdev.c +1 -1
index b258a3dae767..159add0f5aaa 100644
@@ -155,7 +155,7 @@ static int dbgdev_diq_submit_ib(struct kfd_dbgdev *dbgdev,
 
 	/* Wait till CP writes sync code: */
 	status = amdkfd_fence_wait_timeout(
-			(unsigned int *) rm_state,
+			rm_state,
 			QUEUESTATE__ACTIVE, 1500);
 
 	kfd_gtt_sa_free(dbgdev->dev, mem_obj);
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +3 -3
index e686ce2bf3b3..4598a9a58125 100644
@@ -1167,7 +1167,7 @@ static int start_cpsch(struct device_queue_manager *dqm)
 	if (retval)
 		goto fail_allocate_vidmem;
 
-	dqm->fence_addr = dqm->fence_mem->cpu_ptr;
+	dqm->fence_addr = (uint64_t *)dqm->fence_mem->cpu_ptr;
 	dqm->fence_gpu_addr = dqm->fence_mem->gpu_addr;
 
 	init_interrupts(dqm);
@@ -1340,8 +1340,8 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
 	return retval;
 }
 
-int amdkfd_fence_wait_timeout(unsigned int *fence_addr,
-				unsigned int fence_value,
+int amdkfd_fence_wait_timeout(uint64_t *fence_addr,
+				uint64_t fence_value,
 				unsigned int timeout_ms)
 {
 	unsigned long end_jiffies = msecs_to_jiffies(timeout_ms) + jiffies;
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h +1 -1
index 7351dd195274..45f815946554 100644
@@ -192,7 +192,7 @@ struct device_queue_manager {
 	uint16_t		vmid_pasid[VMID_NUM];
 	uint64_t		pipelines_addr;
 	uint64_t		fence_gpu_addr;
-	unsigned int		*fence_addr;
+	uint64_t		*fence_addr;
 	struct kfd_mem_obj	*fence_mem;
 	bool			active_runlist;
 	int			sched_policy;
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c +1 -1
index 5d541e0cc8ca..f71a7fa6680c 100644
@@ -347,7 +347,7 @@ int pm_send_runlist(struct packet_manager *pm, struct list_head *dqm_queues)
 }
 
 int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address,
-			uint32_t fence_value)
+			uint64_t fence_value)
 {
 	uint32_t *buffer, size;
 	int retval = 0;
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_v9.c +1 -1
index dfaf771a42e6..e3ba0cd3b6fa 100644
@@ -283,7 +283,7 @@ static int pm_unmap_queues_v9(struct packet_manager *pm, uint32_t *buffer,
 }
 
 static int pm_query_status_v9(struct packet_manager *pm, uint32_t *buffer,
-			uint64_t fence_address,	uint32_t fence_value)
+			uint64_t fence_address,	uint64_t fence_value)
 {
 	struct pm4_mes_query_status *packet;
 
drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c +1 -1
index a852e0d7d804..08442e7d9944 100644
@@ -263,7 +263,7 @@ static int pm_unmap_queues_vi(struct packet_manager *pm, uint32_t *buffer,
 }
 
 static int pm_query_status_vi(struct packet_manager *pm, uint32_t *buffer,
-			uint64_t fence_address,	uint32_t fence_value)
+			uint64_t fence_address,	uint64_t fence_value)
 {
 	struct pm4_mes_query_status *packet;
 
drivers/gpu/drm/amd/amdkfd/kfd_priv.h +4 -4
index 09599efa41fc..f304d1f8df5f 100644
@@ -1003,8 +1003,8 @@ int pqm_get_wave_state(struct process_queue_manager *pqm,
 		       u32 *ctl_stack_used_size,
 		       u32 *save_area_used_size);
 
-int amdkfd_fence_wait_timeout(unsigned int *fence_addr,
-			      unsigned int fence_value,
+int amdkfd_fence_wait_timeout(uint64_t *fence_addr,
+			      uint64_t fence_value,
 			      unsigned int timeout_ms);
 
 /* Packet Manager */
@@ -1040,7 +1040,7 @@ struct packet_manager_funcs {
 			uint32_t filter_param, bool reset,
 			unsigned int sdma_engine);
 	int (*query_status)(struct packet_manager *pm, uint32_t *buffer,
-			uint64_t fence_address,	uint32_t fence_value);
+			uint64_t fence_address,	uint64_t fence_value);
 	int (*release_mem)(uint64_t gpu_addr, uint32_t *buffer);
 
 	/* Packet sizes */
@@ -1062,7 +1062,7 @@ int pm_send_set_resources(struct packet_manager *pm,
 				struct scheduling_resources *res);
 int pm_send_runlist(struct packet_manager *pm, struct list_head *dqm_queues);
 int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address,
-				uint32_t fence_value);
+				uint64_t fence_value);
 
 int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type,
 			enum kfd_unmap_queues_filter mode,
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +2 -1
index 72cb67d50e4a..c9b143781105 100644
@@ -3330,7 +3330,8 @@ static int smu7_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
 
 	disable_mclk_switching_for_display = ((1 < hwmgr->display_config->num_display) &&
 						!hwmgr->display_config->multi_monitor_in_sync) ||
-						smu7_vblank_too_short(hwmgr, hwmgr->display_config->min_vblank_time);
+						(hwmgr->display_config->num_display &&
+						smu7_vblank_too_short(hwmgr, hwmgr->display_config->min_vblank_time));
 
 	disable_mclk_switching = disable_mclk_switching_for_frame_lock ||
 					 disable_mclk_switching_for_display;
drivers/gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c +5 -0
index 92ad2cdbae10..bf6e36419253 100644
@@ -388,10 +388,15 @@ static int vangogh_get_allowed_feature_mask(struct smu_context *smu,
 
 static bool vangogh_is_dpm_running(struct smu_context *smu)
 {
+	struct amdgpu_device *adev = smu->adev;
 	int ret = 0;
 	uint32_t feature_mask[2];
 	uint64_t feature_enabled;
 
+	/* we need to re-init after suspend so return false */
+	if (adev->in_suspend)
+		return false;
+
 	ret = smu_cmn_get_enabled_32_bits_mask(smu, feature_mask, 2);
 
 	if (ret)
drivers/gpu/drm/imx/imx-drm-core.c +1 -1
index d1a9841adeed..e6a88c8cbd69 100644
@@ -215,7 +215,7 @@ static int imx_drm_bind(struct device *dev)
 
 	ret = drmm_mode_config_init(drm);
 	if (ret)
-		return ret;
+		goto err_kms;
 
 	ret = drm_vblank_init(drm, MAX_CRTC);
 	if (ret)
drivers/gpu/drm/nouveau/nouveau_bo.c +8 -0
index f1c9a22083be..e05565f284dc 100644
@@ -551,6 +551,10 @@ nouveau_bo_sync_for_device(struct nouveau_bo *nvbo)
 
 	if (!ttm_dma)
 		return;
+	if (!ttm_dma->pages) {
+		NV_DEBUG(drm, "ttm_dma 0x%p: pages NULL\n", ttm_dma);
+		return;
+	}
 
 	/* Don't waste time looping if the object is coherent */
 	if (nvbo->force_coherent)
@@ -583,6 +587,10 @@ nouveau_bo_sync_for_cpu(struct nouveau_bo *nvbo)
 
 	if (!ttm_dma)
 		return;
+	if (!ttm_dma->pages) {
+		NV_DEBUG(drm, "ttm_dma 0x%p: pages NULL\n", ttm_dma);
+		return;
+	}
 
 	/* Don't waste time looping if the object is coherent */
 	if (nvbo->force_coherent)
drivers/gpu/drm/tegra/dc.c +8 -12
index 0ae3a025efe9..8eeef5017826 100644
@@ -2501,22 +2501,18 @@ static int tegra_dc_couple(struct tegra_dc *dc)
 	 * POWER_CONTROL registers during CRTC enabling.
 	 */
 	if (dc->soc->coupled_pm && dc->pipe == 1) {
-		u32 flags = DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_CONSUMER;
-		struct device_link *link;
-		struct device *partner;
+		struct device *companion;
+		struct tegra_dc *parent;
 
-		partner = driver_find_device(dc->dev->driver, NULL, NULL,
-					     tegra_dc_match_by_pipe);
-		if (!partner)
+		companion = driver_find_device(dc->dev->driver, NULL, (const void *)0,
+					       tegra_dc_match_by_pipe);
+		if (!companion)
 			return -EPROBE_DEFER;
 
-		link = device_link_add(dc->dev, partner, flags);
-		if (!link) {
-			dev_err(dc->dev, "failed to link controllers\n");
-			return -EINVAL;
-		}
+		parent = dev_get_drvdata(companion);
+		dc->client.parent = &parent->client;
 
-		dev_dbg(dc->dev, "coupled to %s\n", dev_name(partner));
+		dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));
 	}
 
 	return 0;
drivers/gpu/drm/tegra/sor.c +7 -0
index f02a035dda45..7b88261f57bb 100644
@@ -3115,6 +3115,12 @@ static int tegra_sor_init(struct host1x_client *client)
 	 * kernel is possible.
 	 */
 	if (sor->rst) {
+		err = pm_runtime_resume_and_get(sor->dev);
+		if (err < 0) {
+			dev_err(sor->dev, "failed to get runtime PM: %d\n", err);
+			return err;
+		}
+
 		err = reset_control_acquire(sor->rst);
 		if (err < 0) {
 			dev_err(sor->dev, "failed to acquire SOR reset: %d\n",
@@ -3148,6 +3154,7 @@ static int tegra_sor_init(struct host1x_client *client)
 		}
 
 		reset_control_release(sor->rst);
+		pm_runtime_put(sor->dev);
 	}
 
 	err = clk_prepare_enable(sor->clk_safe);
drivers/net/can/Makefile +1 -6
index 22164300122d..a2b4463d8480 100644
@@ -7,12 +7,7 @@ obj-$(CONFIG_CAN_VCAN)		+= vcan.o
 obj-$(CONFIG_CAN_VXCAN)		+= vxcan.o
 obj-$(CONFIG_CAN_SLCAN)		+= slcan.o
 
-obj-$(CONFIG_CAN_DEV)		+= can-dev.o
-can-dev-y			+= dev.o
-can-dev-y			+= rx-offload.o
-
-can-dev-$(CONFIG_CAN_LEDS)	+= led.o
-
+obj-y				+= dev/
 obj-y				+= rcar/
 obj-y				+= spi/
 obj-y				+= usb/
drivers/net/can/dev.c deleted +0 -1339

1,339 lines not on this page · raw message

drivers/net/can/dev/Makefile new file +7 -0
new file mode 100644
index 000000000000..cba92e6bcf6f
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0
+
+obj-$(CONFIG_CAN_DEV)		+= can-dev.o
+can-dev-y			+= dev.o
+can-dev-y			+= rx-offload.o
+
+can-dev-$(CONFIG_CAN_LEDS)	+= led.o
drivers/net/can/dev/dev.c new file +1341 -0

837 lines not on this page · raw message

drivers/net/can/dev/rx-offload.c new file +376 -0

376 lines not on this page · raw message

drivers/net/can/m_can/tcan4x5x.c +1 -1
index 4920de09ffb7..aeac3ce7bfc8 100644

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

drivers/net/can/rx-offload.c deleted +0 -376

376 lines not on this page · raw message

drivers/net/can/slcan.c +3 -1
index a1bd1be09548..30c8d53c9745 100644

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

drivers/net/can/vcan.c +1 -1
index 39ca14b0585d..067705e2850b 100644

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

drivers/net/can/vxcan.c +5 -1
index f9a524c5f6d6..8861a7d875e7 100644

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

drivers/net/ethernet/aquantia/atlantic/aq_main.c +3 -1
index 8f70a3909929..4af0cd9530de 100644

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

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 -2
index 358119d98358..e6f9b5345b70 100644

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

drivers/net/ipa/gsi.c +12 -16
index b77f5fef7aec..febfac75dd6a 100644

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

drivers/net/ipa/gsi.h +3 -2
index 96c9aed397aa..696c9825834a 100644

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

drivers/net/ipa/gsi_reg.h +13 -18
index 0e138bbd8205..1622d8cf8dea 100644

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

drivers/net/ipa/ipa_cmd.c +24 -8
index 002e51448510..eb65a11e33ea 100644

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

drivers/net/netdevsim/dev.c +21 -19
index 816af1f55e2c..dbeb29fa16e8 100644

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

drivers/net/wan/lmc/lmc_main.c +2 -0
index 93c7e8502845..ebb568f9bc66 100644

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

drivers/net/wireless/ath/ath10k/wmi-tlv.c +5 -2
index e6135795719a..e7072fc4f487 100644

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

drivers/net/wireless/ath/ath11k/mac.c +5 -2
index 54bdef33f3f8..55ecf7f43735 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +5 -2
index 0ee421f30aa2..23e6422c2251 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/trans.c +5 -6
index ab93a848a466..e71bc97cb40e 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c +2 -3
index 8757246a90d5..b9afd9b04042 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/tx.c +9 -13
index 83f4964f3cb2..689f51968049 100644

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

drivers/net/wireless/realtek/rtw88/rtw8821c.c +8 -8
index fbfd85439d1f..88fb49486ee0 100644

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

drivers/nvme/target/tcp.c +1 -1
index 8b0485ada315..d658c6e8263a 100644

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

drivers/pinctrl/pinctrl-microchip-sgpio.c +1 -1
index f35edb0eac40..c12fa57ebd12 100644

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

drivers/pinctrl/pinctrl-rockchip.c +8 -5
index aa1a1c850d05..53a0badc6b03 100644

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

drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +1 -1
index 369ee20a7ea9..2f19ab4db720 100644

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

drivers/pinctrl/qcom/pinctrl-sc7280.c +8 -8
index 8daccd530285..9d41abfca37e 100644

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

drivers/pinctrl/qcom/pinctrl-sdx55.c +1 -1
index 2b5b0e2b03ad..5aaf57b40407 100644

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

drivers/scsi/qla2xxx/qla_target.h +1 -1
index 10e5e6c8087d..01620f3eab39 100644

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

drivers/scsi/st.c +1 -1
index 43f7624508a9..8b10fa4e381a 100644

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

drivers/soc/qcom/qcom-geni-se.c +0 -74

74 lines not on this page · raw message

drivers/staging/comedi/drivers/cb_pcidas.c +1 -1
index d740c4782775..2f20bd56ec6c 100644

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

drivers/staging/comedi/drivers/cb_pcidas64.c +1 -1
index fa987bb0e7cd..6d3ba399a7f0 100644

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

drivers/staging/rtl8192e/rtllib.h +1 -1
index b84f00b8d18b..4cabaf21c1ca 100644

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

drivers/staging/rtl8192e/rtllib_rx.c +1 -1
index d31b5e1c8df4..63752233e551 100644

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

drivers/thermal/thermal_sysfs.c +3 -0
index 0866e949339b..9b73532464e5 100644

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

drivers/tty/serial/qcom_geni_serial.c +0 -7
index 291649f02821..0d85b55ea823 100644

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

drivers/usb/class/cdc-acm.c +42 -19

61 lines not on this page · raw message

drivers/usb/core/quirks.c +4 -0
index 6ade3daf7858..76ac5d6555ae 100644

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

drivers/usb/dwc2/hcd.c +3 -2
index fc3269f5faf1..1a9789ec5847 100644

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

drivers/usb/dwc3/dwc3-pci.c +2 -0
index bae6a70664c8..598daed8086f 100644

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

drivers/usb/dwc3/dwc3-qcom.c +3 -0
index c00c4fa139b8..8bd077fb1190 100644

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

drivers/usb/dwc3/gadget.c +4 -4
index 2a86ad4b12b3..65ff41e3a18e 100644

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

drivers/usb/gadget/udc/amd5536udc_pci.c +5 -5
index 8d387e0e4d91..c80f9bd51b75 100644

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

drivers/usb/host/xhci-mtk.c +9 -1
index fe010cc61f19..2f27dc0d9c6b 100644

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

drivers/usb/musb/musb_core.c +8 -4
index 1cd87729ba60..fc0457db62e1 100644

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

drivers/usb/usbip/vhci_hcd.c +2 -0
index 3209b5ddd30c..a20a8380ca0c 100644

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

drivers/vfio/pci/Kconfig +1 -1
index 40a223381ab6..0f28bf99efeb 100644

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

drivers/vhost/vhost.c +1 -1
index a262e12c6dc2..5ccb0705beae 100644

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

drivers/video/fbdev/core/fbcon.c +3 -0
index bf61598bf1c3..35fdec88d38d 100644

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

drivers/video/fbdev/hyperv_fb.c +0 -3
index c8b0ae676809..4dc9077dd2ac 100644

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

fs/ext4/balloc.c +26 -12
index f45f9feebe59..74a5172c2d83 100644

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

fs/ext4/ext4.h +1 -0
index e5c81593d972..9ad539ee4196 100644

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

fs/ext4/inode.c +3 -3
index ed498538a749..3b9f7bf4045b 100644

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

fs/ext4/namei.c +9 -9
index 078f26f4b56e..9cc9e6c1d582 100644

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

fs/ext4/super.c +5 -0
index a1353b0825ea..c8cc8175b376 100644

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

fs/ext4/sysfs.c +7 -0
index 075aa3a19ff5..a3d08276d441 100644

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

fs/fuse/virtio_fs.c +8 -1
index 8868ac31a3c0..4ee6f734ba83 100644

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

fs/io_uring.c +32 -9

41 lines not on this page · raw message

fs/iomap/swapfile.c +10 -0
index a648dbf6991e..a5e478de1417 100644

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

fs/nfsd/Kconfig +1 -0
index dbbc583d6273..248f1459c039 100644

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

fs/nfsd/nfs4callback.c +1 -0
index 052be5bf9ef5..7325592b456e 100644

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

fs/reiserfs/xattr.h +1 -1
index c764352447ba..81bec2c80b25 100644

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

include/drm/ttm/ttm_bo_api.h +4 -2
index 2564e66e67d7..562cb5e45524 100644

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

include/linux/acpi.h +8 -1
index b20568c44001..2f7508c3c2d6 100644

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

include/linux/can/can-ml.h +12 -0
index 2f5d731ae251..8afa92d15a66 100644

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

include/linux/extcon.h +23 -0
index fd183fb9c20f..0c19010da77f 100644

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

include/linux/firmware/intel/stratix10-svc-client.h +1 -1
index a93d85932eb9..f843c6a10cf3 100644

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

include/linux/netdevice.h +33 -1
index fb79ac497794..688c7477ec0a 100644

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

include/linux/qcom-geni-se.h +0 -2
index ec2ad4b0fe14..c4fdb4463f7d 100644

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

include/linux/ww_mutex.h +3 -2
index 850424e5d030..6ecf2a0220db 100644

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

kernel/locking/mutex.c +14 -11
index 5352ce50a97e..2c25b830203c 100644

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

kernel/reboot.c +0 -2
index eb1b15850761..a6ad5eb2fa73 100644

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

kernel/static_call.c +4 -10
index 49efbdc5b480..f59089a12231 100644

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

kernel/trace/trace.c +2 -1
index b5815a022ecc..c27b05aeb7d2 100644

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

mm/memory.c +1 -1
index 97e1d045f236..bf0cbc8d5617 100644

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

net/9p/client.c +0 -4
index 4f62f299da0c..0a9019da18f3 100644

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

net/appletalk/ddp.c +21 -12
index ca1a0d07a087..ebda397fa95a 100644

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

net/can/af_can.c +2 -32
index 837bb8af0ec3..cce2af10eb3e 100644

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

net/can/j1939/main.c +8 -14
index bb914d8b4216..da3a7a7bcff2 100644

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

net/can/j1939/socket.c +4 -9
index f23966526a88..56aa66147d5a 100644

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

net/can/proc.c +13 -6
index 5ea8695f507e..b15760b5c1cc 100644

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

net/core/filter.c +4 -8
index ee665720a41a..8e4cc25cc98e 100644

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

net/core/flow_dissector.c +3 -3
index 7a06d4301617..180be5102efc 100644

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

net/mptcp/options.c +1 -2
index 37ef0bf098f6..9e86c601093f 100644

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

net/mptcp/protocol.c +91 -20

111 lines not on this page · raw message

net/mptcp/protocol.h +4 -0
index c374345ad134..62288836d053 100644

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

net/mptcp/subflow.c +59 -24

83 lines not on this page · raw message

net/sunrpc/auth_gss/svcauth_gss.c +7 -4
index bd4678db9d76..6dff64374bfe 100644

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

sound/pci/hda/hda_intel.c +8 -0
index 253d538251ae..89a80beab587 100644

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

sound/pci/hda/patch_realtek.c +3 -1
index 316b9b4ccb32..58946d069ee5 100644

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

sound/soc/codecs/cs42l42.c +34 -40

74 lines not on this page · raw message

sound/soc/codecs/cs42l42.h +7 -6
index 9e3cc528dcff..866d7c873e3c 100644

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

sound/soc/codecs/es8316.c +2 -7
index f9ec5cf82599..ec2f11ff8a84 100644

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

sound/soc/codecs/rt1015.c +1 -0
index 32e6bcf763d1..4607039a16e7 100644

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

sound/soc/codecs/rt5640.c +2 -2
index 1414ad15d01c..a5674c227b3a 100644

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

sound/soc/codecs/rt5651.c +2 -2
index d198e191fb0c..e59fdc81dbd4 100644

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

sound/soc/codecs/rt5659.c +5 -0
index 41e5917b16a5..91a4ef7f620c 100644

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

sound/soc/codecs/rt711.c +8 -0
index 85f744184a60..047f4e677d78 100644

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

sound/soc/codecs/sgtl5000.c +1 -1
index 4d6ff8114622..4c0e87e22b97 100644

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

sound/soc/mediatek/mt8192/mt8192-dai-tdm.c +3 -1
index 8383536b7ae0..504293de2c0d 100644

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

sound/soc/mediatek/mt8192/mt8192-reg.h +5 -3
index 562f25c79c34..b9fb80d4afec 100644

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

sound/soc/soc-core.c +4 -0
index f6d4e99b590c..0cffc9527e28 100644

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

sound/usb/quirks.c +1 -0
index d3001fb18141..176437a441e6 100644

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

tools/testing/selftests/net/forwarding/tc_flower.sh +37 -1
index 058c746ee300..b11d8e6b5bc1 100755

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.