Linux 5.15.66
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.66 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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 | 5 arch/powerpc/kernel/systbl.S | 1 arch/riscv/mm/pageattr.c | 4 arch/s390/include/asm/hugetlb.h | 6 arch/s390/kernel/vmlinux.lds.S | 1 arch/x86/kvm/vmx/vmx.c | 3 arch/x86/kvm/x86.c | 25 drivers/android/binder.c | 12 drivers/android/binder_alloc.c | 4 drivers/base/dd.c | 10 drivers/block/xen-blkback/common.h | 3 drivers/block/xen-blkback/xenbus.c | 6 drivers/block/xen-blkfront.c | 20 drivers/clk/bcm/clk-raspberrypi.c | 13 drivers/clk/clk.c | 3 drivers/gpio/gpio-pca953x.c | 8 drivers/gpu/drm/i915/Makefile | 1 drivers/gpu/drm/i915/display/g4x_dp.c | 2 drivers/gpu/drm/i915/display/icl_dsi.c | 1 drivers/gpu/drm/i915/display/intel_backlight.c | 1776 +++++++++++++ drivers/gpu/drm/i915/display/intel_backlight.h | 51 drivers/gpu/drm/i915/display/intel_connector.c | 4 drivers/gpu/drm/i915/display/intel_ddi.c | 2 drivers/gpu/drm/i915/display/intel_dp.c | 1 drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 2 drivers/gpu/drm/i915/display/intel_lvds.c | 1 drivers/gpu/drm/i915/display/intel_opregion.c | 3 drivers/gpu/drm/i915/display/intel_panel.c | 1767 ------------ drivers/gpu/drm/i915/display/intel_panel.h | 34 drivers/gpu/drm/i915/display/intel_quirks.c | 3 drivers/gpu/drm/i915/display/vlv_dsi.c | 1 drivers/gpu/drm/i915/gvt/handlers.c | 2 drivers/gpu/drm/i915/intel_pm.c | 8 drivers/gpu/drm/msm/dp/dp_ctrl.c | 2 drivers/gpu/drm/msm/dsi/dsi_cfg.c | 4 drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 drivers/hwmon/gpio-fan.c | 3 drivers/iio/adc/ad7292.c | 4 drivers/iio/adc/mcp3911.c | 19 drivers/input/joystick/iforce/iforce-serio.c | 6 drivers/input/joystick/iforce/iforce-usb.c | 8 drivers/input/joystick/iforce/iforce.h | 6 drivers/input/misc/rk805-pwrkey.c | 1 drivers/media/rc/mceusb.c | 35 drivers/misc/fastrpc.c | 12 drivers/mmc/core/sd.c | 46 drivers/net/dsa/xrs700x/xrs700x.c | 5 drivers/net/ethernet/cortina/gemini.c | 24 drivers/net/ethernet/google/gve/gve_ethtool.c | 16 drivers/net/ethernet/google/gve/gve_main.c | 12 drivers/net/ethernet/huawei/hinic/hinic_rx.c | 4 drivers/net/ethernet/huawei/hinic/hinic_tx.c | 4 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h | 4 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 122 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h | 2 drivers/net/ethernet/microchip/sparx5/sparx5_packet.c | 2 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 8 drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c | 8 drivers/net/ethernet/rocker/rocker_ofdpa.c | 2 drivers/net/ethernet/smsc/smsc911x.c | 6 drivers/net/ieee802154/adf7242.c | 3 drivers/net/netdevsim/netdev.c | 4 drivers/platform/x86/pmc_atom.c | 2 drivers/soundwire/qcom.c | 6 drivers/staging/r8188eu/os_dep/os_intfs.c | 1 drivers/staging/rtl8712/rtl8712_cmd.c | 36 drivers/thunderbolt/ctl.c | 2 drivers/tty/n_gsm.c | 3 drivers/tty/serial/fsl_lpuart.c | 5 drivers/tty/vt/vt.c | 12 drivers/usb/cdns3/cdns3-gadget.c | 4 drivers/usb/class/cdc-acm.c | 3 drivers/usb/core/hub.c | 10 drivers/usb/dwc2/platform.c | 8 drivers/usb/dwc3/core.c | 19 drivers/usb/dwc3/dwc3-pci.c | 4 drivers/usb/dwc3/dwc3-qcom.c | 14 drivers/usb/dwc3/host.c | 11 drivers/usb/gadget/function/storage_common.c | 6 drivers/usb/host/xhci-hub.c | 13 drivers/usb/host/xhci-mtk-sch.c | 15 drivers/usb/host/xhci.c | 19 drivers/usb/host/xhci.h | 4 drivers/usb/musb/Kconfig | 2 drivers/usb/serial/ch341.c | 16 drivers/usb/serial/cp210x.c | 1 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 6 drivers/usb/serial/option.c | 15 drivers/usb/storage/unusual_devs.h | 7 drivers/usb/typec/altmodes/displayport.c | 4 drivers/usb/typec/mux/intel_pmc_mux.c | 9 drivers/usb/typec/tcpm/tcpm.c | 7 drivers/xen/grant-table.c | 3 fs/cifs/smb2pdu.c | 12 include/linux/platform_data/x86/pmc_atom.h | 6 include/linux/usb.h | 2 include/linux/usb/typec_dp.h | 5 kernel/bpf/cgroup.c | 4 kernel/bpf/syscall.c | 2 mm/pagewalk.c | 21 mm/ptdump.c | 4 net/core/skmsg.c | 4 net/ipv4/fib_frontend.c | 4 net/ipv4/tcp_input.c | 4 net/kcm/kcmsock.c | 15 net/mac80211/ibss.c | 4 net/mac80211/scan.c | 11 net/mac80211/sta_info.c | 8 net/mac802154/rx.c | 2 net/mpls/af_mpls.c | 4 net/openvswitch/datapath.c | 4 net/sched/sch_generic.c | 31 net/sched/sch_tbf.c | 4 net/smc/af_smc.c | 1 net/wireless/debugfs.c | 3 scripts/Makefile.modfinal | 2 scripts/link-vmlinux.sh | 11 scripts/pahole-flags.sh | 24 sound/core/seq/oss/seq_oss_midi.c | 2 sound/core/seq/seq_clientmgr.c | 12 sound/hda/intel-nhlt.c | 25 sound/pci/hda/patch_realtek.c | 63 123 files changed, 2549 insertions(+), 2171 deletions(-)
Adrian Hunter (2):
mmc: core: Fix UHS-I SD 1.8V workaround branch
mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure
Alan Stern (2):
media: mceusb: Use new usb_control_msg_*() routines
USB: core: Prevent nested device-reset calls
Andrey Zhadchenko (1):
openvswitch: fix memory leak at failed datapath creation
Andy Shevchenko (1):
platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask
Armin Wolf (1):
hwmon: (gpio-fan) Fix array out of bounds access
Arnd Bergmann (1):
musb: fix USB_MUSB_TUSB6010 dependency
Arun R Murthy (1):
drm/i915/display: avoid warnings when registering dual panel backlight
Badhri Jagan Sridharan (1):
usb: typec: tcpm: Return ENOTSUPP for power supply prop writes
Carlos Llamas (2):
binder: fix UAF of ref->proc caused by race condition
binder: fix alloc->vma_vm_mm null-ptr dereferenceCasper Andersson (1):
net: sparx5: fix handling uneven length packets in manual extraction
Chen-Yu Tsai (2):
clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops
clk: core: Fix runtime PM sequence in clk_core_unprepare()
Christophe JAILLET (1):
clk: bcm: rpi: Use correct order for the parameters of devm_kcalloc()
Chunfeng Yun (2):
usb: xhci-mtk: relax TT periodic bandwidth allocation
usb: xhci-mtk: fix bandwidth release issue
Colin Ian King (1):
drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported"
Cong Wang (1):
kcm: fix strp_init() order and cleanup
Dan Carpenter (3):
wifi: cfg80211: debugfs: fix return type in ht40allow_map_read()
staging: rtl8712: fix use after free bugs
xen/grants: prevent integer overflow in gnttab_dma_alloc_pages()
David Thompson (1):
mlxbf_gige: compute MDIO period based on i1clk
Diego Santa Cruz (1):
drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk
Douglas Anderson (2):
drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg drm/msm/dsi: Fix number of regulators for SDM660
Duoming Zhou (1):
ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler
Enzo Matsumiya (1):
cifs: fix small mempool leak in SMB2_negotiate()
Eric Dumazet (1):
tcp: annotate data-race around challenge_timestamp
Florian Fainelli (1):
net: smsc911x: Stop and start PHY during suspend and resume
Gerald Schaefer (1):
s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages
Greg Kroah-Hartman (1):
Linux 5.15.66
Grzegorz Szymaszek (1):
staging: r8188eu: add firmware dependency
Haibo Chen (1):
gpio: pca953x: Add mutex_lock for regcache sync in PM
Heikki Krogerus (1):
usb: dwc3: pci: Add support for Intel Raptor Lake
Heiner Kallweit (1):
usb: dwc2: fix wrong order of phy_power_on and phy_init
Helge Deller (1):
vt: Clear selection before changing the font
Isaac J. Manjarres (1):
driver core: Don't probe devices after bus_type.match() probe deferral
Jakub Kicinski (1):
Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb"
Jani Nikula (1):
drm/i915/backlight: extract backlight code to a separate file
Jim Mattson (2):
KVM: VMX: Heed the 'msr' argument in msr_write_intercepted()
KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES
Jiri Olsa (1):
kbuild: Unify options for BTF generation for vmlinux and modules
Johan Hovold (8):
misc: fastrpc: fix memory corruption on probe
misc: fastrpc: fix memory corruption on open
USB: serial: cp210x: add Decagon UCA device id
usb: dwc3: fix PHY disable sequence
usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup
usb: dwc3: disable USB core PHY management
USB: serial: ch341: fix lost character on LCR updates
USB: serial: ch341: fix disabled rx timer on older devices
Josh Poimboeuf (1):
s390: fix nospec table alignments
Kacper Michajłow (1):
ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298
Krishna Kurapati (1):
usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS
Kuogee Hsieh (1):
drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4
Lin Ma (1):
ieee802154/adf7242: defer destroy_workqueue call
Liu Jian (1):
skmsg: Fix wrong last sg check in sk_msg_recvmsg()
Marcus Folkesson (2):
iio: adc: mcp3911: make use of the sign bit
iio: adc: mcp3911: use correct formula for AD conversion
Martin Rodriguez Reboredo (1):
kbuild: Add skip_encoding_btf_enum64 option to pahole
Masahiro Yamada (1):
powerpc: align syscall table for ppc32
Mathias Nyman (2):
Revert "xhci: turn off port power in shutdown"
xhci: Add grace period after xHC start to prevent premature runtime suspend.
Matti Vaittinen (1):
iio: ad7292: Prevent regulator double disable
Mazin Al Haddad (1):
tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf()
Mika Westerberg (1):
thunderbolt: Use the actual buffer in tb_async_error()
Miquel Raynal (1):
net: mac802154: Fix a condition in the receive path
Nicolas Dichtel (1):
ip: fix triggering of 'icmp redirect'
Niek Nooijens (1):
USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id
Pablo Sun (1):
usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
Pawel Laszczak (2):
usb: cdns3: fix issue with rearming ISO OUT endpoint
usb: cdns3: fix incorrect handling TRB_SMM flag for ISOC transfer
Peter Robinson (1):
Input: rk805-pwrkey - fix module autoloading
Peter Ujfalusi (1):
ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array
Pierre-Louis Bossart (1):
ALSA: hda: intel-nhlt: remove use of __func__ in dev_dbg
Pu Lehui (1):
bpf, cgroup: Fix kernel BUG in purge_effective_progs
Sebastian Andrzej Siewior (2):
net: dsa: xrs700x: Use irqsave variant for u64 stats update
net: Use u64_stats_fetch_begin_irq() for stats fetch.
SeongJae Park (3):
xen-blkback: Advertise feature-persistent as user requested
xen-blkfront: Advertise feature-persistent as user requested
xen-blkfront: Cache feature_persistent value before advertisement
Shenwei Wang (1):
serial: fsl_lpuart: RS485 RTS polariy is inverse
Sherry Sun (1):
tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete
Siddh Raman Pant (2):
wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected
wifi: mac80211: Fix UAF in ieee80211_scan_rx()
Slark Xiao (1):
USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode
Srinivas Kandagatla (1):
soundwire: qcom: fix device status array range
Stefan Wahren (3):
clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate
clk: bcm: rpi: Prevent out-of-bounds access
clk: bcm: rpi: Add missing newline
Stephen Boyd (1):
Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops"
Steven Price (1):
mm: pagewalk: Fix race between unmap and page walker
Takashi Iwai (2):
ALSA: seq: oss: Fix data-race for max_midi_devs access
ALSA: seq: Fix data-race at module auto-loading
Tetsuo Handa (1):
Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag
Thierry GUIBERT (1):
USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020)
Toke Høiland-Jørgensen (1):
sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb
Utkarsh Patel (1):
usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device
Ville Syrjälä (1):
drm/i915: Skip wm/ddb readout for disabled pipes
Wang Hai (1):
net/sched: fix netdevice reference leaks in attach_default_qdiscs()
Witold Lipieta (1):
usb-storage: Add ignore-residue quirk for NXP PN7462AU
Yacan Liu (1):
net/smc: Remove redundant refcount increase
Yan Xinyu (1):
USB: serial: option: add support for OPPO R11 diag port
YiFei Zhu (1):
bpf: Restrict bpf_sys_bpf to CAP_PERFMON
Yonglin Tan (1):
USB: serial: option: add Quectel EM060K modem
Zhengchao Shao (1):
net: sched: tbf: don't call qdisc_put() while holding tree lock
sunliming (1):
drm/msm/dsi: fix the inconsistent indenting
Greg Kroah-Hartman
maintainerMakefile +4 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 65 +SUBLEVEL = 66 EXTRAVERSION = NAME = Trick or Treat
@@ -480,6 +480,8 @@ LZ4 = lz4c XZ = xz ZSTD = zstd +PAHOLE_FLAGS = $(shell PAHOLE=$(PAHOLE) $(srctree)/scripts/pahole-flags.sh) + CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF) NOSTDINC_FLAGS :=
@@ -534,6 +536,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL +export PAHOLE_FLAGS # Files to ignore in find ... statements
arch/powerpc/kernel/systbl.S +1 -0
@@ -18,6 +18,7 @@ .p2align 3 #define __SYSCALL(nr, entry) .8byte entry #else + .p2align 2 #define __SYSCALL(nr, entry) .long entry #endif
arch/riscv/mm/pageattr.c +2 -2
@@ -118,10 +118,10 @@ static int __set_memory(unsigned long addr, int numpages, pgprot_t set_mask,if (!numpages)return 0 ; -mmap_read_lock (&init_mm); +mmap_write_lock (&init_mm); ret =walk_page_range_novma (&init_mm, start, end, &pageattr_ops,NULL , &masks); -mmap_read_unlock (&init_mm); +mmap_write_unlock (&init_mm);flush_tlb_kernel_range (start, end);
arch/s390/include/asm/hugetlb.h +4 -2
@@ -28,9 +28,11 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm,static inline int prepare_hugepage_range (struct file *file,unsigned long addr,unsigned long len) { -if (len & ~HPAGE_MASK ) +struct hstate *h =hstate_file (file); + +if (len & ~huge_page_mask (h))return -EINVAL ; -if (addr & ~HPAGE_MASK ) +if (addr & ~huge_page_mask (h))return -EINVAL ;return 0 ; }
arch/s390/kernel/vmlinux.lds.S +1 -0
@@ -132,6 +132,7 @@ SECTIONS /* * Table with the patch locations to undo expolines */ + . = ALIGN(4); .nospec_call_table : { __nospec_call_start = . ; *(.s390_indirect*)
arch/x86/kvm/vmx/vmx.c +1 -2
@@ -831,8 +831,7 @@ static bool msr_write_intercepted(struct vcpu_vmx *vmx, u32 msr)if (!(exec_controls_get (vmx) &CPU_BASED_USE_MSR_BITMAPS ))return true; -return vmx_test_msr_bitmap_write (vmx->loaded_vmcs->msr_bitmap, -MSR_IA32_SPEC_CTRL ); +return vmx_test_msr_bitmap_write (vmx->loaded_vmcs->msr_bitmap, msr); }unsigned int __vmx_vcpu_run_flags (struct vcpu_vmx *vmx)
arch/x86/kvm/x86.c +21 -4
@@ -1465,12 +1465,32 @@ static const u32 msr_based_features_all[] = {static u32 msr_based_features[ARRAY_SIZE (msr_based_features_all)];static unsigned int num_msr_based_features; +/* +* Some IA32_ARCH_CAPABILITIES bits have dependencies on MSRs that KVM +* does not yet virtualize. These include: +* 10 - MISC_PACKAGE_CTRLS +* 11 - ENERGY_FILTERING_CTL +* 12 - DOITM +* 18 - FB_CLEAR_CTRL +* 21 - XAPIC_DISABLE_STATUS +* 23 - OVERCLOCKING_STATUS +*/ + +#define KVM_SUPPORTED_ARCH_CAP \ + (ARCH_CAP_RDCL_NO | ARCH_CAP_IBRS_ALL | ARCH_CAP_RSBA | \ + ARCH_CAP_SKIP_VMENTRY_L1DFLUSH | ARCH_CAP_SSB_NO | ARCH_CAP_MDS_NO | \ + ARCH_CAP_PSCHANGE_MC_NO | ARCH_CAP_TSX_CTRL_MSR | ARCH_CAP_TAA_NO | \ + ARCH_CAP_SBDR_SSDP_NO | ARCH_CAP_FBSDP_NO | ARCH_CAP_PSDP_NO | \ + ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO) +static u64 kvm_get_arch_capabilities (void ) {u64 data =0 ; -if (boot_cpu_has (X86_FEATURE_ARCH_CAPABILITIES )) +if (boot_cpu_has (X86_FEATURE_ARCH_CAPABILITIES )) {rdmsrl (MSR_IA32_ARCH_CAPABILITIES , data); + data &=KVM_SUPPORTED_ARCH_CAP ; + }/* * If nx_huge_pages is enabled, KVM's shadow paging will ensure that
@@ -1518,9 +1538,6 @@ static u64 kvm_get_arch_capabilities(void)*/ } -/* Guests don't need to know "Fill buffer clear control" exists */ - data &= ~ARCH_CAP_FB_CLEAR_CTRL ; -return data; }
drivers/android/binder.c +12 -0
@@ -1358,6 +1358,18 @@ static int binder_inc_ref_for_node(struct binder_proc *proc, } ret =binder_inc_ref_olocked (ref, strong, target_list); *rdata = ref->data; +if (ret && ref == new_ref) { +/* +* Cleanup the failed reference here as the target +* could now be dead and have already released its +* references by now. Calling on the new reference +* with strong=0 and a tmp_refs will not decrement +* the node. The new_ref gets kfree'd below. +*/ +binder_cleanup_ref_olocked (new_ref); + ref =NULL ; + } +binder_proc_unlock (proc);if (new_ref && ref != new_ref)/*
drivers/android/binder_alloc.c +2 -2
@@ -322,7 +322,6 @@ static inline void binder_alloc_set_vma(struct binder_alloc *alloc,*/ if (vma) { vm_start = vma->vm_start; - alloc->vma_vm_mm = vma->vm_mm;mmap_assert_write_locked (alloc->vma_vm_mm); }else {mmap_assert_locked (alloc->vma_vm_mm);
@@ -795,7 +794,6 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,binder_insert_free_buffer (alloc, buffer); alloc->free_async_space = alloc->buffer_size /2 ;binder_alloc_set_vma (alloc, vma); -mmgrab (alloc->vma_vm_mm);return 0 ;
@@ -1095,6 +1093,8 @@ static struct shrinker binder_shrinker = {void binder_alloc_init (struct binder_alloc *alloc) { alloc->pid = current->group_leader->pid; + alloc->vma_vm_mm = current->mm; +mmgrab (alloc->vma_vm_mm);mutex_init (&alloc->mutex);INIT_LIST_HEAD (&alloc->buffers); }
drivers/base/dd.c +10 -0
@@ -877,6 +877,11 @@ static int __device_attach_driver(struct device_driver *drv, void *_data)dev_dbg (dev,"Device match requests probe deferral\n" ); dev->can_match = true;driver_deferred_probe_add (dev); +/* +* Device can't match with a driver right now, so don't attempt +* to match or bind with other drivers on the bus. +*/ +return ret; }else if (ret <0 ) {dev_dbg (dev,"Bus failed to match device: %d\n" , ret);return ret;
@@ -1115,6 +1120,11 @@ static int __driver_attach(struct device *dev, void *data)dev_dbg (dev,"Device match requests probe deferral\n" ); dev->can_match = true;driver_deferred_probe_add (dev); +/* +* Driver could not match with device, but may match with +* another device on the bus. +*/ +return 0 ; }else if (ret <0 ) {dev_dbg (dev,"Bus failed to match device: %d\n" , ret);return ret;
drivers/block/xen-blkback/common.h +3 -0
@@ -226,6 +226,9 @@ struct xen_vbd {sector_t size; unsigned int flush_support:1; unsigned int discard_secure:1; +/* Connect-time cached feature_persistent parameter value */ + unsigned int feature_gnt_persistent_parm:1; +/* Persistent grants feature negotiation result */ unsigned int feature_gnt_persistent:1; unsigned int overflow_max_grants:1; };
drivers/block/xen-blkback/xenbus.c +4 -2
@@ -910,7 +910,7 @@ static void connect(struct backend_info *be)xen_blkbk_barrier (xbt, be, be->blkif->vbd.flush_support); err =xenbus_printf (xbt, dev->nodename,"feature-persistent" ,"%u" , - be->blkif->vbd.feature_gnt_persistent); + be->blkif->vbd.feature_gnt_persistent_parm);if (err) {xenbus_dev_fatal (dev, err,"writing %s/feature-persistent" , dev->nodename);
@@ -1088,7 +1088,9 @@ static int connect_ring(struct backend_info *be)return -ENOSYS ; } - blkif->vbd.feature_gnt_persistent = feature_persistent && + blkif->vbd.feature_gnt_persistent_parm = feature_persistent; + blkif->vbd.feature_gnt_persistent = + blkif->vbd.feature_gnt_persistent_parm &&xenbus_read_unsigned (dev->otherend,"feature-persistent" ,0 ); blkif->vbd.overflow_max_grants =0 ;
drivers/block/xen-blkfront.c +12 -8
@@ -212,6 +212,9 @@ struct blkfront_info unsigned int feature_fua:1; unsigned int feature_discard:1; unsigned int feature_secdiscard:1; +/* Connect-time cached feature_persistent parameter */ + unsigned int feature_persistent_parm:1; +/* Persistent grants feature negotiation result */ unsigned int feature_persistent:1; unsigned int bounce:1;unsigned int discard_granularity;
@@ -1782,6 +1785,12 @@ static int write_per_ring_nodes(struct xenbus_transaction xbt,return err; } +/* Enable the persistent grants feature. */ +static bool feature_persistent = true; +module_param (feature_persistent, bool,0644 ); +MODULE_PARM_DESC (feature_persistent, +"Enables the persistent grants feature" ); +/* Common code used when first setting up, and when resuming. */ static int talk_to_blkback (struct xenbus_device *dev,struct blkfront_info *info)
@@ -1873,8 +1882,9 @@ static int talk_to_blkback(struct xenbus_device *dev, message ="writing protocol" ; goto abort_transaction; } + info->feature_persistent_parm = feature_persistent; err =xenbus_printf (xbt, dev->nodename,"feature-persistent" ,"%u" , - info->feature_persistent); + info->feature_persistent_parm);if (err)dev_warn (&dev->dev,"writing persistent grants feature to xenbus" );
@@ -1942,12 +1952,6 @@ static int negotiate_mq(struct blkfront_info *info)return 0 ; } -/* Enable the persistent grants feature. */ -static bool feature_persistent = true; -module_param (feature_persistent, bool,0644 ); -MODULE_PARM_DESC (feature_persistent, -"Enables the persistent grants feature" ); -/* * Entry point to this code when a new device is created. Allocate the basic * structures and the ring buffer for communication with the backend, and
@@ -2307,7 +2311,7 @@ static void blkfront_gather_backend_features(struct blkfront_info *info)if (xenbus_read_unsigned (info->xbdev->otherend,"feature-discard" ,0 ))blkfront_setup_discard (info); -if (feature_persistent) +if (info->feature_persistent_parm) info->feature_persistent = !!xenbus_read_unsigned (info->xbdev->otherend,"feature-persistent" ,0 );
drivers/clk/bcm/clk-raspberrypi.c +9 -4
@@ -139,7 +139,7 @@ static unsigned long raspberrypi_fw_get_rate(struct clk_hw *hw, ret =raspberrypi_clock_property (rpi->firmware, data,RPI_FIRMWARE_GET_CLOCK_RATE , &val);if (ret) -return ret; +return 0 ;return val; }
@@ -156,7 +156,7 @@ static int raspberrypi_fw_set_rate(struct clk_hw *hw, unsigned long rate, ret =raspberrypi_clock_property (rpi->firmware, data,RPI_FIRMWARE_SET_CLOCK_RATE , &_rate);if (ret) -dev_err_ratelimited (rpi->dev,"Failed to change %s frequency: %d" , +dev_err_ratelimited (rpi->dev,"Failed to change %s frequency: %d\n" ,clk_hw_get_name (hw), ret);return ret;
@@ -208,7 +208,7 @@ static struct clk_hw *raspberrypi_clk_register(struct raspberrypi_clk *rpi,RPI_FIRMWARE_GET_MIN_CLOCK_RATE , &min_rate);if (ret) { -dev_err (rpi->dev,"Failed to get clock %d min freq: %d" , +dev_err (rpi->dev,"Failed to get clock %d min freq: %d\n" , id, ret);return ERR_PTR (ret); }
@@ -251,8 +251,13 @@ static int raspberrypi_discover_clocks(struct raspberrypi_clk *rpi,struct rpi_firmware_get_clocks_response *clks;int ret; +/* +* The firmware doesn't guarantee that the last element of +* RPI_FIRMWARE_GET_CLOCKS is zeroed. So allocate an additional +* zero element as sentinel. +*/ clks =devm_kcalloc (rpi->dev, -sizeof (*clks),RPI_FIRMWARE_NUM_CLK_ID , +RPI_FIRMWARE_NUM_CLK_ID +1 ,sizeof (*clks),GFP_KERNEL );if (!clks)return -ENOMEM ;
drivers/clk/clk.c +1 -2
@@ -846,10 +846,9 @@ static void clk_core_unprepare(struct clk_core *core)if (core->ops->unprepare) core->ops->unprepare (core->hw); -clk_pm_runtime_put (core); -trace_clk_unprepare_complete (core);clk_core_unprepare (core->parent); +clk_pm_runtime_put (core); }static void clk_core_unprepare_lock (struct clk_core *core)
drivers/gpio/gpio-pca953x.c +7 -1
@@ -1163,7 +1163,9 @@ static int pca953x_suspend(struct device *dev) {struct pca953x_chip *chip =dev_get_drvdata (dev); +mutex_lock (&chip->i2c_lock);regcache_cache_only (chip->regmap, true); +mutex_unlock (&chip->i2c_lock);if (atomic_read (&chip->wakeup_path))device_set_wakeup_path (dev);
@@ -1186,13 +1188,17 @@ static int pca953x_resume(struct device *dev) } } +mutex_lock (&chip->i2c_lock);regcache_cache_only (chip->regmap, false);regcache_mark_dirty (chip->regmap); ret =pca953x_regcache_sync (dev); -if (ret) +if (ret) { +mutex_unlock (&chip->i2c_lock);return ret; + } ret =regcache_sync (chip->regmap); +mutex_unlock (&chip->i2c_lock);if (ret) {dev_err (dev,"Failed to restore register map: %d\n" , ret);return ret;
drivers/gpu/drm/i915/Makefile +1 -0
@@ -249,6 +249,7 @@ i915-y += \ display/g4x_dp.o \ display/g4x_hdmi.o \ display/icl_dsi.o \ + display/intel_backlight.o \ display/intel_crt.o \ display/intel_ddi.o \ display/intel_ddi_buf_trans.o \
drivers/gpu/drm/i915/display/g4x_dp.c +1 -1
@@ -7,6 +7,7 @@#include "g4x_dp.h" #include "intel_audio.h" +#include "intel_backlight.h" #include "intel_connector.h" #include "intel_de.h" #include "intel_display_types.h"
@@ -16,7 +17,6 @@#include "intel_fifo_underrun.h" #include "intel_hdmi.h" #include "intel_hotplug.h" -#include "intel_panel.h" #include "intel_pps.h" #include "intel_sideband.h"
drivers/gpu/drm/i915/display/icl_dsi.c +1 -0
@@ -29,6 +29,7 @@#include <drm/drm_mipi_dsi.h> #include "intel_atomic.h" +#include "intel_backlight.h" #include "intel_combo_phy.h" #include "intel_connector.h" #include "intel_crtc.h"
drivers/gpu/drm/i915/display/intel_backlight.c new file +1776 -0
1,776 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_backlight.h new file +51 -0
51 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_connector.c +2 -2
@@ -29,13 +29,13 @@#include <drm/drm_atomic_helper.h> #include <drm/drm_edid.h> -#include "display/intel_panel.h" -#include "i915_drv.h" +#include "intel_backlight.h" #include "intel_connector.h" #include "intel_display_debugfs.h" #include "intel_display_types.h" #include "intel_hdcp.h" +#include "intel_panel.h" int intel_connector_init (struct intel_connector *connector) {
drivers/gpu/drm/i915/display/intel_ddi.c +1 -1
@@ -29,6 +29,7 @@#include "i915_drv.h" #include "intel_audio.h" +#include "intel_backlight.h" #include "intel_combo_phy.h" #include "intel_connector.h" #include "intel_crtc.h"
@@ -49,7 +50,6 @@#include "intel_hdmi.h" #include "intel_hotplug.h" #include "intel_lspcon.h" -#include "intel_panel.h" #include "intel_pps.h" #include "intel_psr.h" #include "intel_snps_phy.h"
drivers/gpu/drm/i915/display/intel_dp.c +1 -0
@@ -45,6 +45,7 @@#include "i915_drv.h" #include "intel_atomic.h" #include "intel_audio.h" +#include "intel_backlight.h" #include "intel_connector.h" #include "intel_ddi.h" #include "intel_de.h"
drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +1 -1
@@ -34,10 +34,10 @@* for some reason. */ +#include "intel_backlight.h" #include "intel_display_types.h" #include "intel_dp.h" #include "intel_dp_aux_backlight.h" -#include "intel_panel.h" /* TODO: * Implement HDR, right now we just implement the bare minimum to bring us back into SDR mode so we
drivers/gpu/drm/i915/display/intel_lvds.c +1 -0
@@ -40,6 +40,7 @@#include "i915_drv.h" #include "intel_atomic.h" +#include "intel_backlight.h" #include "intel_connector.h" #include "intel_de.h" #include "intel_display_types.h"
drivers/gpu/drm/i915/display/intel_opregion.c +1 -2
@@ -30,10 +30,9 @@#include <linux/firmware.h> #include <acpi/video.h> -#include "display/intel_panel.h" -#include "i915_drv.h" #include "intel_acpi.h" +#include "intel_backlight.h" #include "intel_display_types.h" #include "intel_opregion.h"
drivers/gpu/drm/i915/display/intel_panel.c +1 -1766
751 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_panel.h +2 -32
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_quirks.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/input/joystick/iforce/iforce-serio.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/input/joystick/iforce/iforce-usb.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/mmc/core/sd.c +18 -28
46 lines not on this page · raw message
drivers/net/ethernet/cortina/gemini.c +12 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_ethtool.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_rx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_tx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c +105 -17
122 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/sparx5/sparx5_packet.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_common.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/rocker/rocker_ofdpa.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/r8188eu/os_dep/os_intfs.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/storage_common.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/usb/typec/altmodes/displayport.c +2 -2
Lines of this file are not shown. View the raw message.
include/linux/platform_data/x86/pmc_atom.h +4 -2
Lines of this file are not shown. View the raw message.
sound/pci/hda/patch_realtek.c +56 -7
63 lines not on this page · 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.