Linux 5.15.77
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.77 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 | 2 arch/arc/include/asm/io.h | 2 arch/arc/include/asm/pgtable-levels.h | 2 arch/arc/mm/ioremap.c | 2 arch/arm64/include/asm/cputype.h | 4 arch/arm64/kernel/proton-pack.c | 6 arch/s390/include/asm/futex.h | 3 arch/s390/pci/pci_mmio.c | 8 arch/x86/events/intel/lbr.c | 2 arch/x86/kernel/unwind_orc.c | 2 drivers/base/power/domain.c | 4 drivers/counter/microchip-tcb-capture.c | 18 drivers/cpufreq/intel_pstate.c | 133 - drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 16 drivers/gpu/drm/i915/display/intel_dp.c | 2 drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 5 drivers/gpu/drm/msm/dp/dp_display.c | 2 drivers/gpu/drm/msm/dsi/dsi.c | 6 drivers/gpu/drm/msm/hdmi/hdmi.c | 5 drivers/hwtracing/coresight/coresight-cti-core.c | 5 drivers/iio/accel/adxl372.c | 23 drivers/iio/light/tsl2583.c | 2 drivers/iio/temperature/ltc2983.c | 13 drivers/media/test-drivers/vivid/vivid-core.c | 38 drivers/media/test-drivers/vivid/vivid-core.h | 2 drivers/media/test-drivers/vivid/vivid-vid-cap.c | 27 drivers/media/v4l2-core/v4l2-dv-timings.c | 14 drivers/mmc/core/block.c | 44 drivers/mmc/core/sdio_bus.c | 3 drivers/mmc/host/Kconfig | 3 drivers/mmc/host/sdhci-esdhc-imx.c | 14 drivers/mmc/host/sdhci-pci-core.c | 14 drivers/mtd/nand/raw/intel-nand-controller.c | 19 drivers/mtd/nand/raw/marvell_nand.c | 2 drivers/net/can/mscan/mpc5xxx_can.c | 8 drivers/net/can/rcar/rcar_canfd.c | 24 drivers/net/can/spi/mcp251x.c | 5 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 4 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 4 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 17 drivers/net/ethernet/aquantia/atlantic/aq_macsec.c | 96 - drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 2 drivers/net/ethernet/broadcom/bcm4908_enet.c | 10 drivers/net/ethernet/broadcom/bcmsysport.c | 3 drivers/net/ethernet/cadence/macb_main.c | 1 drivers/net/ethernet/freescale/enetc/enetc.c | 5 drivers/net/ethernet/freescale/fec_main.c | 46 drivers/net/ethernet/huawei/hinic/hinic_debugfs.c | 18 drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c | 2 drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c | 2 drivers/net/ethernet/huawei/hinic/hinic_sriov.c | 1 drivers/net/ethernet/ibm/ehea/ehea_main.c | 1 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 100 - drivers/net/ethernet/intel/i40e/i40e_type.h | 4 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 43 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h | 1 drivers/net/ethernet/lantiq_etop.c | 1 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 10 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h | 9 drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 6 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 6 drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c | 6 drivers/net/ethernet/mellanox/mlx5/core/main.c | 55 drivers/net/ethernet/micrel/ksz884x.c | 2 drivers/net/ethernet/socionext/netsec.c | 2 drivers/net/ethernet/socionext/sni_ave.c | 6 drivers/net/netdevsim/dev.c | 11 drivers/nfc/virtual_ncidev.c | 3 drivers/pinctrl/pinctrl-ingenic.c | 4 drivers/scsi/lpfc/lpfc.h | 40 drivers/scsi/lpfc/lpfc_bsg.c | 50 drivers/scsi/lpfc/lpfc_crtn.h | 3 drivers/scsi/lpfc/lpfc_ct.c | 8 drivers/scsi/lpfc/lpfc_els.c | 139 - drivers/scsi/lpfc/lpfc_hw4.h | 7 drivers/scsi/lpfc/lpfc_init.c | 13 drivers/scsi/lpfc/lpfc_nportdisc.c | 4 drivers/scsi/lpfc/lpfc_nvme.c | 34 drivers/scsi/lpfc/lpfc_nvme.h | 6 drivers/scsi/lpfc/lpfc_nvmet.c | 83 drivers/scsi/lpfc/lpfc_scsi.c | 441 ++--- drivers/scsi/lpfc/lpfc_sli.c | 876 +++++----- drivers/scsi/lpfc/lpfc_sli.h | 26 drivers/scsi/qla2xxx/qla_attr.c | 28 drivers/scsi/sd.c | 3 drivers/staging/media/atomisp/pci/sh_css_params.c | 4 drivers/tty/serial/8250/8250_omap.c | 3 drivers/tty/serial/8250/8250_pci.c | 9 drivers/tty/serial/8250/8250_port.c | 12 drivers/tty/serial/fsl_lpuart.c | 8 drivers/tty/serial/imx.c | 8 drivers/tty/serial/serial_core.c | 61 drivers/usb/core/quirks.c | 9 drivers/usb/dwc3/gadget.c | 8 drivers/usb/gadget/function/uvc_queue.c | 8 drivers/usb/gadget/function/uvc_video.c | 22 drivers/usb/gadget/udc/bdc/bdc_udc.c | 1 drivers/usb/host/xhci-mem.c | 20 drivers/usb/host/xhci-pci.c | 44 drivers/usb/host/xhci.c | 10 drivers/usb/host/xhci.h | 1 drivers/video/fbdev/smscufx.c | 55 fs/binfmt_elf.c | 3 fs/exec.c | 4 fs/kernfs/dir.c | 5 fs/nfs/nfs4namespace.c | 9 fs/nfs/nfs4proc.c | 34 fs/nfs/nfs4state.c | 9 fs/nfs/nfs4xdr.c | 4 include/linux/mlx5/driver.h | 2 include/linux/nfs_xdr.h | 2 include/linux/perf_event.h | 19 include/media/v4l2-common.h | 3 include/net/sock.h | 2 include/uapi/linux/videodev2.h | 3 kernel/events/core.c | 153 + kernel/events/ring_buffer.c | 2 kernel/power/hibernate.c | 2 kernel/sched/sched.h | 18 net/can/j1939/transport.c | 4 net/core/net_namespace.c | 7 net/core/skbuff.c | 2 net/ethtool/eeprom.c | 2 net/ieee802154/socket.c | 4 net/ipv4/nexthop.c | 2 net/ipv4/tcp_input.c | 3 net/ipv4/tcp_ipv4.c | 7 net/ipv6/ip6_gre.c | 12 net/ipv6/ip6_tunnel.c | 11 net/ipv6/ipv6_sockglue.c | 7 net/ipv6/sit.c | 8 net/kcm/kcmsock.c | 25 net/mac802154/rx.c | 5 net/openvswitch/datapath.c | 3 net/tipc/topsrv.c | 16 sound/aoa/soundbus/i2sbus/core.c | 7 sound/pci/ac97/ac97_codec.c | 1 sound/pci/au88x0/au88x0.h | 6 sound/pci/au88x0/au88x0_core.c | 2 sound/pci/rme9652/hdsp.c | 26 sound/pci/rme9652/rme9652.c | 22 sound/soc/qcom/lpass-cpu.c | 10 sound/synth/emux/emux.c | 7 sound/usb/implicit.c | 2 tools/iio/iio_utils.c | 4 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json | 6 tools/perf/pmu-events/arch/powerpc/power10/nest_metrics.json | 72 tools/perf/util/auxtrace.c | 10 tools/testing/selftests/kvm/memslot_modification_stress_test.c | 2 151 files changed, 2129 insertions(+), 1458 deletions(-)
Aaron Conole (1):
openvswitch: switch from WARN to pr_warn
Adrian Hunter (1):
perf auxtrace: Fix address filter symbol name match for modules
Alexander Stein (1):
media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation
Ankit Nautiyal (1):
drm/i915/dp: Reset frl trained flag before restarting FRL training
Anssi Hannula (1):
can: kvaser_usb: Fix possible completions during init_completion
Aya Levin (1):
net/mlx5e: Extend SKB room check to include PTP-SQ
Benjamin Coddington (1):
NFSv4: Fix free of uninitialized nfs4_label on referral lookup.
Bernd Edlinger (1):
exec: Copy oldsighand->action under spin-lock
Biju Das (2):
can: rcar_canfd: fix channel specific IRQ handling for RZ/G2L
can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global FIFO receive
Brian Norris (1):
mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO
Chen Zhongjin (1):
x86/unwind/orc: Fix unreliable stack dump with gcov
Christian A. Ehrhardt (1):
kernfs: fix use-after-free in __kernfs_remove
Christian Löhle (1):
mmc: block: Remove error check of hw_reset on reset
Colin Ian King (1):
net: broadcom: bcm4908enet: remove redundant variable bytes
Cosmin Tanislav (1):
iio: temperature: ltc2983: allocate iio channels once
D Scott Phillips (1):
arm64: Add AMPERE1 to the Spectre-BHB affected list
Dan Carpenter (1):
media: atomisp: prevent integer overflow in sh_css_set_black_frame()
Dan Vacura (1):
usb: gadget: uvc: fix sg handling in error case
Dongliang Mu (2):
can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path
can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error path
Eric Dumazet (6):
kcm: annotate data-races around kcm->rx_psock
kcm: annotate data-races around kcm->rx_wait
tcp: minor optimization in tcp_add_backlog()
ipv6: ensure sane device mtu in tunnels
net: do not sense pfmemalloc status in skb_append_pagefrags()
kcm: do not sense pfmemalloc status in kcm_sendpage()
Florian Fainelli (1):
net: bcmsysport: Indicate MAC is in charge of PHY PM
Gavin Shan (1):
KVM: selftests: Fix number of pages for memory slot in memslot_modification_stress_test
Greg Kroah-Hartman (1):
Linux 5.15.77
Hannu Hartikainen (1):
USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM
Hans Verkuil (5):
media: vivid: s_fbuf: add more sanity checks
media: vivid: dev->bitmap_cap wasn't freed in all cases
media: v4l2-dv-timings: add sanity checks for blanking values
media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced'
media: vivid: set num_in/outputs to 0 if not supported
Heiko Carstens (2):
s390/futex: add missing EX_TABLE entry to __futex_atomic_op() s390/pci: add missing EX_TABLE entries to __pcistg_mio_inuser()/__pcilg_mio_inuser()
Hyong Youb Kim (1):
net/mlx5e: Do not increment ESN when updating IPsec ESN state
Hyunwoo Kim (1):
fbdev: smscufx: Fix several use-after-free bugs
Jakub Kicinski (1):
net-memcg: avoid stalls when under memory pressure
James Clark (1):
coresight: cti: Fix hang in cti_disable_hw()
James Smart (6):
Revert "scsi: lpfc: Resolve some cleanup issues following SLI path refactoring" Revert "scsi: lpfc: Fix element offset in __lpfc_sli_release_iocbq_s4()" Revert "scsi: lpfc: Fix locking for lpfc_sli_iocbq_lookup()" Revert "scsi: lpfc: SLI path split: Refactor SCSI paths"
Revert "scsi: lpfc: SLI path split: Refactor fast and slow paths to native SLI4" Revert "scsi: lpfc: SLI path split: Refactor lpfc_iocbq"
Jason A. Donenfeld (2):
ALSA: au88x0: use explicitly signed char
ALSA: rme9652: use explicitly signed char
Jeff Vanhoof (1):
usb: gadget: uvc: fix sg handling during video encode
Jens Glathe (1):
usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller
Johan Hovold (3):
drm/msm/dsi: fix memory corruption with too many bridges drm/msm/hdmi: fix memory corruption with too many bridges drm/msm/dp: fix IRQ lifetime
Juergen Borleis (1):
net: fec: limit register access on i.MX6UL
Justin Chen (1):
usb: bdc: change state when port disconnected
Kajol Jain (1):
perf vendor events power10: Fix hv-24x7 metric events
Kunihiko Hayashi (1):
net: ethernet: ave: Fix MAC to be in charge of PHY PM
Kuniyuki Iwashima (1):
tcp/udp: Fix memory leak in ipv6_renew_options().
Li Zetao (1):
fs/binfmt_elf: Fix memory leak in load_elf_binary()
Lin Shengwang (1):
sched/core: Fix comparison in sched_group_cookie_match()
Lino Sanfilippo (1):
serial: core: move RS485 configuration tasks from drivers into core
Lu Wei (1):
tcp: fix a signed-integer-overflow bug in tcp_add_backlog()
Lukas Wunner (1):
serial: Deassert Transmit Enable on probe in driver-specific way
Manish Rangankar (1):
scsi: qla2xxx: Use transport-defined speed mask for supported_speeds
Mario Limonciello (2):
xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices
PM: hibernate: Allow hybrid sleep to work with s2idle
Mathias Nyman (2):
xhci: Add quirk to reset host back to default state at shutdown
xhci: Remove device endpoints from bandwidth list when freeing the device
Matthew Ma (1):
mmc: core: Fix kernel panic when remove non-standard SDIO card
Matti Vaittinen (2):
tools: iio: iio_utils: fix digit calculation
iio: adxl372: Fix unsafe buffer attributes
Maxim Levitsky (1):
perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap()
Miquel Raynal (1):
mac802154: Fix LQI recording
Nathan Huckleberry (1):
drm/msm: Fix return type of mdp4_lvds_connector_mode_valid
Neal Cardwell (1):
tcp: fix indefinite deferral of RTO with SACK reneging
Nicolas Dichtel (1):
nh: fix scope used to find saddr when adding non gw nh
Patrick Thompson (1):
mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake
Pavel Kozlov (1):
ARC: mm: fix leakage of memory allocated for PTE
Peter Zijlstra (1):
perf: Fix missing SIGTRAPs
Prike Liang (1):
drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resume
Rafael J. Wysocki (2):
cpufreq: intel_pstate: Read all MSRs on the target CPU
cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores
Rafael Mendonca (1):
drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr()
Rafał Miłecki (1):
net: broadcom: bcm4908_enet: update TX stats after actual transmission
Raju Rangoju (2):
amd-xgbe: fix the SFP compliance codes check for DAC cables
amd-xgbe: add the bit rate quirk for Molex cables
Randy Dunlap (1):
arc: iounmap() arg is volatile
Roy Novich (1):
net/mlx5: Update fw fatal reporter state on PCI handlers successful recover
Saeed Mahameed (1):
net/mlx5: Print more info on pci error handlers
Sascha Hauer (1):
mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus
Scott Mayhew (1):
NFSv4: Add an fattr allocation to _nfs4_discover_trunking()
Sergiu Moga (1):
net: macb: Specify PHY PM management done by MAC
Shang XiaoJing (2):
nfc: virtual_ncidev: Fix memory leak in virtual_nci_send() perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics
Shreeya Patel (1):
iio: light: tsl2583: Fix module unloading
Siarhei Volkau (1):
pinctrl: Ingenic: JZ4755 bug fixes
Slawomir Laba (2):
i40e: Fix ethtool rx-flow-hash setting for X722
i40e: Fix flow-type by setting GL_HASH_INSET registers
Srinivasa Rao Mandadapu (2):
ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile
ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile
Steven Rostedt (Google) (1):
ALSA: Use del_timer_sync() before freeing timer
Sudeep Holla (1):
PM: domains: Fix handling of unavailable/disabled idle states
Suresh Devarakonda (1):
net/mlx5: Fix crash during sync firmware reset
Sylwester Dziedziuch (1):
i40e: Fix VF hang when reset is triggered on another VF
Takashi Iwai (2):
ALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600
ALSA: aoa: Fix I2S device accounting
Tariq Toukan (1):
net/mlx5: Fix possible use-after-free in async command interface
Thinh Nguyen (2):
usb: dwc3: gadget: Stop processing more requests on IMI
usb: dwc3: gadget: Don't set IMI for no_interrupt
Tony O'Brien (1):
mtd: rawnand: marvell: Use correct logic for nand-keep-config
Vladimir Oltean (1):
net: enetc: survive memory pressure without crashing
Wei Yongjun (1):
net: ieee802154: fix error return code in dgram_bind()
William Breathitt Gray (1):
counter: microchip-tcb-capture: Handle Signal1 read and Synapse
Xin Long (2):
ethtool: eeprom: fix null-deref on genl_info in dump
tipc: fix a null-ptr-deref in tipc_topsrv_accept
Yang Yingliang (7):
can: j1939: transport: j1939_session_skb_drop_old(): spin_unlock_irqrestore() before kfree_skb()
mtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe()
ALSA: ac97: fix possible memory leak in snd_ac97_dev_register()
net: netsec: fix error handling in netsec_register_mdio()
net: ksz884x: fix missing pci_disable_device() on error in pcidev_init()
ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev()
net: ehea: fix possible memory leak in ehea_register_port()
Yu Kuai (1):
scsi: sd: Revert "scsi: sd: Remove a local variable"
Zhang Changzhong (1):
net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY
Zhengchao Shao (6):
net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg()
net: hinic: fix memory leak when reading function table
net: hinic: fix the issue of CMDQ memory leaks
net: hinic: fix the issue of double release MBOX callback of VF
net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed
netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir failed
Íñigo Huguet (1):
atlantic: fix deadlock at aq_nic_stop
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 76 +SUBLEVEL = 77 EXTRAVERSION = NAME = Trick or Treat
arch/arc/include/asm/io.h +1 -1
@@ -32,7 +32,7 @@ static inline void ioport_unmap(void __iomem *addr) { } -extern void iounmap (const void __iomem *addr); +extern void iounmap (const volatile void __iomem *addr);/* * io{read,write}{16,32}be() macros
arch/arc/include/asm/pgtable-levels.h +1 -1
@@ -163,7 +163,7 @@#define pmd_page_vaddr (pmd) (pmd_val(pmd) & PAGE_MASK)#define pmd_page (pmd) virt_to_page(pmd_page_vaddr(pmd))#define set_pmd (pmdp, pmd) (*(pmdp) = pmd) -#define pmd_pgtable (pmd) ((pgtable_t) pmd_page_vaddr(pmd)) +#define pmd_pgtable (pmd) ((pgtable_t) pmd_page(pmd))/* * 4th level paging: pte
arch/arc/mm/ioremap.c +1 -1
@@ -94,7 +94,7 @@ void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size,EXPORT_SYMBOL (ioremap_prot); -void iounmap (const void __iomem *addr) +void iounmap (const volatile void __iomem *addr) {/* weird double cast to handle phys_addr_t > 32 bits */ if (arc_uncached_addr_space ((phys_addr_t )(u32 )addr))
arch/arm64/include/asm/cputype.h +4 -0
@@ -60,6 +60,7 @@#define ARM_CPU_IMP_FUJITSU 0x46#define ARM_CPU_IMP_HISI 0x48#define ARM_CPU_IMP_APPLE 0x61 +#define ARM_CPU_IMP_AMPERE 0xC0#define ARM_CPU_PART_AEM_V8 0xD0F#define ARM_CPU_PART_FOUNDATION 0xD00
@@ -112,6 +113,8 @@#define APPLE_CPU_PART_M1_ICESTORM 0x022#define APPLE_CPU_PART_M1_FIRESTORM 0x023 +#define AMPERE_CPU_PART_AMPERE1 0xAC3 +#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)#define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57)#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
@@ -151,6 +154,7 @@#define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)#define MIDR_APPLE_M1_ICESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM)#define MIDR_APPLE_M1_FIRESTORM MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM) +#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */ #define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX
arch/arm64/kernel/proton-pack.c +6 -0
@@ -868,6 +868,10 @@ u8 spectre_bhb_loop_affected(int scope) MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1), {}, }; +static const struct midr_range spectre_bhb_k11_list[] = { +MIDR_ALL_VERSIONS (MIDR_AMPERE1 ), + {}, + };static const struct midr_range spectre_bhb_k8_list[] = {MIDR_ALL_VERSIONS (MIDR_CORTEX_A72 ),MIDR_ALL_VERSIONS (MIDR_CORTEX_A57 ),
@@ -878,6 +882,8 @@ u8 spectre_bhb_loop_affected(int scope) k =32 ; else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k24_list)) k =24 ; + else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k11_list)) + k =11 ; else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k8_list)) k =8 ;
arch/s390/include/asm/futex.h +2 -1
@@ -16,7 +16,8 @@"3: jl 1b\n" \" lhi %0,0\n" \"4: sacf 768\n" \ - EX_TABLE(0b,4b) EX_TABLE(2b,4b) EX_TABLE(3b,4b) \ + EX_TABLE(0b,4b) EX_TABLE(1b,4b) \ + EX_TABLE(2b,4b) EX_TABLE(3b,4b) \ : "=d" (ret), "=&d" (oldval), "=&d" (newval), \" =m" (*uaddr) \ : "0" (-EFAULT), "d" (oparg), "a" (uaddr), \
arch/s390/pci/pci_mmio.c +4 -4
@@ -63,7 +63,7 @@ static inline int __pcistg_mio_inuser( asmvolatile (" sacf 256\n" "0: llgc %[tmp],0(%[src])\n" -" sllg %[val],%[val],8\n" +"4: sllg %[val],%[val],8\n" " aghi %[src],1\n" " ogr %[val],%[tmp]\n" " brctg %[cnt],0b\n"
@@ -71,7 +71,7 @@ static inline int __pcistg_mio_inuser("2: ipm %[cc]\n" " srl %[cc],28\n" "3: sacf 768\n" - EX_TABLE(0b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b) + EX_TABLE(0b, 3b) EX_TABLE(4b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b) : [src] "+a" (src), [cnt] "+d" (cnt), [val] "+d" (val), [tmp] "=d" (tmp),
@@ -214,10 +214,10 @@ static inline int __pcilg_mio_inuser("2: ahi %[shift],-8\n" " srlg %[tmp],%[val],0(%[shift])\n" "3: stc %[tmp],0(%[dst])\n" -" aghi %[dst],1\n" +"5: aghi %[dst],1\n" " brctg %[cnt],2b\n" "4: sacf 768\n" - EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) + EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) EX_TABLE(5b, 4b) : [ioaddr_len] "+&d" (ioaddr_len.pair), [cc] "+d" (cc), [val] "=d" (val),
arch/x86/events/intel/lbr.c +1 -1
@@ -1847,7 +1847,7 @@ void __init intel_pmu_arch_lbr_init(void)return ; clear_arch_lbr: -clear_cpu_cap (&boot_cpu_data,X86_FEATURE_ARCH_LBR ); +setup_clear_cpu_cap (X86_FEATURE_ARCH_LBR ); }/**
arch/x86/kernel/unwind_orc.c +1 -1
@@ -700,7 +700,7 @@ void __unwind_start(struct unwind_state *state, struct task_struct *task,/* Otherwise, skip ahead to the user-specified starting frame: */ while (!unwind_done (state) && (!on_stack (&state->stack_info, first_frame,sizeof (long )) || - state->sp < (unsigned long )first_frame)) + state->sp <= (unsigned long )first_frame))unwind_next_frame (state);return ;
drivers/base/power/domain.c +4 -0
@@ -2889,6 +2889,10 @@ static int genpd_iterate_idle_states(struct device_node *dn, np = it.node;if (!of_match_node (idle_state_match, np))continue ; + +if (!of_device_is_available (np)) +continue ; +if (states) { ret =genpd_parse_state (&states[i], np);if (ret) {
drivers/counter/microchip-tcb-capture.c +14 -4
@@ -29,7 +29,6 @@ struct mchp_tc_data {int qdec_mode;int num_channels;int channel[2 ]; -bool trig_inverted; };enum mchp_tc_count_function {
@@ -166,7 +165,7 @@ static int mchp_tc_count_signal_read(struct counter_device *counter,regmap_read (priv->regmap,ATMEL_TC_REG (priv->channel[0 ],SR ), &sr); -if (priv->trig_inverted) +if (signal->id ==1 ) sigstatus = (sr &ATMEL_TC_MTIOB );else sigstatus = (sr &ATMEL_TC_MTIOA );
@@ -184,6 +183,17 @@ static int mchp_tc_count_action_get(struct counter_device *counter,struct mchp_tc_data *const priv = counter->priv;u32 cmr; +if (priv->qdec_mode) { + *action =COUNTER_SYNAPSE_ACTION_BOTH_EDGES ; +return 0 ; + } + +/* Only TIOA signal is evaluated in non-QDEC mode */ +if (synapse->signal->id !=0 ) { + *action =COUNTER_SYNAPSE_ACTION_NONE ; +return 0 ; + } +regmap_read (priv->regmap,ATMEL_TC_REG (priv->channel[0 ],CMR ), &cmr);switch (cmr &ATMEL_TC_ETRGEDG ) {
@@ -212,8 +222,8 @@ static int mchp_tc_count_action_set(struct counter_device *counter,struct mchp_tc_data *const priv = counter->priv;u32 edge =ATMEL_TC_ETRGEDG_NONE ; -/* QDEC mode is rising edge only */ -if (priv->qdec_mode) +/* QDEC mode is rising edge only; only TIOA handled in non-QDEC mode */ +if (priv->qdec_mode || synapse->signal->id !=0 )return -EINVAL ;switch (action) {
drivers/cpufreq/intel_pstate.c +47 -86
292 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +3 -3
@@ -476,13 +476,13 @@ kfd_mem_dmamap_userptr(struct kgd_mem *mem,struct ttm_tt *ttm = bo->tbo.ttm;int ret; +if (WARN_ON (ttm->num_pages != src_ttm->num_pages)) +return -EINVAL ; + ttm->sg =kmalloc (sizeof (*ttm->sg),GFP_KERNEL );if (unlikely (!ttm->sg))return -ENOMEM ; -if (WARN_ON (ttm->num_pages != src_ttm->num_pages)) -return -EINVAL ; -/* Same sequence as in amdgpu_ttm_tt_pin_userptr */ ret = sg_alloc_table_from_pages(ttm->sg, src_ttm->pages, ttm->num_pages, 0,
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +16 -0
@@ -3185,6 +3185,15 @@ static int amdgpu_device_ip_resume_phase2(struct amdgpu_device *adev)return r; } adev->ip_blocks[i].status.hw = true; + +if (adev->in_s0ix && adev->ip_blocks[i].version->type ==AMD_IP_BLOCK_TYPE_SMC ) { +/* disable gfxoff for IP resume. The gfxoff will be re-enabled in +* amdgpu_device_resume() after IP resume. +*/ +amdgpu_gfx_off_ctrl (adev, false); +DRM_DEBUG ("will disable gfxoff for re-initializing other blocks\n" ); + } + }return 0 ;
@@ -4114,6 +4123,13 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)/* Make sure IB tests flushed */ flush_delayed_work (&adev->delayed_init_work); +if (adev->in_s0ix) { +/* re-enable gfxoff after IP resume. This re-enables gfxoff after +* it was disabled for IP resume in amdgpu_device_ip_resume_phase2(). +*/ +amdgpu_gfx_off_ctrl (adev, true); +DRM_DEBUG ("will enable gfxoff for the mission mode\n" ); + }if (fbcon)amdgpu_fbdev_set_suspend (adev,0 );
drivers/gpu/drm/i915/display/intel_dp.c +2 -0
@@ -3497,6 +3497,8 @@ intel_dp_handle_hdmi_link_status_change(struct intel_dp *intel_dp)drm_dp_pcon_hdmi_frl_link_error_count (&intel_dp->aux, &intel_dp->attached_connector->base); + intel_dp->frl.is_trained = false; +/* Restart FRL training or fall back to TMDS mode */ intel_dp_check_frl_training (intel_dp); }
drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +3 -2
@@ -56,8 +56,9 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector)return ret; } -static int mdp4_lvds_connector_mode_valid (struct drm_connector *connector, -struct drm_display_mode *mode) +static enum drm_mode_status +mdp4_lvds_connector_mode_valid (struct drm_connector *connector, +struct drm_display_mode *mode) {struct mdp4_lvds_connector *mdp4_lvds_connector =to_mdp4_lvds_connector (connector);
drivers/gpu/drm/msm/dp/dp_display.c +1 -1
@@ -1229,7 +1229,7 @@ int dp_display_request_irq(struct msm_dp *dp_display)return -EINVAL ; } - rc =devm_request_irq (&dp->pdev->dev, dp->irq, + rc =devm_request_irq (dp_display->drm_dev->dev, dp->irq, dp_display_irq_handler,IRQF_TRIGGER_HIGH ,"dp_display_isr" , dp);if (rc <0 ) {
drivers/gpu/drm/msm/dsi/dsi.c +6 -0
@@ -212,6 +212,12 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,return -EINVAL ; priv = dev->dev_private; + +if (priv->num_bridges ==ARRAY_SIZE (priv->bridges)) { +DRM_DEV_ERROR (dev->dev,"too many bridges\n" ); +return -ENOSPC ; + } + msm_dsi->dev = dev; ret =msm_dsi_host_modeset_init (msm_dsi->host, dev);
drivers/gpu/drm/msm/hdmi/hdmi.c +5 -0
@@ -295,6 +295,11 @@ int msm_hdmi_modeset_init(struct hdmi *hdmi,struct platform_device *pdev = hdmi->pdev;int ret; +if (priv->num_bridges ==ARRAY_SIZE (priv->bridges)) { +DRM_DEV_ERROR (dev->dev,"too many bridges\n" ); +return -ENOSPC ; + } + hdmi->dev = dev; hdmi->encoder = encoder;
drivers/hwtracing/coresight/coresight-cti-core.c +0 -5
@@ -90,11 +90,9 @@ void cti_write_all_hw_regs(struct cti_drvdata *drvdata)static int cti_enable_hw (struct cti_drvdata *drvdata) {struct cti_config *config = &drvdata->config; -struct device *dev = &drvdata->csdev->dev;unsigned long flags;int rc =0 ; -pm_runtime_get_sync (dev->parent);spin_lock_irqsave (&drvdata->spinlock, flags);/* no need to do anything if enabled or unpowered*/
@@ -119,7 +117,6 @@ static int cti_enable_hw(struct cti_drvdata *drvdata)/* cannot enable due to error */ cti_err_not_enabled:spin_unlock_irqrestore (&drvdata->spinlock, flags); -pm_runtime_put (dev->parent);return rc; }
@@ -153,7 +150,6 @@ static void cti_cpuhp_enable_hw(struct cti_drvdata *drvdata)static int cti_disable_hw (struct cti_drvdata *drvdata) {struct cti_config *config = &drvdata->config; -struct device *dev = &drvdata->csdev->dev;struct coresight_device *csdev = drvdata->csdev;spin_lock (&drvdata->spinlock);
@@ -175,7 +171,6 @@ static int cti_disable_hw(struct cti_drvdata *drvdata)coresight_disclaim_device_unlocked (csdev);CS_LOCK (drvdata->base);spin_unlock (&drvdata->spinlock); -pm_runtime_put (dev->parent);return 0 ;/* not disabled this call */
drivers/iio/accel/adxl372.c +18 -5
@@ -998,17 +998,30 @@ static ssize_t adxl372_get_fifo_watermark(struct device *dev,return sprintf (buf,"%d\n" , st->watermark); } -static IIO_CONST_ATTR(hwfifo_watermark_min, "1"); -static IIO_CONST_ATTR(hwfifo_watermark_max, - __stringify(ADXL372_FIFO_SIZE)); +static ssize_t hwfifo_watermark_min_show (struct device *dev, +struct device_attribute *attr, +char *buf) +{ +return sysfs_emit (buf,"%s\n" ,"1" ); +} + +static ssize_t hwfifo_watermark_max_show (struct device *dev, +struct device_attribute *attr, +char *buf) +{ +return sysfs_emit (buf,"%s\n" ,__stringify (ADXL372_FIFO_SIZE )); +} + +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_min, 0); +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_max, 0); static IIO_DEVICE_ATTR(hwfifo_watermark, 0444, adxl372_get_fifo_watermark, NULL, 0); static IIO_DEVICE_ATTR(hwfifo_enabled, 0444, adxl372_get_fifo_enabled, NULL, 0);static const struct attribute *adxl372_fifo_attributes[] = { - &iio_const_attr_hwfifo_watermark_min.dev_attr.attr, - &iio_const_attr_hwfifo_watermark_max.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_min.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_max.dev_attr.attr, &iio_dev_attr_hwfifo_watermark.dev_attr.attr, &iio_dev_attr_hwfifo_enabled.dev_attr.attr,NULL ,
drivers/iio/light/tsl2583.c +1 -1
@@ -858,7 +858,7 @@ static int tsl2583_probe(struct i2c_client *clientp, TSL2583_POWER_OFF_DELAY_MS);pm_runtime_use_autosuspend (&clientp->dev); - ret =devm_iio_device_register (indio_dev->dev.parent, indio_dev); + ret =iio_device_register (indio_dev);if (ret) {dev_err (&clientp->dev,"%s: iio registration failed\n" , __func__);
drivers/iio/temperature/ltc2983.c +6 -7
@@ -1376,13 +1376,6 @@ static int ltc2983_setup(struct ltc2983_data *st, bool assign_iio)return ret; } - st->iio_chan =devm_kzalloc (&st->spi->dev, - st->iio_channels *sizeof (*st->iio_chan), -GFP_KERNEL ); - -if (!st->iio_chan) -return -ENOMEM ; - ret =regmap_update_bits (st->regmap,LTC2983_GLOBAL_CONFIG_REG ,LTC2983_NOTCH_FREQ_MASK ,LTC2983_NOTCH_FREQ (st->filter_notch_freq));
@@ -1494,6 +1487,12 @@ static int ltc2983_probe(struct spi_device *spi)if (ret)return ret; + st->iio_chan =devm_kzalloc (&spi->dev, + st->iio_channels *sizeof (*st->iio_chan), +GFP_KERNEL ); +if (!st->iio_chan) +return -ENOMEM ; + ret =ltc2983_setup (st, true);if (ret)return ret;
drivers/media/test-drivers/vivid/vivid-core.c +34 -4
@@ -330,6 +330,28 @@ static int vidioc_g_fbuf(struct file *file, void *fh, struct v4l2_framebuffer *areturn vivid_vid_out_g_fbuf (file, fh, a); } +/* +* Only support the framebuffer of one of the vivid instances. +* Anything else is rejected. +*/ +bool vivid_validate_fb (const struct v4l2_framebuffer *a) +{ +struct vivid_dev *dev; +int i; + +for (i =0 ; i < n_devs; i++) { + dev = vivid_devs[i]; +if (!dev || !dev->video_pbase) +continue ; +if ((unsigned long )a->base == dev->video_pbase && + a->fmt.width <= dev->display_width && + a->fmt.height <= dev->display_height && + a->fmt.bytesperline <= dev->display_byte_stride) +return true; + } +return false; +} +static int vidioc_s_fbuf (struct file *file,void *fh,const struct v4l2_framebuffer *a) {struct video_device *vdev =video_devdata (file);
@@ -910,8 +932,12 @@ static int vivid_detect_feature_set(struct vivid_dev *dev, int inst,/* how many inputs do we have and of what type? */ dev->num_inputs = num_inputs[inst]; -if (dev->num_inputs <1 ) - dev->num_inputs =1 ; +if (node_type &0x20007 ) { +if (dev->num_inputs <1 ) + dev->num_inputs =1 ; + }else { + dev->num_inputs =0 ; + }if (dev->num_inputs >=MAX_INPUTS ) dev->num_inputs =MAX_INPUTS ;for (i =0 ; i < dev->num_inputs; i++) {
@@ -928,8 +954,12 @@ static int vivid_detect_feature_set(struct vivid_dev *dev, int inst,/* how many outputs do we have and of what type? */ dev->num_outputs = num_outputs[inst]; -if (dev->num_outputs <1 ) - dev->num_outputs =1 ; +if (node_type &0x40300 ) { +if (dev->num_outputs <1 ) + dev->num_outputs =1 ; + }else { + dev->num_outputs =0 ; + }if (dev->num_outputs >=MAX_OUTPUTS ) dev->num_outputs =MAX_OUTPUTS ;for (i =0 ; i < dev->num_outputs; i++) {
drivers/media/test-drivers/vivid/vivid-core.h +2 -0
@@ -610,4 +610,6 @@ static inline bool vivid_is_hdmi_out(const struct vivid_dev *dev) return dev->output_type[dev->output] == HDMI; } +bool vivid_validate_fb (const struct v4l2_framebuffer *a); +#endif
drivers/media/test-drivers/vivid/vivid-vid-cap.c +21 -6
@@ -452,6 +452,12 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls)tpg_reset_source (&dev->tpg, dev->src_rect.width, dev->src_rect.height, dev->field_cap); dev->crop_cap = dev->src_rect; dev->crop_bounds_cap = dev->src_rect; +if (dev->bitmap_cap && + (dev->compose_cap.width != dev->crop_cap.width || + dev->compose_cap.height != dev->crop_cap.height)) { +vfree (dev->bitmap_cap); + dev->bitmap_cap =NULL ; + } dev->compose_cap = dev->crop_cap;if (V4L2_FIELD_HAS_T_OR_B (dev->field_cap)) dev->compose_cap.height /=2 ;
@@ -909,6 +915,8 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selectionstruct vivid_dev *dev =video_drvdata (file);struct v4l2_rect *crop = &dev->crop_cap;struct v4l2_rect *compose = &dev->compose_cap; +unsigned orig_compose_w = compose->width; +unsigned orig_compose_h = compose->height;unsigned factor =V4L2_FIELD_HAS_T_OR_B (dev->field_cap) ?2 :1 ;int ret;
@@ -1025,17 +1033,17 @@ int vivid_vid_cap_s_selection(struct file *file, void *fh, struct v4l2_selection s->r.height /= factor; }v4l2_rect_map_inside (&s->r, &dev->fmt_cap_rect); -if (dev->bitmap_cap && (compose->width != s->r.width || - compose->height != s->r.height)) { -vfree (dev->bitmap_cap); - dev->bitmap_cap =NULL ; - } *compose = s->r;break ;default :return -EINVAL ; } +if (dev->bitmap_cap && (compose->width != orig_compose_w || + compose->height != orig_compose_h)) { +vfree (dev->bitmap_cap); + dev->bitmap_cap =NULL ; + }tpg_s_crop_compose (&dev->tpg, crop, compose);return 0 ; }
@@ -1272,7 +1280,14 @@ int vivid_vid_cap_s_fbuf(struct file *file, void *fh,return -EINVAL ;if (a->fmt.bytesperline < (a->fmt.width * fmt->bit_depth[0 ]) /8 )return -EINVAL ; -if (a->fmt.height * a->fmt.bytesperline < a->fmt.sizeimage) +if (a->fmt.bytesperline > a->fmt.sizeimage / a->fmt.height) +return -EINVAL ; + +/* +* Only support the framebuffer of one of the vivid instances. +* Anything else is rejected. +*/ +if (!vivid_validate_fb (a))return -EINVAL ; dev->fb_vbase_cap =phys_to_virt ((unsigned long )a->base);
drivers/media/v4l2-core/v4l2-dv-timings.c +14 -0
@@ -161,6 +161,20 @@ bool v4l2_valid_dv_timings(const struct v4l2_dv_timings *t, (bt->interlaced && !(caps &V4L2_DV_BT_CAP_INTERLACED )) || (!bt->interlaced && !(caps & V4L2_DV_BT_CAP_PROGRESSIVE))) return false; + +/* sanity checks for the blanking timings */ +if (!bt->interlaced && + (bt->il_vbackporch || bt->il_vsync || bt->il_vfrontporch)) +return false; +if (bt->hfrontporch >2 * bt->width || + bt->hsync >1024 || bt->hbackporch >1024 ) +return false; +if (bt->vfrontporch >4096 || + bt->vsync >128 || bt->vbackporch >4096 ) +return false; +if (bt->interlaced && (bt->il_vfrontporch >4096 || + bt->il_vsync >128 || bt->il_vbackporch >4096 )) +return false;return fnc ==NULL ||fnc (t, fnc_handle); }EXPORT_SYMBOL_GPL (v4l2_valid_dv_timings);
drivers/mmc/core/block.c +26 -18
72 lines not on this page · raw message
drivers/mmc/core/sdio_bus.c +2 -1
@@ -290,7 +290,8 @@ static void sdio_release_func(struct device *dev) {struct sdio_func *func =dev_to_sdio_func (dev); -sdio_free_func_cis (func); +if (!(func->card->quirks &MMC_QUIRK_NONSTD_SDIO )) +sdio_free_func_cis (func);kfree (func->info);kfree (func->tmpbuf);
drivers/mmc/host/Kconfig +2 -1
@@ -1069,9 +1069,10 @@ config MMC_SDHCI_OMAP config MMC_SDHCI_AM654 tristate "Support for the SDHCI Controller in TI's AM654 SOCs" - depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO + depends on MMC_SDHCI_PLTFM && OF select MMC_SDHCI_IO_ACCESSORS select MMC_CQHCI + select REGMAP_MMIO help This selects the Secure Digital Host Controller Interface (SDHCI) support present in TI's AM654 SOCs. The controller supports
drivers/mmc/host/sdhci-esdhc-imx.c +8 -6
@@ -1643,6 +1643,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) host->mmc_host_ops.execute_tuning = usdhc_execute_tuning; } + err =sdhci_esdhc_imx_probe_dt (pdev, host, imx_data); +if (err) + goto disable_ahb_clk; +if (imx_data->socdata->flags &ESDHC_FLAG_MAN_TUNING ) sdhci_esdhc_ops.platform_execute_tuning = esdhc_executing_tuning;
@@ -1650,13 +1654,15 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)if (imx_data->socdata->flags &ESDHC_FLAG_ERR004536 ) host->quirks |=SDHCI_QUIRK_BROKEN_ADMA ; -if (imx_data->socdata->flags &ESDHC_FLAG_HS400 ) +if (host->caps &MMC_CAP_8_BIT_DATA && + imx_data->socdata->flags &ESDHC_FLAG_HS400 ) host->mmc->caps2 |=MMC_CAP2_HS400 ;if (imx_data->socdata->flags &ESDHC_FLAG_BROKEN_AUTO_CMD23 ) host->quirks2 |=SDHCI_QUIRK2_ACMD23_BROKEN ; -if (imx_data->socdata->flags &ESDHC_FLAG_HS400_ES ) { +if (host->caps &MMC_CAP_8_BIT_DATA && + imx_data->socdata->flags &ESDHC_FLAG_HS400_ES ) { host->mmc->caps2 |=MMC_CAP2_HS400_ES ; host->mmc_host_ops.hs400_enhanced_strobe = esdhc_hs400_enhanced_strobe;
@@ -1678,10 +1684,6 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) goto disable_ahb_clk; } - err =sdhci_esdhc_imx_probe_dt (pdev, host, imx_data); -if (err) - goto disable_ahb_clk; -sdhci_esdhc_imx_hwinit (host); err =sdhci_add_host (host);
drivers/mmc/host/sdhci-pci-core.c +11 -3
@@ -978,6 +978,12 @@ static bool glk_broken_cqhci(struct sdhci_pci_slot *slot) dmi_match(DMI_SYS_VENDOR, "IRBIS")); } +static bool jsl_broken_hs400es (struct sdhci_pci_slot *slot) +{ +return slot->chip->pdev->device ==PCI_DEVICE_ID_INTEL_JSL_EMMC && +dmi_match (DMI_BIOS_VENDOR ,"ASUSTeK COMPUTER INC." ); +} +static int glk_emmc_probe_slot (struct sdhci_pci_slot *slot) {int ret =byt_emmc_probe_slot (slot);
@@ -986,9 +992,11 @@ static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot) slot->host->mmc->caps2 |=MMC_CAP2_CQE ;if (slot->chip->pdev->device !=PCI_DEVICE_ID_INTEL_GLK_EMMC ) { - slot->host->mmc->caps2 |=MMC_CAP2_HS400_ES ; - slot->host->mmc_host_ops.hs400_enhanced_strobe = - intel_hs400_enhanced_strobe; +if (!jsl_broken_hs400es (slot)) { + slot->host->mmc->caps2 |=MMC_CAP2_HS400_ES ; + slot->host->mmc_host_ops.hs400_enhanced_strobe = + intel_hs400_enhanced_strobe; + } slot->host->mmc->caps2 |=MMC_CAP2_CQE_DCMD ; }
drivers/mtd/nand/raw/intel-nand-controller.c +12 -7
@@ -614,11 +614,12 @@ static int ebu_nand_probe(struct platform_device *pdev) ret =of_property_read_u32 (chip_np,"reg" , &cs);if (ret) {dev_err (dev,"failed to get chip select: %d\n" , ret); -return ret; + goto err_of_node_put; }if (cs >=MAX_CS ) {dev_err (dev,"got invalid chip select: %d\n" , cs); -return -EINVAL ; + ret = -EINVAL ; + goto err_of_node_put; } ebu_host->cs_num = cs;
@@ -627,18 +628,20 @@ static int ebu_nand_probe(struct platform_device *pdev) res =platform_get_resource_byname (pdev,IORESOURCE_MEM , resname); ebu_host->cs[cs].chipaddr =devm_ioremap_resource (dev, res);if (IS_ERR (ebu_host->cs[cs].chipaddr)) -return PTR_ERR (ebu_host->cs[cs].chipaddr); + goto err_of_node_put; ebu_host->cs[cs].nand_pa = res->start; ebu_host->clk =devm_clk_get (dev,NULL ); -if (IS_ERR (ebu_host->clk)) -return dev_err_probe (dev,PTR_ERR (ebu_host->clk), -"failed to get clock\n" ); +if (IS_ERR (ebu_host->clk)) { + ret =dev_err_probe (dev,PTR_ERR (ebu_host->clk), +"failed to get clock\n" ); + goto err_of_node_put; + } ret =clk_prepare_enable (ebu_host->clk);if (ret) {dev_err (dev,"failed to enable clock: %d\n" , ret); -return ret; + goto err_of_node_put; } ebu_host->clk_rate =clk_get_rate (ebu_host->clk);
@@ -703,6 +706,8 @@ static int ebu_nand_probe(struct platform_device *pdev)ebu_dma_cleanup (ebu_host); err_disable_unprepare_clk:clk_disable_unprepare (ebu_host->clk); +err_of_node_put: +of_node_put (chip_np);return ret; }
drivers/mtd/nand/raw/marvell_nand.c +1 -1
@@ -2672,7 +2672,7 @@ static int marvell_nand_chip_init(struct device *dev, struct marvell_nfc *nfc, chip->controller = &nfc->controller;nand_set_flash_node (chip, np); -if (!of_property_read_bool (np,"marvell,nand-keep-config" )) +if (of_property_read_bool (np,"marvell,nand-keep-config" )) chip->options |=NAND_KEEP_TIMINGS ; mtd =nand_to_mtd (chip);
drivers/net/can/mscan/mpc5xxx_can.c +5 -3
@@ -322,14 +322,14 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev) &mscan_clksrc);if (!priv->can.clock.freq) {dev_err (&ofdev->dev,"couldn't get MSCAN clock properties\n" ); - goto exit_free_mscan; + goto exit_put_clock; } err =register_mscandev (dev, mscan_clksrc);if (err) {dev_err (&ofdev->dev,"registering %s failed (err=%d)\n" ,DRV_NAME , err); - goto exit_free_mscan; + goto exit_put_clock; } dev_info(&ofdev->dev, "MSCAN at 0x%p, irq %d, clock %d Hz\n",
@@ -337,7 +337,9 @@ static int mpc5xxx_can_probe(struct platform_device *ofdev)return 0 ; -exit_free_mscan: +exit_put_clock: +if (data->put_clock) + data->put_clock (ofdev);free_candev (dev); exit_dispose_irq:irq_dispose_mapping (irq);
drivers/net/can/rcar/rcar_canfd.c +11 -13
@@ -1106,11 +1106,13 @@ static void rcar_canfd_handle_global_receive(struct rcar_canfd_global *gpriv, u3 {struct rcar_canfd_channel *priv = gpriv->ch[ch];u32 ridx = ch +RCANFD_RFFIFO_IDX ; -u32 sts; +u32 sts, cc;/* Handle Rx interrupts */ sts =rcar_canfd_read (priv->base,RCANFD_RFSTS (ridx)); -if (likely (sts &RCANFD_RFSTS_RFIF )) { + cc =rcar_canfd_read (priv->base,RCANFD_RFCC (ridx)); +if (likely (sts &RCANFD_RFSTS_RFIF && + cc &RCANFD_RFCC_RFIE )) {if (napi_schedule_prep (&priv->napi)) {/* Disable Rx FIFO interrupts */ rcar_canfd_clear_bit(priv->base,
@@ -1195,11 +1197,9 @@ static void rcar_canfd_handle_channel_tx(struct rcar_canfd_global *gpriv, u32 chstatic irqreturn_t rcar_canfd_channel_tx_interrupt (int irq,void *dev_id) { -struct rcar_canfd_global *gpriv = dev_id; -u32 ch; +struct rcar_canfd_channel *priv = dev_id; -for_each_set_bit (ch, &gpriv->channels_mask,RCANFD_NUM_CHANNELS ) -rcar_canfd_handle_channel_tx (gpriv, ch); +rcar_canfd_handle_channel_tx (priv->gpriv, priv->channel);return IRQ_HANDLED ; }
@@ -1227,11 +1227,9 @@ static void rcar_canfd_handle_channel_err(struct rcar_canfd_global *gpriv, u32 cstatic irqreturn_t rcar_canfd_channel_err_interrupt (int irq,void *dev_id) { -struct rcar_canfd_global *gpriv = dev_id; -u32 ch; +struct rcar_canfd_channel *priv = dev_id; -for_each_set_bit (ch, &gpriv->channels_mask,RCANFD_NUM_CHANNELS ) -rcar_canfd_handle_channel_err (gpriv, ch); +rcar_canfd_handle_channel_err (priv->gpriv, priv->channel);return IRQ_HANDLED ; }
@@ -1649,6 +1647,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, priv->ndev = ndev; priv->base = gpriv->base; priv->channel = ch; + priv->gpriv = gpriv; priv->can.clock.freq = fcan_freq;dev_info (&pdev->dev,"can_clk rate is %u\n" , priv->can.clock.freq);
@@ -1677,7 +1676,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, } err =devm_request_irq (&pdev->dev, err_irq, rcar_canfd_channel_err_interrupt,0 , - irq_name, gpriv); + irq_name, priv);if (err) {dev_err (&pdev->dev,"devm_request_irq CH Err(%d) failed, error %d\n" , err_irq, err);
@@ -1691,7 +1690,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, } err =devm_request_irq (&pdev->dev, tx_irq, rcar_canfd_channel_tx_interrupt,0 , - irq_name, gpriv); + irq_name, priv);if (err) {dev_err (&pdev->dev,"devm_request_irq Tx (%d) failed, error %d\n" , tx_irq, err);
@@ -1715,7 +1714,6 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch, priv->can.do_set_mode = rcar_canfd_do_set_mode; priv->can.do_get_berr_counter = rcar_canfd_get_berr_counter; - priv->gpriv = gpriv;SET_NETDEV_DEV (ndev, &pdev->dev); netif_napi_add(ndev, &priv->napi, rcar_canfd_rx_poll,
drivers/net/can/spi/mcp251x.c +4 -1
@@ -1419,11 +1419,14 @@ static int mcp251x_can_probe(struct spi_device *spi) ret =mcp251x_gpio_setup (priv);if (ret) - goto error_probe; + goto out_unregister_candev;netdev_info (net,"MCP%x successfully initialized.\n" , priv->model);return 0 ; +out_unregister_candev: +unregister_candev (net); + error_probe:destroy_workqueue (priv->wq); priv->wq =NULL ;
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +2 -2
@@ -1873,7 +1873,7 @@ static int kvaser_usb_hydra_start_chip(struct kvaser_usb_net_priv *priv) {int err; -init_completion (&priv->start_comp); +reinit_completion (&priv->start_comp); err =kvaser_usb_hydra_send_simple_cmd (priv->dev,CMD_START_CHIP_REQ , priv->channel);
@@ -1891,7 +1891,7 @@ static int kvaser_usb_hydra_stop_chip(struct kvaser_usb_net_priv *priv) {int err; -init_completion (&priv->stop_comp); +reinit_completion (&priv->stop_comp);/* Make sure we do not report invalid BUS_OFF from CMD_CHIP_STATE_EVENT * see comment in kvaser_usb_hydra_update_state()
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +2 -2
@@ -1324,7 +1324,7 @@ static int kvaser_usb_leaf_start_chip(struct kvaser_usb_net_priv *priv) {int err; -init_completion (&priv->start_comp); +reinit_completion (&priv->start_comp); err =kvaser_usb_leaf_send_simple_cmd (priv->dev,CMD_START_CHIP , priv->channel);
@@ -1342,7 +1342,7 @@ static int kvaser_usb_leaf_stop_chip(struct kvaser_usb_net_priv *priv) {int err; -init_completion (&priv->stop_comp); +reinit_completion (&priv->stop_comp); err =kvaser_usb_leaf_send_simple_cmd (priv->dev,CMD_STOP_CHIP , priv->channel);
drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +12 -5
@@ -239,6 +239,7 @@ enum xgbe_sfp_speed {#define XGBE_SFP_BASE_BR_1GBE_MAX 0x0d#define XGBE_SFP_BASE_BR_10GBE_MIN 0x64#define XGBE_SFP_BASE_BR_10GBE_MAX 0x68 +#define XGBE_MOLEX_SFP_BASE_BR_10GBE_MAX 0x78#define XGBE_SFP_BASE_CU_CABLE_LEN 18
@@ -284,6 +285,8 @@ struct xgbe_sfp_eeprom {#define XGBE_BEL_FUSE_VENDOR "BEL-FUSE "#define XGBE_BEL_FUSE_PARTNO "1GBT-SFP06 " +#define XGBE_MOLEX_VENDOR "Molex Inc. " +struct xgbe_sfp_ascii {union {char vendor[XGBE_SFP_BASE_VENDOR_NAME_LEN +1 ];
@@ -834,7 +837,11 @@ static bool xgbe_phy_sfp_bit_rate(struct xgbe_sfp_eeprom *sfp_eeprom,break ;case XGBE_SFP_SPEED_10000 : min =XGBE_SFP_BASE_BR_10GBE_MIN ; - max =XGBE_SFP_BASE_BR_10GBE_MAX ; +if (memcmp (&sfp_eeprom->base[XGBE_SFP_BASE_VENDOR_NAME ], +XGBE_MOLEX_VENDOR ,XGBE_SFP_BASE_VENDOR_NAME_LEN ) ==0 ) + max =XGBE_MOLEX_SFP_BASE_BR_10GBE_MAX ; +else + max =XGBE_SFP_BASE_BR_10GBE_MAX ;break ;default :return false;
@@ -1151,7 +1158,10 @@ static void xgbe_phy_sfp_parse_eeprom(struct xgbe_prv_data *pdata) }/* Determine the type of SFP */ -if (sfp_base[XGBE_SFP_BASE_10GBE_CC ] &XGBE_SFP_BASE_10GBE_CC_SR ) +if (phy_data->sfp_cable ==XGBE_SFP_CABLE_PASSIVE && +xgbe_phy_sfp_bit_rate (sfp_eeprom,XGBE_SFP_SPEED_10000 )) + phy_data->sfp_base =XGBE_SFP_BASE_10000_CR ; +else if (sfp_base[XGBE_SFP_BASE_10GBE_CC ] &XGBE_SFP_BASE_10GBE_CC_SR ) phy_data->sfp_base =XGBE_SFP_BASE_10000_SR ;else if (sfp_base[XGBE_SFP_BASE_10GBE_CC ] &XGBE_SFP_BASE_10GBE_CC_LR ) phy_data->sfp_base =XGBE_SFP_BASE_10000_LR ;
@@ -1167,9 +1177,6 @@ static void xgbe_phy_sfp_parse_eeprom(struct xgbe_prv_data *pdata) phy_data->sfp_base =XGBE_SFP_BASE_1000_CX ; else if (sfp_base[XGBE_SFP_BASE_1GBE_CC] & XGBE_SFP_BASE_1GBE_CC_T) phy_data->sfp_base = XGBE_SFP_BASE_1000_T; - else if ((phy_data->sfp_cable == XGBE_SFP_CABLE_PASSIVE) && - xgbe_phy_sfp_bit_rate(sfp_eeprom, XGBE_SFP_SPEED_10000)) - phy_data->sfp_base = XGBE_SFP_BASE_10000_CR;switch (phy_data->sfp_base) {case XGBE_SFP_BASE_1000_T :
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c +72 -24
171 lines not on this page · raw message
drivers/net/ethernet/aquantia/atlantic/aq_nic.h +2 -0
@@ -154,6 +154,8 @@ struct aq_nic_s {struct mutex fwreq_mutex;#if IS_ENABLED (CONFIG_MACSEC )struct aq_macsec_cfg *macsec_cfg; +/* mutex to protect data in macsec_cfg */ +struct mutex macsec_mutex;#endif /* PTP support */ struct aq_ptp_s *aq_ptp;
drivers/net/ethernet/broadcom/bcm4908_enet.c +6 -4
@@ -561,8 +561,6 @@ static int bcm4908_enet_start_xmit(struct sk_buff *skb, struct net_device *netdeif (++ring->write_idx == ring->length -1 ) ring->write_idx =0 ; - enet->netdev->stats.tx_bytes += skb->len; - enet->netdev->stats.tx_packets++;return NETDEV_TX_OK ; }
@@ -646,13 +644,17 @@ static int bcm4908_enet_poll_tx(struct napi_struct *napi, int weight)dma_unmap_single (dev, slot->dma_addr, slot->len,DMA_TO_DEVICE );dev_kfree_skb (slot->skb); + + handled++; bytes += slot->len; +if (++tx_ring->read_idx == tx_ring->length) tx_ring->read_idx =0 ; - - handled++; } + enet->netdev->stats.tx_packets += handled; + enet->netdev->stats.tx_bytes += bytes; +if (handled < weight) {napi_complete_done (napi, handled);bcm4908_enet_dma_ring_intrs_on (enet, tx_ring);
drivers/net/ethernet/broadcom/bcmsysport.c +3 -0
@@ -1991,6 +1991,9 @@ static int bcm_sysport_open(struct net_device *dev) goto out_clk_disable; } +/* Indicate that the MAC is responsible for PHY PM */ + phydev->mac_managed_pm = true; +/* Reset house keeping link status */ priv->old_duplex =-1 ; priv->old_link =-1 ;
drivers/net/ethernet/cadence/macb_main.c +1 -0
@@ -880,6 +880,7 @@ static int macb_mii_probe(struct net_device *dev) bp->phylink_config.dev = &dev->dev; bp->phylink_config.type =PHYLINK_NETDEV ; + bp->phylink_config.mac_managed_pm = true;if (bp->phy_interface ==PHY_INTERFACE_MODE_SGMII ) { bp->phylink_config.poll_fixed_state = true;
drivers/net/ethernet/freescale/enetc/enetc.c +5 -0
@@ -1800,7 +1800,12 @@ static void enetc_setup_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring)else enetc_rxbdr_wr (hw, idx,ENETC_RBBSR ,ENETC_RXB_DMA_SIZE ); +/* Also prepare the consumer index in case page allocation never +* succeeds. In that case, hardware will never advance producer index +* to match consumer index, and will drop all frames. +*/ enetc_rxbdr_wr (hw, idx,ENETC_RBPIR ,0 ); +enetc_rxbdr_wr (hw, idx,ENETC_RBCIR ,1 );/* enable Rx ints by setting pkt thr to 1 */ enetc_rxbdr_wr (hw, idx,ENETC_RBICR0 ,ENETC_RBICR0_ICEN |0x1 );
drivers/net/ethernet/freescale/fec_main.c +44 -2
65 lines not on this page · raw message
drivers/net/ethernet/huawei/hinic/hinic_debugfs.c +12 -6
@@ -85,6 +85,7 @@ static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx)struct tag_sml_funcfg_tbl *funcfg_table_elem;struct hinic_cmd_lt_rd *read_data;u16 out_size =sizeof (*read_data); +int ret = ~0 ;int err; read_data =kzalloc (sizeof (*read_data),GFP_KERNEL );
@@ -111,20 +112,25 @@ static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx)switch (idx) {case VALID : -return funcfg_table_elem->dw0.bs.valid; + ret = funcfg_table_elem->dw0.bs.valid; +break ;case RX_MODE : -return funcfg_table_elem->dw0.bs.nic_rx_mode; + ret = funcfg_table_elem->dw0.bs.nic_rx_mode; +break ;case MTU : -return funcfg_table_elem->dw1.bs.mtu; + ret = funcfg_table_elem->dw1.bs.mtu; +break ;case RQ_DEPTH : -return funcfg_table_elem->dw13.bs.cfg_rq_depth; + ret = funcfg_table_elem->dw13.bs.cfg_rq_depth; +break ;case QUEUE_NUM : -return funcfg_table_elem->dw13.bs.cfg_q_num; + ret = funcfg_table_elem->dw13.bs.cfg_q_num; +break ; }kfree (read_data); -return ~0 ; +return ret; } static ssize_t hinic_dbg_cmd_read(struct file *filp, char __user *buffer, size_t count,
drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c +1 -1
@@ -929,7 +929,7 @@ int hinic_init_cmdqs(struct hinic_cmdqs *cmdqs, struct hinic_hwif *hwif, err_set_cmdq_depth:hinic_ceq_unregister_cb (&func_to_io->ceqs,HINIC_CEQ_CMDQ ); - +free_cmdq (&cmdqs->cmdq[HINIC_CMDQ_SYNC ]); err_cmdq_ctxt:hinic_wqs_cmdq_free (&cmdqs->cmdq_pages, cmdqs->saved_wqs,HINIC_MAX_CMDQ_TYPES );
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c +1 -1
@@ -892,7 +892,7 @@ int hinic_set_interrupt_cfg(struct hinic_hwdev *hwdev,if (err)return -EINVAL ; - interrupt_info->lli_credit_cnt = temp_info.lli_timer_cnt; + interrupt_info->lli_credit_cnt = temp_info.lli_credit_cnt; interrupt_info->lli_timer_cnt = temp_info.lli_timer_cnt; err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_COMM,
drivers/net/ethernet/huawei/hinic/hinic_sriov.c +0 -1
@@ -1180,7 +1180,6 @@ int hinic_vf_func_init(struct hinic_hwdev *hwdev)dev_err (&hwdev->hwif->pdev->dev,"Failed to register VF, err: %d, status: 0x%x, out size: 0x%x\n" , err, register_info.status, out_size); -hinic_unregister_vf_mbox_cb (hwdev,HINIC_MOD_L2NIC );return -EIO ; } }else {
drivers/net/ethernet/ibm/ehea/ehea_main.c +1 -0
@@ -2898,6 +2898,7 @@ static struct device *ehea_register_port(struct ehea_port *port, ret =of_device_register (&port->ofdev);if (ret) {pr_err ("failed to register device. ret=%d\n" , ret); +put_device (&port->ofdev.dev); goto out; }
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +60 -40
158 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_type.h +4 -0
@@ -1404,6 +1404,10 @@ struct i40e_lldp_variables {#define I40E_PFQF_CTL_0_HASHLUTSIZE_512 0x00010000/* INPUT SET MASK for RSS, flow director, and flexible payload */ +#define I40E_X722_L3_SRC_SHIFT 49 +#define I40E_X722_L3_SRC_MASK (0x3ULL << I40E_X722_L3_SRC_SHIFT) +#define I40E_X722_L3_DST_SHIFT 41 +#define I40E_X722_L3_DST_MASK (0x3ULL << I40E_X722_L3_DST_SHIFT)#define I40E_L3_SRC_SHIFT 47#define I40E_L3_SRC_MASK (0x3ULL << I40E_L3_SRC_SHIFT)#define I40E_L3_V6_SRC_SHIFT 43
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +32 -11
86 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h +1 -0
@@ -39,6 +39,7 @@ enum i40e_vf_states {I40E_VF_STATE_MC_PROMISC ,I40E_VF_STATE_UC_PROMISC ,I40E_VF_STATE_PRE_ENABLE , + I40E_VF_STATE_RESETTING };/* VF capabilities */
drivers/net/ethernet/lantiq_etop.c +0 -1
@@ -466,7 +466,6 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev) len = skb->len <ETH_ZLEN ?ETH_ZLEN : skb->len;if ((desc->ctl & (LTQ_DMA_OWN |LTQ_DMA_C )) || ch->skb[ch->dma.desc]) { -dev_kfree_skb_any (skb);netdev_err (dev,"tx ring full\n" );netif_tx_stop_queue (txq);return NETDEV_TX_BUSY ;
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +5 -5
@@ -1865,7 +1865,7 @@ void mlx5_cmd_init_async_ctx(struct mlx5_core_dev *dev, ctx->dev = dev;/* Starts at 1 to avoid doing wake_up if we are not cleaning up */ atomic_set (&ctx->num_inflight,1 ); -init_waitqueue_head (&ctx->wait); +init_completion (&ctx->inflight_done); }EXPORT_SYMBOL (mlx5_cmd_init_async_ctx);
@@ -1879,8 +1879,8 @@ EXPORT_SYMBOL(mlx5_cmd_init_async_ctx);*/ void mlx5_cmd_cleanup_async_ctx (struct mlx5_async_ctx *ctx) { -atomic_dec (&ctx->num_inflight); -wait_event (ctx->wait,atomic_read (&ctx->num_inflight) ==0 ); +if (!atomic_dec_and_test (&ctx->num_inflight)) +wait_for_completion (&ctx->inflight_done); }EXPORT_SYMBOL (mlx5_cmd_cleanup_async_ctx);
@@ -1891,7 +1891,7 @@ static void mlx5_cmd_exec_cb_handler(int status, void *_work) work->user_callback (status, work);if (atomic_dec_and_test (&ctx->num_inflight)) -wake_up (&ctx->wait); +complete (&ctx->inflight_done); } int mlx5_cmd_exec_cb(struct mlx5_async_ctx *ctx, void *in, int in_size,
@@ -1907,7 +1907,7 @@ int mlx5_cmd_exec_cb(struct mlx5_async_ctx *ctx, void *in, int in_size, ret =cmd_exec (ctx->dev, in, in_size, out, out_size, mlx5_cmd_exec_cb_handler, work, false);if (ret &&atomic_dec_and_test (&ctx->num_inflight)) -wake_up (&ctx->wait); +complete (&ctx->inflight_done);return ret; }
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h +9 -0
@@ -6,6 +6,7 @@#include "en.h" #include "en_stats.h" +#include "en/txrx.h" #include <linux/ptp_classify.h> #define MLX5E_PTP_CHANNEL_IX 0
@@ -67,6 +68,14 @@ static inline bool mlx5e_use_ptpsq(struct sk_buff *skb) fk.ports.dst == htons(PTP_EV_PORT)); } +static inline bool mlx5e_ptpsq_fifo_has_room (struct mlx5e_txqsq *sq) +{ +if (!sq->ptpsq) +return true; + +return mlx5e_skb_fifo_has_room (&sq->ptpsq->skb_fifo); +} +int mlx5e_ptp_open (struct mlx5e_priv *priv,struct mlx5e_params *params,u8 lag_port,struct mlx5e_ptp **cp);void mlx5e_ptp_close (struct mlx5e_ptp *c);
drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +6 -0
@@ -73,6 +73,12 @@ netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev);bool mlx5e_poll_tx_cq (struct mlx5e_cq *cq,int napi_budget);void mlx5e_free_txqsq_descs (struct mlx5e_txqsq *sq); +static inline bool +mlx5e_skb_fifo_has_room (struct mlx5e_skb_fifo *fifo) +{ +return (*fifo->pc - *fifo->cc) < fifo->mask; +} +static inline bool mlx5e_wqc_has_room_for (struct mlx5_wq_cyc *wq,u16 cc,u16 pc,u16 n) {
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +0 -3
@@ -113,7 +113,6 @@ static bool mlx5e_ipsec_update_esn_state(struct mlx5e_ipsec_sa_entry *sa_entry)struct xfrm_replay_state_esn *replay_esn;u32 seq_bottom =0 ;u8 overlap; -u32 *esn;if (!(sa_entry->x->props.flags &XFRM_STATE_ESN )) { sa_entry->esn_state.trigger =0 ;
@@ -128,11 +127,9 @@ static bool mlx5e_ipsec_update_esn_state(struct mlx5e_ipsec_sa_entry *sa_entry) sa_entry->esn_state.esn =xfrm_replay_seqhi (sa_entry->x,htonl (seq_bottom)); - esn = &sa_entry->esn_state.esn; sa_entry->esn_state.trigger =1 ;if (unlikely (overlap && seq_bottom <MLX5E_IPSEC_ESN_SCOPE_MID )) { - ++(*esn); sa_entry->esn_state.overlap =0 ;return true; } else if (unlikely(!overlap &&
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +6 -0
@@ -479,6 +479,11 @@ mlx5e_txwqe_complete(struct mlx5e_txqsq *sq, struct sk_buff *skb,if (unlikely (sq->ptpsq)) {mlx5e_skb_cb_hwtstamp_init (skb);mlx5e_skb_fifo_push (&sq->ptpsq->skb_fifo, skb); +if (!netif_tx_queue_stopped (sq->txq) && + !mlx5e_skb_fifo_has_room (&sq->ptpsq->skb_fifo)) { +netif_tx_stop_queue (sq->txq); + sq->stats->stopped++; + }skb_get (skb); }
@@ -906,6 +911,7 @@ bool mlx5e_poll_tx_cq(struct mlx5e_cq *cq, int napi_budget)if (netif_tx_queue_stopped (sq->txq) &&mlx5e_wqc_has_room_for (&sq->wq, sq->cc, sq->pc, sq->stop_room) && +mlx5e_ptpsq_fifo_has_room (sq) && !test_bit (MLX5E_SQ_STATE_RECOVERING , &sq->state)) {netif_tx_wake_queue (sq->txq); stats->wake++;
drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +3 -3
@@ -122,7 +122,7 @@ void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev) {struct mlx5_mpfs *mpfs = dev->priv.mpfs; -if (!MLX5_ESWITCH_MANAGER (dev)) +if (!mpfs)return ;WARN_ON (!hlist_empty (mpfs->hash));
@@ -137,7 +137,7 @@ int mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u8 *mac)int err =0 ;u32 index; -if (!MLX5_ESWITCH_MANAGER (dev)) +if (!mpfs)return 0 ;mutex_lock (&mpfs->lock);
@@ -185,7 +185,7 @@ int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac)int err =0 ;u32 index; -if (!MLX5_ESWITCH_MANAGER (dev)) +if (!mpfs)return 0 ;mutex_lock (&mpfs->lock);
drivers/net/ethernet/mellanox/mlx5/core/main.c +41 -14
103 lines not on this page · raw message
drivers/net/ethernet/micrel/ksz884x.c +1 -1
@@ -6848,7 +6848,7 @@ static int pcidev_init(struct pci_dev *pdev, const struct pci_device_id *id)char banner[sizeof (version)];struct ksz_switch *sw =NULL ; - result =pci_enable_device (pdev); + result =pcim_enable_device (pdev);if (result)return result;
drivers/net/ethernet/socionext/netsec.c +2 -0
@@ -1964,11 +1964,13 @@ static int netsec_register_mdio(struct netsec_priv *priv, u32 phy_addr) ret =PTR_ERR (priv->phydev);dev_err (priv->dev,"get_phy_device err(%d)\n" , ret); priv->phydev =NULL ; +mdiobus_unregister (bus);return -ENODEV ; } ret =phy_device_register (priv->phydev);if (ret) { +phy_device_free (priv->phydev);mdiobus_unregister (bus);dev_err (priv->dev,"phy_device_register err(%d)\n" , ret);
drivers/net/ethernet/socionext/sni_ave.c +6 -0
@@ -1229,6 +1229,8 @@ static int ave_init(struct net_device *ndev)phy_support_asym_pause (phydev); + phydev->mac_managed_pm = true; +phy_attached_info (phydev);return 0 ;
@@ -1758,6 +1760,10 @@ static int ave_resume(struct device *dev)ave_global_reset (ndev); + ret =phy_init_hw (ndev->phydev); +if (ret) +return ret; +ave_ethtool_get_wol (ndev, &wol); wol.wolopts = priv->wolopts;__ave_ethtool_set_wol (ndev, &wol);
drivers/net/netdevsim/dev.c +7 -4
@@ -229,8 +229,10 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)if (IS_ERR (nsim_dev->ddir))return PTR_ERR (nsim_dev->ddir); nsim_dev->ports_ddir =debugfs_create_dir ("ports" , nsim_dev->ddir); -if (IS_ERR (nsim_dev->ports_ddir)) -return PTR_ERR (nsim_dev->ports_ddir); +if (IS_ERR (nsim_dev->ports_ddir)) { + err =PTR_ERR (nsim_dev->ports_ddir); + goto err_ddir; + }debugfs_create_bool ("fw_update_status" ,0600 , nsim_dev->ddir, &nsim_dev->fw_update_status); debugfs_create_u32("fw_update_overwrite_mask", 0600, nsim_dev->ddir,
@@ -267,7 +269,7 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev) nsim_dev->nodes_ddir =debugfs_create_dir ("rate_nodes" , nsim_dev->ddir);if (IS_ERR (nsim_dev->nodes_ddir)) { err =PTR_ERR (nsim_dev->nodes_ddir); - goto err_out; + goto err_ports_ddir; } debugfs_create_bool("fail_trap_drop_counter_get", 0600, nsim_dev->ddir,
@@ -275,8 +277,9 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)nsim_udp_tunnels_debugfs_create (nsim_dev);return 0 ; -err_out: +err_ports_ddir:debugfs_remove_recursive (nsim_dev->ports_ddir); +err_ddir:debugfs_remove_recursive (nsim_dev->ddir);return err; }
drivers/nfc/virtual_ncidev.c +3 -0
@@ -54,16 +54,19 @@ static int virtual_nci_send(struct nci_dev *ndev, struct sk_buff *skb)mutex_lock (&nci_mutex);if (state != virtual_ncidev_enabled) {mutex_unlock (&nci_mutex); +kfree_skb (skb);return 0 ; }if (send_buff) {mutex_unlock (&nci_mutex); +kfree_skb (skb);return -1 ; } send_buff =skb_copy (skb,GFP_KERNEL );mutex_unlock (&nci_mutex);wake_up_interruptible (&wq); +consume_skb (skb);return 0 ; }
drivers/pinctrl/pinctrl-ingenic.c +2 -2
@@ -643,7 +643,7 @@ static u8 jz4755_lcd_24bit_funcs[] = { 1, 1, 1, 1, 0, 0, };static const struct group_desc jz4755_groups[] = {INGENIC_PIN_GROUP ("uart0-data" , jz4755_uart0_data,0 ),INGENIC_PIN_GROUP ("uart0-hwflow" , jz4755_uart0_hwflow,0 ), -INGENIC_PIN_GROUP ("uart1-data" , jz4755_uart1_data,0 ), +INGENIC_PIN_GROUP ("uart1-data" , jz4755_uart1_data,1 ),INGENIC_PIN_GROUP ("uart2-data" , jz4755_uart2_data,1 ),INGENIC_PIN_GROUP ("ssi-dt-b" , jz4755_ssi_dt_b,0 ),INGENIC_PIN_GROUP ("ssi-dt-f" , jz4755_ssi_dt_f,0 ),
@@ -697,7 +697,7 @@ static const char *jz4755_ssi_groups[] = { "ssi-ce1-b", "ssi-ce1-f", };static const char *jz4755_mmc0_groups[] = {"mmc0-1bit" ,"mmc0-4bit" , }; -static const char *jz4755_mmc1_groups[] = {"mmc0-1bit" ,"mmc0-4bit" , }; +static const char *jz4755_mmc1_groups[] = {"mmc1-1bit" ,"mmc1-4bit" , };static const char *jz4755_i2c_groups[] = {"i2c-data" , };static const char *jz4755_cim_groups[] = {"cim-data" , };static const char *jz4755_lcd_groups[] = {
drivers/scsi/lpfc/lpfc.h +0 -40
@@ -920,10 +920,6 @@ struct lpfc_hba { (struct lpfc_vport *vport, struct lpfc_io_buf *lpfc_cmd, uint8_t tmo); -int (*lpfc_scsi_prep_task_mgmt_cmd) - (struct lpfc_vport *vport, -struct lpfc_io_buf *lpfc_cmd, -u64 lun,u8 task_mgmt_cmd);/* IOCB interface function jump table entries */ int (*__lpfc_sli_issue_iocb)
@@ -1807,39 +1803,3 @@ static inline int lpfc_is_vmid_enabled(struct lpfc_hba *phba) {return phba->cfg_vmid_app_header || phba->cfg_vmid_priority_tagging; } - -static inline -u8 get_job_ulpstatus (struct lpfc_hba *phba,struct lpfc_iocbq *iocbq) -{ -if (phba->sli_rev ==LPFC_SLI_REV4 ) -return bf_get (lpfc_wcqe_c_status, &iocbq->wcqe_cmpl); -else -return iocbq->iocb.ulpStatus; -} - -static inline -u32 get_job_word4 (struct lpfc_hba *phba,struct lpfc_iocbq *iocbq) -{ -if (phba->sli_rev ==LPFC_SLI_REV4 ) -return iocbq->wcqe_cmpl.parameter; -else -return iocbq->iocb.un.ulpWord[4 ]; -} - -static inline -u8 get_job_cmnd (struct lpfc_hba *phba,struct lpfc_iocbq *iocbq) -{ -if (phba->sli_rev ==LPFC_SLI_REV4 ) -return bf_get (wqe_cmnd, &iocbq->wqe.generic.wqe_com); -else -return iocbq->iocb.ulpCommand; -} - -static inline -u16 get_job_ulpcontext (struct lpfc_hba *phba,struct lpfc_iocbq *iocbq) -{ -if (phba->sli_rev ==LPFC_SLI_REV4 ) -return bf_get (wqe_ctxt_tag, &iocbq->wqe.generic.wqe_com); -else -return iocbq->iocb.ulpContext; -}
drivers/scsi/lpfc/lpfc_bsg.c +25 -25
158 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_crtn.h +1 -2
@@ -129,7 +129,6 @@ void lpfc_disc_list_loopmap(struct lpfc_vport *);void lpfc_disc_start (struct lpfc_vport *);void lpfc_cleanup_discovery_resources (struct lpfc_vport *);void lpfc_cleanup (struct lpfc_vport *); -void lpfc_prep_embed_io (struct lpfc_hba *phba,struct lpfc_io_buf *lpfc_ncmd);void lpfc_disc_timeout (struct timer_list *);int lpfc_unregister_fcf_prep (struct lpfc_hba *);
@@ -211,7 +210,7 @@ int lpfc_config_port_post(struct lpfc_hba *);int lpfc_hba_down_prep (struct lpfc_hba *);int lpfc_hba_down_post (struct lpfc_hba *);void lpfc_hba_init (struct lpfc_hba *,uint32_t *); -int lpfc_sli3_post_buffer (struct lpfc_hba *phba,struct lpfc_sli_ring *pring,int cnt); +int lpfc_post_buffer (struct lpfc_hba *,struct lpfc_sli_ring *,int );void lpfc_decode_firmware_rev (struct lpfc_hba *,char *,int );int lpfc_online (struct lpfc_hba *);void lpfc_unblock_mgmt_io (struct lpfc_hba *);
drivers/scsi/lpfc/lpfc_ct.c +4 -4
@@ -239,7 +239,7 @@ lpfc_ct_reject_event(struct lpfc_nodelist *ndlp, cmdiocbq->context1 =lpfc_nlp_get (ndlp); cmdiocbq->context2 = (uint8_t *)mp; cmdiocbq->context3 = (uint8_t *)bmp; - cmdiocbq->cmd_cmpl = lpfc_ct_unsol_cmpl; + cmdiocbq->iocb_cmpl = lpfc_ct_unsol_cmpl; icmd->ulpContext = rx_id;/* Xri / rx_id */ icmd->unsli3.rcvsli3.ox_id = ox_id; icmd->un.ulpWord[3] =
@@ -370,7 +370,7 @@ lpfc_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,/* Not enough posted buffers; Try posting more buffers */ phba->fc_stat.NoRcvBuf++;if (!(phba->sli3_options &LPFC_SLI3_HBQ_ENABLED )) -lpfc_sli3_post_buffer (phba, pring,2 ); +lpfc_post_buffer (phba, pring,2 );return ; }
@@ -447,7 +447,7 @@ lpfc_ct_unsol_event(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,lpfc_ct_unsol_buffer (phba, iocbq, mp, size);lpfc_in_buf_free (phba, mp); } -lpfc_sli3_post_buffer (phba, pring, i); +lpfc_post_buffer (phba, pring, i); }list_del (&head); }
@@ -652,7 +652,7 @@ lpfc_gen_req(struct lpfc_vport *vport, struct lpfc_dmabuf *bmp,"Data: x%x x%x\n" , ndlp->nlp_DID, icmd->ulpIoTag, vport->port_state); - geniocb->cmd_cmpl = cmpl; + geniocb->iocb_cmpl = cmpl; geniocb->drvrTimeout = icmd->ulpTimeout +LPFC_DRVR_TIMEOUT ; geniocb->vport = vport; geniocb->retry = retry;
drivers/scsi/lpfc/lpfc_els.c +70 -69
455 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_hw4.h +0 -7
@@ -60,13 +60,6 @@ ((ptr)->name##_WORD = ((((value) & name##_MASK) << name##_SHIFT) | \ ((ptr)->name##_WORD & ~(name##_MASK << name##_SHIFT)))) -#define get_wqe_reqtag (x) (((x)->wqe.words[9] >> 0) & 0xFFFF) - -#define get_job_ulpword (x, y) ((x)->iocb.un.ulpWord[y]) - -#define set_job_ulpstatus (x, y) bf_set(lpfc_wcqe_c_status, &(x)->wcqe_cmpl, y) -#define set_job_ulpword4 (x, y) ((&(x)->wcqe_cmpl)->parameter = y) -struct dma_address {uint32_t addr_lo;uint32_t addr_hi;
drivers/scsi/lpfc/lpfc_init.c +7 -6
@@ -982,7 +982,7 @@ lpfc_hba_clean_txcmplq(struct lpfc_hba *phba)spin_lock_irq (&pring->ring_lock);list_for_each_entry_safe (piocb, next_iocb, &pring->txcmplq, list) - piocb->cmd_flag &= ~LPFC_IO_ON_TXCMPLQ ; + piocb->iocb_flag &= ~LPFC_IO_ON_TXCMPLQ ;list_splice_init (&pring->txcmplq, &completions); pring->txcmplq_cnt =0 ;spin_unlock_irq (&pring->ring_lock);
@@ -2643,7 +2643,7 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp) }/** -* lpfc_sli3_post_buffer - Post IOCB(s) with DMA buffer descriptor(s) to a IOCB ring +* lpfc_post_buffer - Post IOCB(s) with DMA buffer descriptor(s) to a IOCB ring * @phba: pointer to lpfc hba data structure. * @pring: pointer to a IOCB ring. * @cnt: the number of IOCBs to be posted to the IOCB ring.
@@ -2655,7 +2655,7 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)* The number of IOCBs NOT able to be posted to the IOCB ring. **/ int -lpfc_sli3_post_buffer (struct lpfc_hba *phba,struct lpfc_sli_ring *pring,int cnt) +lpfc_post_buffer (struct lpfc_hba *phba,struct lpfc_sli_ring *pring,int cnt) {IOCB_t *icmd;struct lpfc_iocbq *iocb;
@@ -2761,7 +2761,7 @@ lpfc_post_rcv_buf(struct lpfc_hba *phba)struct lpfc_sli *psli = &phba->sli;/* Ring 0, ELS / CT buffers */ -lpfc_sli3_post_buffer (phba, &psli->sli3_ring[LPFC_ELS_RING ],LPFC_BUF_RING0 ); +lpfc_post_buffer (phba, &psli->sli3_ring[LPFC_ELS_RING ],LPFC_BUF_RING0 );/* Ring 2 - FCP no buffers needed */ return 0 ;
@@ -4215,7 +4215,8 @@ lpfc_io_buf_replenish(struct lpfc_hba *phba, struct list_head *cbuf) qp = &phba->sli4_hba.hdwq[idx]; lpfc_cmd->hdwq_no = idx; lpfc_cmd->hdwq = qp; - lpfc_cmd->cur_iocbq.cmd_cmpl =NULL ; + lpfc_cmd->cur_iocbq.wqe_cmpl =NULL ; + lpfc_cmd->cur_iocbq.iocb_cmpl =NULL ;spin_lock (&qp->io_buf_list_put_lock);list_add_tail (&lpfc_cmd->list, &qp->lpfc_io_buf_list_put);
@@ -11968,7 +11969,7 @@ lpfc_sli_enable_msi(struct lpfc_hba *phba) rc =pci_enable_msi (phba->pcidev);if (!rc)lpfc_printf_log (phba,KERN_INFO ,LOG_INIT , -"0012 PCI enable MSI mode success.\n" ); +"0462 PCI enable MSI mode success.\n" );else {lpfc_printf_log (phba,KERN_INFO ,LOG_INIT ,"0471 PCI enable MSI mode failed (%d)\n" , rc);
drivers/scsi/lpfc/lpfc_nportdisc.c +2 -2
@@ -2139,9 +2139,9 @@ lpfc_cmpl_prli_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, npr =NULL ; nvpr =NULL ; temp_ptr =lpfc_check_elscmpl_iocb (phba, cmdiocb, rspiocb); -if (cmdiocb->cmd_flag &LPFC_PRLI_FCP_REQ ) +if (cmdiocb->iocb_flag &LPFC_PRLI_FCP_REQ ) npr = (PRLI *) temp_ptr; -else if (cmdiocb->cmd_flag &LPFC_PRLI_NVME_REQ ) +else if (cmdiocb->iocb_flag &LPFC_PRLI_NVME_REQ ) nvpr = (struct lpfc_nvme_prli *) temp_ptr; irsp = &rspiocb->iocb;
drivers/scsi/lpfc/lpfc_nvme.c +16 -18
@@ -352,12 +352,11 @@ __lpfc_nvme_ls_req_cmp(struct lpfc_hba *phba, struct lpfc_vport *vport,static void lpfc_nvme_ls_req_cmp (struct lpfc_hba *phba,struct lpfc_iocbq *cmdwqe, -struct lpfc_iocbq *rspwqe) +struct lpfc_wcqe_complete *wcqe) {struct lpfc_vport *vport = cmdwqe->vport;struct lpfc_nvme_lport *lport;uint32_t status; -struct lpfc_wcqe_complete *wcqe = &rspwqe->wcqe_cmpl; status =bf_get (lpfc_wcqe_c_status, wcqe) &LPFC_IOCB_STATUS_MASK ;
@@ -381,7 +380,7 @@ lpfc_nvme_gen_req(struct lpfc_vport *vport, struct lpfc_dmabuf *bmp,struct lpfc_dmabuf *inp, struct nvmefc_ls_req *pnvme_lsreq, void (*cmpl)(struct lpfc_hba *, struct lpfc_iocbq *, -struct lpfc_iocbq *), +struct lpfc_wcqe_complete *), struct lpfc_nodelist *ndlp, uint32_t num_entry, uint32_t tmo, uint8_t retry) {
@@ -402,7 +401,7 @@ lpfc_nvme_gen_req(struct lpfc_vport *vport, struct lpfc_dmabuf *bmp,memset (wqe,0 ,sizeof (union lpfc_wqe )); genwqe->context3 = (uint8_t *)bmp; - genwqe->cmd_flag |=LPFC_IO_NVME_LS ; + genwqe->iocb_flag |=LPFC_IO_NVME_LS ;/* Save for completion so we can release these resources */ genwqe->context1 =lpfc_nlp_get (ndlp);
@@ -433,7 +432,7 @@ lpfc_nvme_gen_req(struct lpfc_vport *vport, struct lpfc_dmabuf *bmp, first_len = xmit_len; } - genwqe->num_bdes = num_entry; + genwqe->rsvd2 = num_entry; genwqe->hba_wqidx =0 ;/* Words 0 - 2 */
@@ -484,7 +483,8 @@ lpfc_nvme_gen_req(struct lpfc_vport *vport, struct lpfc_dmabuf *bmp,/* Issue GEN REQ WQE for NPORT <did> */ - genwqe->cmd_cmpl = cmpl; + genwqe->wqe_cmpl = cmpl; + genwqe->iocb_cmpl =NULL ; genwqe->drvrTimeout = tmo +LPFC_DRVR_TIMEOUT ; genwqe->vport = vport; genwqe->retry = retry;
Lines of this file are not shown. View the raw message.
drivers/scsi/lpfc/lpfc_nvmet.c +39 -44
83 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_scsi.c +241 -200
441 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli.c +485 -391
876 lines not on this page · raw message
drivers/staging/media/atomisp/pci/sh_css_params.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/tty/serial/serial_core.c +49 -12
61 lines not on this page · raw message
drivers/usb/gadget/function/uvc_queue.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/uvc_video.c +16 -6
Lines of this file are not shown. View the raw message.
drivers/usb/host/xhci-pci.c +15 -29
44 lines not on this page · raw message
drivers/video/fbdev/smscufx.c +30 -25
55 lines not on this page · raw message
kernel/events/core.c +114 -39
153 lines not on this page · raw message
tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json +3 -3
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/arch/powerpc/power10/nest_metrics.json +36 -36
72 lines not on this page · raw message
tools/testing/selftests/kvm/memslot_modification_stress_test.c +1 -1
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.