Merge tag 'android11-5.4.191_r01' into android11-5.4

This is the merge of the upstream LTS release of 5.4.191 into the
android11-5.4 branch.

It contains the following commits:

d81463675427 Merge tag 'android11-5.4.191_r01' into android11-5.4
84c84ac7a3 Revert "oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup"
36dda9143f Merge 5.4.191 into android11-5.4-lts
4426e6017f Linux 5.4.191
3c946909a3 Revert "net: micrel: fix KS8851_MLL Kconfig"
c028b81d06 block/compat_ioctl: fix range check in BLKGETSIZE
27da8d16e4 staging: ion: Prevent incorrect reference counting behavour
cb158b152e spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and controller
1b6ad24210 jbd2: fix a potential race while discarding reserved buffers after an abort
0b1ba14ab2 ext4: force overhead calculation if the s_overhead_cluster makes no sense
425301ef60 ext4: fix overhead calculation to account for the reserved gdt blocks
ea9c206111 ext4, doc: fix incorrect h_reserved size
259dc49dea ext4: limit length to bitmap_maxbytes - blocksize in punch_hole
faadbf7ac4 ext4: fix use-after-free in ext4_search_dir
0309665eb2 ext4: fix symlink file size not match to file content
ddfe3babc5 arm_pmu: Validate single/group leader events
852b02d1f8 ARC: entry: fix syscall_trace_exit argument
016ba7cbed e1000e: Fix possible overflow in LTR decoding
1217cf141b ASoC: soc-dapm: fix two incorrect uses of list iterator
aa70705560 openvswitch: fix OOB access in reserve_sfa_size()
d24e0d9d69 xtensa: fix a7 clobbering in coprocessor context load/store
4c26a96d0c xtensa: patch_text: Fixup last cpu should be master
8d6937c1e0 powerpc/perf: Fix power9 event alternatives
0dafb826ed drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage
013231f75f KVM: PPC: Fix TCE handling for VFIO
9cf05812cb drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare
4f08e85ca0 drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised
23f0ba5585 dma: at_xdmac: fix a missing check on list iterator
a22f3c9926 ata: pata_marvell: Check the 'bmdma_addr' beforing reading
0441d3e95b oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup
530d32ac52 EDAC/synopsys: Read the error count from the correct register
91367af460 stat: fix inconsistency between struct stat and struct compat_stat
837e319ebe scsi: qedi: Fix failed disconnect handling
4b813ce289 net: macb: Restart tx only if queue pointer is lagging
a1419bee4d drm/msm/mdp5: check the return of kzalloc()
80b188da30 dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info()
46f9fa0a66 brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant
12a753edd9 mt76: Fix undefined behavior due to shift overflowing the constant
7c48a6e62d cifs: Check the IOCB_DIRECT flag, not O_DIRECT
435142fbdc vxlan: fix error return code in vxlan_fdb_append
99c2d9a52f ALSA: usb-audio: Fix undefined behavior due to shift overflowing the constant
3e28d157e5 platform/x86: samsung-laptop: Fix an unsigned comparison which can never be negative
54be94d336 reset: tegra-bpmp: Restore Handle errors in BPMP response
0cb2c00dd1 ARM: vexpress/spc: Avoid negative array index when !SMP
3a5ad1b8db selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
d37295129e netlink: reset network and mac headers in netlink_dump()
4c4f2a019f l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu
8c5ca6492a net/sched: cls_u32: fix possible leak in u32_init_knode()
f883def546 net/packet: fix packet_sock xmit return value checking
e1bc684c81 net/smc: Fix sock leak when release after smc_shutdown()
f10e5c9f22 rxrpc: Restore removed timer deletion
9a9c481593 igc: Fix BUG: scheduling while atomic
f9d5d17d23 igc: Fix infinite loop in release_swfw_sync
6d6271dbbb dmaengine: mediatek:Fix PM usage reference leak of mtk_uart_apdma_alloc_chan_resources
65c36555bd dmaengine: imx-sdma: Fix error checking in sdma_event_remap
ccf554d148 ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component
6a20bf46c6 ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek
6a54979c78 ALSA: usb-audio: Clear MIDI port active flag after draining
9c99aacfb4 tcp: Fix potential use-after-free due to double kfree()
5a4f3eba21 net/sched: cls_u32: fix netns refcount changes in u32_change()
b01b700e0c tcp: fix race condition when creating child sockets from syncookies
ebb3b84596 gfs2: assign rgrp glock before compute_bitstructs
660784e719 can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path
2da11442a1 tracing: Dump stacktrace trigger to the corresponding instance
bad7ed5575 mm: page_alloc: fix building error on -Werror=array-compare
ac94e87675 etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead
af912bfbcd Merge branch 'android11-5.4' into 'android11-5.4-lts'
4bd8a3c04c Merge 5.4.190 into android11-5.4-lts
dc213ac856 Linux 5.4.190
a83a18c4c9 ax25: Fix UAF bugs in ax25 timers
40cb8b3b19 ax25: Fix NULL pointer dereferences in ax25 timers
d2be5b563e ax25: fix NPD bug in ax25_disconnect
eaa7eb23fa ax25: fix UAF bug in ax25_send_control()
9e1e088a57 ax25: Fix refcount leaks caused by ax25_cb_del()
7528d0f221 ax25: fix UAF bugs of net_device caused by rebinding operation
1db0b2c55c ax25: fix reference count leaks of ax25_dev
418993bbaa ax25: add refcount in ax25_dev to avoid UAF bugs
4459946e86 dma-direct: avoid redundant memory sync for swiotlb
7efb8e49f6 i2c: pasemi: Wait for write xfers to finish
659855c62c smp: Fix offline cpu check in flush_smp_call_function_queue()
7f84c93722 dm integrity: fix memory corruption when tag_size is less than digest size
89931d4762 ARM: davinci: da850-evm: Avoid NULL pointer dereference
28956e530b tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
f4fb50ee25 genirq/affinity: Consider that CPUs on nodes can be unbalanced
f616ecec0f drm/amd/display: don't ignore alpha property on pre-multiplied mode
ab2f5afb7a ipv6: fix panic when forwarding a pkt with no in6 dev
377a80ca65 ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
5f77b1c0e6 ALSA: hda/realtek: Add quirk for Clevo PD50PNT
358e7b451a btrfs: mark resumed async balance as writing
d5b0b11c06 btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
0aad67337f ath9k: Fix usage of driver-private space in tx_info
7fb98e4f5b ath9k: Properly clear TX status area before reporting to mac80211
7a9e1327cc gcc-plugins: latent_entropy: use /dev/urandom
534d0aebe1 mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
b56d305274 mm, page_alloc: fix build_zonerefs_node()
e07a70ca83 perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
d05cd68ed8 drivers: net: slip: fix NPD bug in sl_tx_timeout()
6d41134f30 scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
3ecd43dcda scsi: mvsas: Add PCI ID of RocketRaid 2640
deab81144d powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
dd9b4b435a drm/amd/display: Fix allocate_mst_payload assert on resume
404998a137 net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
4a24416796 tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
29c2910c50 arm64: alternatives: mark patch_alternative() as `noinstr`
8c4db601ac regulator: wm8994: Add an off-on delay for WM8994 variant
066180758f gpu: ipu-v3: Fix dev_dbg frequency output
b4ef44c7c2 ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
4cd3c9e070 net: micrel: fix KS8851_MLL Kconfig
6117facb44 scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
fb7a511542 scsi: target: tcmu: Fix possible page UAF
70b97c1546 Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
c7a268b338 drm/amdkfd: Check for potential null return of kmalloc_array()
2f3e1f3863 drm/amdkfd: Fix Incorrect VMIDs passed to HWS
46ca8233f1 drm/amd/display: Update VTEM Infopacket definition
74090c44c1 drm/amd/display: fix audio format not updated after edid updated
0b3c2222d7 drm/amd: Add USBC connector ID
22d658c6c5 cifs: potential buffer overflow in handling symlinks
5c63ad2b0a nfc: nci: add flush_workqueue to prevent uaf
1407cc68aa testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
37e54d151e sctp: Initialize daddr on peeled off socket
a05f5e26cb net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
1ac7c6d75e drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
02ee10d2a4 cfg80211: hold bss_lock while updating nontrans_list
99a435c378 net/sched: taprio: Check if socket flags are valid
7e59fdf954 net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
94541468c1 net/sched: fix initialization order when updating chain 0 head
4f83ba16a1 mlxsw: i2c: Fix initialization error flow
8cefae8c40 gpiolib: acpi: use correct format characters
2fd90b86df veth: Ensure eth header is in skb's linear part
5f2e543918 net/sched: flower: fix parsing of ethertype following VLAN header
9250186785 memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
347d6f40b8 ANDROID: GKI: fix crc issue with commit 3f91687e6e ("block: don't merge across cgroup boundaries if blkcg is enabled")
ebb848e772 Revert "PCI: Reduce warnings on possible RW1C corruption"
023cd1cf3f Merge 5.4.189 into android11-5.4-lts
e7f5213d75 Linux 5.4.189
b15feb09a3 ACPI: processor idle: Check for architectural support for LPI
60b6aae072 cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
598a22a077 selftests: cgroup: Test open-time cgroup namespace usage for migration checks
a3f6c5949f selftests: cgroup: Test open-time credential usage for migration checks
48848242d3 selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
8a887060af cgroup: Use open-time cgroup namespace for process migration perm checks
9bd1ced646 cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
691a0fd625 cgroup: Use open-time credentials for process migraton perm checks
1a623d361f io_uring: fix fs->users overflow
33fcb359a6 drm/amdkfd: Fix -Wstrict-prototypes from amdgpu_amdkfd_gfx_10_0_get_functions()
1549bc8cc1 drm/amdkfd: add missing void argument to function kgd2kfd_init
fdfb9ae261 mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
a0c0867f06 arm64: module: remove (NOLOAD) from linker script
2bd5b0d56d mm: don't skip swap entry even if zap_details specified
dfa87d9a5d mmc: mmci: stm32: correctly check all elements of sg list
c645de49e9 mmc: mmci_sdmmc: Replace sg_dma_xxx macros
0d99cce85e dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
9e6980c68c tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
f0752ee5ef tools build: Filter out options and warnings not supported by clang
3c07cc242b irqchip/gic-v3: Fix GICR_CTLR.RWP polling
e44d6af17b perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
55e1465ba7 ata: sata_dwc_460ex: Fix crash due to OOB write
b0c4b3fc01 arm64: patch_text: Fixup last cpu should be master
44277c50fd btrfs: fix qgroup reserve overflow the qgroup limit
17f3e31c86 x86/speculation: Restore speculation related MSRs during S3 resume
0b8043e0fc x86/pm: Save the MSR validity status at context setup
25f506273b mm/mempolicy: fix mpol_new leak in shared_policy_replace
c19d8de4e6 mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
73953dfa9d lz4: fix LZ4_decompress_safe_partial read out of bound
3b35143888 mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete
0869cb9f62 Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
c79c1846bd perf session: Remap buf if there is no space for event
9b6894db7c perf tools: Fix perf's libperf_print callback
4ecef6f28a SUNRPC: Handle low memory situations in call_status()
9a0da98a36 SUNRPC: Handle ENOMEM in call_transmit_status()
b6a4055036 drbd: Fix five use after free bugs in get_initial_state
a581b08921 bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
eb175e0606 spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
034a92c6a8 qede: confirm skb is allocated before using
7ee84d29f2 rxrpc: fix a race in rxrpc_exit_net()
fee500c335 net: openvswitch: don't send internal clone attribute to the userspace.
c154cf184b ipv6: Fix stats accounting in ip6_pkt_drop
fbe5f4c0dd dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
8a50937227 IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
1ef586a864 bnxt_en: reserve space inside receive page for skb_shared_info
c539a6a589 drm/imx: Fix memory leak in imx_pd_connector_get_modes
cc9c2f51cd net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
f5064531c2 net: ipv4: fix route with nexthop object delete warning
2b7d14c105 net/tls: fix slab-out-of-bounds bug in decrypt_internal
34a47f7ddb scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
2133c422a1 Drivers: hv: vmbus: Fix potential crash on module unload
c5e12c3a47 drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
0091429095 KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
18e0097daf mm: fix race between MADV_FREE reclaim and blkdev direct IO read
abb1f310e7 parisc: Fix patch code locking and flushing
bab8e3b4f6 parisc: Fix CPU affinity for Lasi, WAX and Dino chips
1b8a6d1bda SUNRPC: Fix socket waits for write buffer space
e19c3149a8 jfs: prevent NULL deref in diFree
3504b0a177 virtio_console: eliminate anonymous module_init & module_exit
60ade478c9 serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
14e6bab373 NFS: swap-out must always use STABLE writes.
66cf5de084 NFS: swap IO handling is slightly different for O_DIRECT IO
fa47286c01 SUNRPC/call_alloc: async tasks mustn't block waiting for memory
e427cd0ad5 clk: Enforce that disjoints limits are invalid
8a7462b521 xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
3f8f3a1c10 NFSv4: Protect the state recovery thread against direct reclaim
96cdf2fdbe w1: w1_therm: fixes w1_seq for ds28ea00 sensors
823f0364d4 clk: si5341: fix reported clk_rate when output divider is 2
f4e16d12bc minix: fix bug when opening a file with O_DIRECT
a95bbfea8f init/main.c: return 1 from handled __setup() functions
b4be80aa4b netlabel: fix out-of-bounds memory accesses
3803d896dd Bluetooth: Fix use after free in hci_send_acl
8beb760f63 xtensa: fix DTC warning unit_address_format
d41bdccb3c usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
5cf2ce8967 scsi: libfc: Fix use after free in fc_exch_abts_resp()
0aeaadc52b MIPS: fix fortify panic when copying asm exception handlers
c871b83748 bnxt_en: Eliminate unintended link toggle during FW reset
1166f5c139 tuntap: add sanity checks about msg_controllen in sendmsg
c68dd44fb8 macvtap: advertise link netns via netlink
060a485df4 mips: ralink: fix a refcount leak in ill_acc_of_setup()
1dd7569b8c net/smc: correct settings of RMB window update limit
2fda284a3a scsi: aha152x: Fix aha152x_setup() __setup handler return value
a0ef536256 scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
a45af7e340 drm/amdkfd: make CRAT table missing message informational only
0320bac580 dm ioctl: prevent potential spectre v1 gadget
73dd98ac19 ipv4: Invalidate neighbour for broadcast address upon address addition
f5e4f728d5 power: supply: axp288-charger: Set Vhold to 4.4V
6e2dff272c PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
4225947957 usb: ehci: add pci device support for Aspeed platforms
ea057ac8c9 iommu/arm-smmu-v3: fix event handling soft lockup
4e85f5ab58 PCI: aardvark: Fix support for MSI interrupts
c0e9d868a1 drm/amdgpu: Fix recursive locking warning
cee00fd800 powerpc: Set crashkernel offset to mid of RMA region
fbb7b03320 ipv6: make mc_forwarding atomic
9f24efe239 power: supply: axp20x_battery: properly report current when discharging
3575fa75da scsi: bfa: Replace snprintf() with sysfs_emit()
9cd46ee374 scsi: mvsas: Replace snprintf() with sysfs_emit()
ca5da71a58 bpf: Make dst_port field in struct bpf_sock 16-bit wide
90dbc4c664 powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
9388d87609 ptp: replace snprintf with sysfs_emit
4009f104b0 drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
c4e2f57727 ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
61ffe21833 drm: Add orientation quirk for GPD Win Max
01f700bae4 KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
a5476f8d35 ARM: 9187/1: JIVE: fix return value of __setup handler
63efb90030 riscv module: remove (NOLOAD)
68a7bb6948 rtc: wm8350: Handle error for wm8350_register_irq
d95e0367fd ubifs: Rectify space amount budget for mkdir/tmpfile operations
9e24d03dd4 KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
1553126ecc KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
eb05ef70b6 openvswitch: Fixed nd target mask field in the flow dump.
ce8043771f um: Fix uml_mconsole stop/go
337eb95570 ARM: dts: spear13xx: Update SPI dma properties
4e48a66623 ARM: dts: spear1340: Update serial node properties
7f19400e59 ASoC: topology: Allow TLV control to be either read or write
32a76a5574 ubi: fastmap: Return error code if memory allocation fails in add_aeb()
0c1a26c3d3 dt-bindings: spi: mxic: The interrupt property is not mandatory
97ba943e99 dt-bindings: mtd: nand-controller: Fix a comment in the examples
a42ab650d3 dt-bindings: mtd: nand-controller: Fix the reg property description
7d418a0a56 bpf: Fix comment for helper bpf_current_task_under_cgroup()
a075e95614 mm/usercopy: return 1 from hardened_usercopy __setup() handler
abc0b4ea02 mm/memcontrol: return 1 from cgroup.memory __setup() handler
2e16f48838 mm/mmap: return 1 from stack_guard_gap __setup() handler
d650ed0617 ASoC: soc-compress: Change the check for codec_dai
7f19245c36 powerpc/kasan: Fix early region not updated correctly
cb249f8c00 ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
7d4a3c930d ARM: iop32x: offset IRQ numbers by 1
d727fd32cb ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
4f9a59cf84 ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
230987c2bb pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
18455cc74e pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
9611d8ef68 pinctrl: pinconf-generic: Print arguments for bias-pull-*
b0c0f40570 net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
2a548fbf09 gfs2: Make sure FITRIM minlen is rounded up to fs block size
8d67f67361 rtc: check if __rtc_read_time was successful
9a8835902e XArray: Update the LRU list in xas_split()
cbd110b8dd can: mcba_usb: properly check endpoint type
2dfe9422d5 can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
3e2852eda1 XArray: Fix xas_create_range() when multi-order entry present
a840286f13 ubifs: rename_whiteout: correct old_dir size computing
b80ccbec0e ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
1afe219e4a ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
786013ecba ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
37bdf1ad59 ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
14276d38c8 ubifs: rename_whiteout: Fix double free for whiteout_ui->data
01df5f7627 ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
4c277c846a KVM: x86: fix sending PV IPI
a1c03f11cc KVM: Prevent module exit until all VMs are freed
8f608ee87e scsi: qla2xxx: Use correct feature type field during RFF_ID processing
af744ef8f1 scsi: qla2xxx: Reduce false trigger to login
7f9ce17a1d scsi: qla2xxx: Fix N2N inconsistent PLOGI
2d087c7e55 scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
4a0a3c66a5 scsi: qla2xxx: Fix hang due to session stuck
9d1651c8a4 scsi: qla2xxx: Fix incorrect reporting of task management failure
2eb1274176 scsi: qla2xxx: Fix disk failure to rediscover
8077a7162b scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
c478b2cde9 scsi: qla2xxx: Check for firmware dump already collected
96391480ab scsi: qla2xxx: Add devids and conditionals for 28xx
08d04784cc scsi: qla2xxx: Fix device reconnect in loop topology
167debaeaa scsi: qla2xxx: Fix warning for missing error code
e67e9620a0 scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
8e561cbb78 scsi: qla2xxx: Fix stuck session in gpdb
f196d94cc7 powerpc: Fix build errors with newer binutils
71ca99a509 powerpc/lib/sstep: Fix build errors with newer binutils
d42b045e92 powerpc/lib/sstep: Fix 'sthcx' instruction
0af21531f5 ALSA: hda/realtek: Add alc256-samsung-headphone fixup
95d65bca6e mmc: host: Return an error when ->enable_sdio_irq() ops is missing
813553e4a9 media: hdpvr: initialize dev->worker at hdpvr_register_videodev
236311be09 media: Revert "media: em28xx: add missing em28xx_close_extension"
3b36c05f68 video: fbdev: sm712fb: Fix crash in smtcfb_write()
11186875ba ARM: mmp: Fix failure to remove sram device
dc958cd4c8 ARM: tegra: tamonten: Fix I2C3 pad setting
691b0c0cb6 media: cx88-mpeg: clear interrupt status register before streaming video
b239e9d52d ASoC: soc-core: skip zero num_dai component in searching dai name
7d0afbc41b video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
efe9631a76 video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()
ee7ce43367 video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
046d9fd86b ASoC: madera: Add dependencies on MFD
46ac0e768d ARM: dts: bcm2837: Add the missing L1/L2 cache information
bf27f5dfcf ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
3856562e94 video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
53a2088a39 video: fbdev: cirrusfb: check pixclock to avoid divide by zero
b19c7df304 video: fbdev: w100fb: Reset global state
055cdd2e7b video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
fe41ad8be0 ntfs: add sanity check on allocation size
5a016c053f ext4: don't BUG if someone dirty pages without asking ext4 first
07150842fa spi: tegra20: Use of_device_get_match_data()
0cccf9d4fb PM: core: keep irq flags in device_pm_check_callbacks()
f24e2362d6 ACPI/APEI: Limit printable size of BERT table data
931aff6274 Revert "Revert "block, bfq: honor already-setup queue merges""
7a7b11d694 lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
c7f6ae51b1 ACPICA: Avoid walking the ACPI Namespace if it is not there
5117c9ff4c bfq: fix use-after-free in bfq_dispatch_request
e464aafd35 irqchip/nvic: Release nvic_base upon failure
c159eb634e irqchip/qcom-pdc: Fix broken locking
c345724f2b Fix incorrect type in assignment of ipv6 port for audit
927649f3f3 loop: use sysfs_emit() in the sysfs xxx show()
799f22279e selinux: use correct type for context length
c4f5a678ad block, bfq: don't move oom_bfqq
f409e9d178 pinctrl: npcm: Fix broken references to chip->parent_device
f36dd10d1b gcc-plugins/stackleak: Exactly match strings instead of prefixes
ddcdda888e LSM: general protection fault in legacy_parse_param
1f316b42a8 lib/test: use after free in register_test_dev_kmod()
7a2ba24cee net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
910a98e5c1 NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
9acf05b4e7 net/x25: Fix null-ptr-deref caused by x25_disconnect
d15a70fcda qlcnic: dcb: default to returning -EOPNOTSUPP
8ba93ab509 selftests: test_vxlan_under_vrf: Fix broken test case
ae713d7d99 net: phy: broadcom: Fix brcm_fet_config_init()
ab2c789d1c xen: fix is_xen_pmu()
d85841e4b2 clk: Initialize orphan req_rate
025c75ba38 clk: qcom: gcc-msm8994: Fix gpll4 width
f6f1c9a51e NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
806ef544cf netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
cec71a718c jfs: fix divide error in dbNextAG
b3ac1e0196 driver core: dd: fix return value of __setup handler
1bb231de81 firmware: google: Properly state IOMEM dependency
e9f2a8c642 kgdbts: fix return value of __setup handler
16fe77f86a kgdboc: fix return value of __setup handler
7c617cb38c tty: hvc: fix return value of __setup handler
0615a444c5 pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
bc1e29a351 pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
27681f9e02 pinctrl: mediatek: paris: Fix pingroup pin config state readback
e9eacc8952 pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
b348618c17 pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
6e0d696188 staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
efc605469e NFS: remove unneeded check in decode_devicenotify_args()
110c038779 clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
2b5e68095c clk: clps711x: Terminate clk_div_table with sentinel element
166c0185f3 clk: loongson1: Terminate clk_div_table with sentinel element
1d04467bbb clk: actions: Terminate clk_div_table with sentinel element
50b48ba439 remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
b5625e7a16 remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
16ad029942 clk: qcom: clk-rcg2: Update the frac table for pixel clock
52592f9afb clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
b576488fa3 clk: imx7d: Remove audio_mclk_root_clk
79467b9563 dma-debug: fix return value of __setup handlers
fe334765e4 NFS: Return valid errors from nfs2/3_decode_dirent()
546604de8a iio: adc: Add check for devm_request_threaded_irq
1da082f728 serial: 8250: Fix race condition in RTS-after-send handling
617d9c0b98 serial: 8250_mid: Balance reference count for PCI DMA device
61d3fdef61 phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
84ee0c81dd clk: qcom: ipq8074: Use floor ops for SDCC1 clock
dd719fca42 pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
b82465c1ff staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
3ba0143128 misc: alcor_pci: Fix an error handling path
af1fdbbb7b pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
996291d068 mxser: fix xmit_buf leak in activate when LSR == 0xff
58200dedbd mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
043b197013 tipc: fix the timer expires after interval 100ms
6e2e80b2e9 openvswitch: always update flow key after nat
7a970dbb7d tcp: ensure PMTU updates are processed during fastopen
b4725ad1e4 selftests/bpf/test_lirc_mode2.sh: Exit with proper code
1c7b252a60 i2c: mux: demux-pinctrl: do not deactivate a master that is not active
41249fff50 af_netlink: Fix shift out of bounds in group mask calculation
874eca9396 Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
2fe415601b USB: storage: ums-realtek: fix error code in rts51x_read_mem()
94c6ac22ab bpf, sockmap: Fix double uncharge the mem of sk_msg
244ce90c8d bpf, sockmap: Fix more uncharged while msg has more_data
6d03722c34 bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
0174a89663 RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
9b08d211db mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
443121c994 MIPS: RB532: fix return value of __setup handler
9a9a62846c vxcan: enable local echo for sent CAN frames
6f259b1a4a powerpc: 8xx: fix a return value error in mpc8xx_pic_init
d87803ba6b selftests/bpf: Make test_lwt_ip_encap more stable and faster
ac6edd6fcb mfd: mc13xxx: Add check for mc13xxx_irq_request
d2577dc2b3 powerpc/sysdev: fix incorrect use to determine if list is empty
7192df97a0 mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
10705a4305 PCI: Reduce warnings on possible RW1C corruption
90bec38f6a power: supply: wm8350-power: Add missing free in free_charger_irq
a16d8f4191 power: supply: wm8350-power: Handle error for wm8350_register_irq
c703292315 i2c: xiic: Make bus names unique
6f41e4a69b hv_balloon: rate-limit "Unhandled message" warning
c00a91aca2 KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
5f43ec383e KVM: x86: Fix emulation in writing cr8
e91ba23f55 powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
3c660fa0f9 libbpf: Skip forward declaration when counting duplicated type names
b62e615a61 bpf, arm64: Feed byte-offset into bpf line info
8f3192a241 bpf, arm64: Call build_prologue() first in first JIT pass
54bc98a0ab drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
30c5cf4bf2 scsi: hisi_sas: Change permission of parameter prot_mask
e2cd206815 power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
a725070701 drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
cc16d0bc1c ext2: correct max file size computing
b689622cc4 TOMOYO: fix __setup handlers return values
aa7981012a drm/amd/display: Remove vupdate_int_entry definition
765674e3b3 scsi: pm8001: Fix abort all task initialization
442685f952 scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
e7336d4775 scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
898c73387e scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
5e3359ed09 dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
37e847b674 iwlwifi: mvm: Fix an error code in iwl_mvm_up()
4ad7d29ee4 iwlwifi: Fix -EIO error code that is never returned
770d42fff1 dax: make sure inodes are flushed before destroy cache
c10980c522 IB/cma: Allow XRC INI QPs to set their local ACK timeout
2eaa9d86e0 drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
8ae97a595b iommu/ipmmu-vmsa: Check for error num after setting mask
a29ce9592c HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
41ed613642 power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
af5ad6e837 PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
93b47d22d6 net: dsa: mv88e6xxx: Enable port policy support on 6097
b03c06171b mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
eb5932160e mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
d2ee8da9f7 powerpc/perf: Don't use perf_hw_context for trace IMC PMU
135eb4e2be ray_cs: Check ioremap return value
3be1bb175f power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
9a0e270c40 i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
5607badbb1 KVM: PPC: Fix vmx/vsx mixup in mmio emulation
4d244b7311 ath9k_htc: fix uninit value bugs
57f4ad5e28 drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()
1feb6ff89d drm/edid: Don't clear formats if using deep color
0d0ee651e7 mtd: rawnand: gpmi: fix controller timings setting
750d2dc19f mtd: onenand: Check for error irq
d58d281d6a Bluetooth: hci_serdev: call init_rwsem() before p->open()
5d50f851dd udmabuf: validate ubuf->pagecount
2cf7d537d3 ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
820e469a2f drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
e7a0c8546f drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
f419751373 ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
1f31073b77 mmc: davinci_mmc: Handle error for clk_enable
93476f9f82 ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
9e1fdf18fe ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
67e12f1cb2 ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
ed41d104be ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
29e91a49b6 ivtv: fix incorrect device_caps for ivtvfb
0342da6350 video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
58e42ee4a0 ASoC: fsi: Add check for clk_enable
ea9adaa598 ASoC: wm8350: Handle error for wm8350_register_irq
0325193cf4 ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
3cc050df73 media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED
97398470c9 arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
7025f40690 ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
fd5dda439e memory: emif: check the pointer temp in get_device_details()
0ead05f721 memory: emif: Add check for setup_interrupts
68a69ad8df ASoC: soc-compress: prevent the potentially use of null pointer
af6e1d11f7 ASoC: atmel_ssc_dai: Handle errors for clk_enable
fd0c4082fd ASoC: mxs-saif: Handle errors for clk_enable
5847873140 printk: fix return value of printk.devkmsg __setup handler
38bc92ae39 arm64: dts: broadcom: Fix sata nodename
9873232fde arm64: dts: ns2: Fix spi-cpol and spi-cpha property
c6475df1e7 ALSA: spi: Add check for clk_enable()
e0cfb41d46 ASoC: ti: davinci-i2s: Add check for clk_enable()
3905742f93 ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
a975000e7a uaccess: fix nios2 and microblaze get_user_8()
14cd5a8e61 media: usb: go7007: s2250-board: fix leak in probe()
92f84aa82d media: em28xx: initialize refcount before kref_get
c6f0999461 media: video/hdmi: handle short reads of hdmi info frame.
a9d0bb2988 ARM: dts: imx: Add missing LVDS decoder on M53Menlo
cac1473d83 soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
fb7f2eabfe arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
583fcb66ab soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
755dbc3d73 soc: qcom: rpmpd: Check for null return of devm_kcalloc
12081a1520 ARM: dts: qcom: ipq4019: fix sleep clock
547d36fa41 video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
125d10f0be video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
da8b269cc0 video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
4d847e455d media: aspeed: Correct value for h-total-pixels
bd342c7bef media: hantro: Fix overfill bottom register field name
db1b3b99d6 media: coda: Fix missing put_device() call in coda_get_vdoa_data
b0f6b41490 media: bttv: fix WARNING regression on tunerless devices
0478ccdc8e f2fs: fix to avoid potential deadlock
005f9cdab7 f2fs: fix missing free nid in f2fs_handle_failed_inode
a2e534c6a0 perf/x86/intel/pt: Fix address filter config for 32-bit kernel
015d31165d perf/core: Fix address filter parser for multiple filters
841f5b235d sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
715a343172 clocksource: acpi_pm: fix return value of __setup handler
4c0173521d hwmon: (pmbus) Add Vin unit off handling
acba286182 crypto: ccp - ccp_dmaengine_unregister release dma channels
39a521faf4 ACPI: APEI: fix return value of __setup handlers
8dc887ae33 clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()
b305975a66 crypto: vmx - add missing dependencies
b7f3e230ca hwrng: atmel - disable trng on failure path
63266a1488 PM: suspend: fix return value of __setup handler
6c4c026c3d PM: hibernate: fix __setup handler error handling
84fe3ca6e7 block: don't delete queue kobject before its children
b68d1742f4 hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
bf78aca8e4 hwmon: (pmbus) Add mutex to regulator ops
00d67f54b8 spi: pxa2xx-pci: Balance reference count for PCI DMA device
40e6d5d1de crypto: ccree - don't attempt 0 len DMA mappings
c3a5acf91c audit: log AUDIT_TIME_* records only from rules
152ebc0ee9 selftests/x86: Add validity check and allow field splitting
f8a3de8d7c spi: tegra114: Add missing IRQ check in tegra_spi_probe
e5e748a6ff crypto: mxs-dcp - Fix scatterlist processing
30d3f45bcf crypto: authenc - Fix sleep in atomic context in decrypt_tail
9b19022137 regulator: qcom_smd: fix for_each_child.cocci warnings
accf175d0c PCI: pciehp: Clear cmd_busy bit in polling mode
a92f720554 brcmfmac: pcie: Fix crashes due to early IRQs
51fffd722e brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
d0ab87f8dc brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
2c894b12b2 brcmfmac: firmware: Allocate space for default boardrev in nvram
34a57be0f9 xtensa: fix xtensa_wsr always writing 0
54c9fb17be xtensa: fix stop_machine_cpuslocked call in patch_text
4df9d88a9c media: davinci: vpif: fix unbalanced runtime PM get
28859c3a77 DEC: Limit PMAX memory probing to R3k systems
baa4aa800d crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
058b2e59db crypto: rsa-pkcs1pad - restore signature length check
7973dc9118 crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
002288800e lib/raid6/test: fix multiple definition linking error
e73efa5ad5 thermal: int340x: Increase bitmap size
5d553ed5c5 carl9170: fix missing bit-wise or operator for tx_params
55f078dc66 ARM: dts: exynos: add missing HDMI supplies on SMDK5420
0e0d9bd6be ARM: dts: exynos: add missing HDMI supplies on SMDK5250
a77dd759bd ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
2fafe8b57c ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
51186190c4 video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
478154be3a video: fbdev: sm712fb: Fix crash in smtcfb_read()
67643b89fb drm/edid: check basic audio support on CEA extension block
3f91687e6e block: don't merge across cgroup boundaries if blkcg is enabled
8d3a7b2064 mailbox: tegra-hsp: Flush whole channel
28c8fd84be drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
5217ae080e ACPI: properties: Consistently return -ENOENT if there are no more references
f3ec0c9db5 udp: call udp_encap_enable for v6 sockets when enabling encap
11dc8286f9 powerpc/kvm: Fix kvm_use_magic_page
ded6277630 drbd: fix potential silent data corruption
35b72d8e2c mm/kmemleak: reset tag when compare object pointer
d102fcacfc mm,hwpoison: unmap poisoned page before invalidation
099553a1a8 ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
a86bde8930 ALSA: cs4236: fix an incorrect NULL check on list iterator
8489774120 Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
097479aeb2 riscv: Fix fill_callchain return value
c82cbbefc6 qed: validate and restrict untrusted VFs vlan promisc mode
5081cbfb62 qed: display VF trust config
930a3ed5d8 scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
ae2a271ed5 mempolicy: mbind_range() set_policy() after vma_merge()
d1313f5e8f mm: invalidate hwpoison page cache page in fault path
2efe956a74 mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
455f4a2349 jffs2: fix memory leak in jffs2_scan_medium
0978e9af45 jffs2: fix memory leak in jffs2_do_mount_fs
30bf7244ac jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
e27caad38b can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
00a856fa69 spi: mxic: Fix the transmit path
e05221d201 pinctrl: samsung: drop pin banks references on error paths
0996eaaddf f2fs: fix to do sanity check on .cp_pack_total_block_count
f1d5946d47 f2fs: quota: fix loop condition at f2fs_quota_sync()
947ca26390 f2fs: fix to unlock page correctly in error path of is_alive()
ce1aa09cc1 NFSD: prevent integer overflow on 32 bit systems
85259340fc NFSD: prevent underflow in nfssvc_decode_writeargs()
1cfeeeee8c SUNRPC: avoid race between mod_timer() and del_timer_sync()
1a1e73e9ad HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
beb7d96906 Documentation: update stable tree link
20de1038e2 Documentation: add link to stable release candidate tree
d312c0035e KEYS: fix length validation in keyctl_pkey_params_get_2()
2458ecd21f ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
8a609c88fe clk: uniphier: Fix fixed-rate initialization
9d97610e74 greybus: svc: fix an error handling bug in gb_svc_hello()
468757502e iio: inkern: make a best effort on offset calculation
be2b89a909 iio: inkern: apply consumer scale when no channel scale is available
5be8a07b95 iio: inkern: apply consumer scale on IIO_VAL_INT cases
c459b27945 iio: afe: rescale: use s64 for temporary scale calculations
576a1ce64c coresight: Fix TRCCONFIGR.QE sysfs interface
d8f98a23b4 xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
b310e82e77 xhci: make xhci_handshake timeout for xhci_reset() adjustable
a771cc784a xhci: fix runtime PM imbalance in USB2 resume
b5a7ab0e1a USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
212765c94f virtio-blk: Use blk_validate_block_size() to validate block size
40f282870d block: Add a helper to validate the block size
a27ed2f369 tpm: fix reference counting for struct tpm_chip
631bb18e83 iommu/iova: Improve 32-bit free space estimate
2e2dee5e22 net: dsa: microchip: add spi_device_id tables
ef388db2fe af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
0cdb512da0 spi: Fix erroneous sgs value with min_t()
ab951c9c23 net:mcf8390: Use platform_get_irq() to get the interrupt
e62e6c2d7a spi: Fix invalid sgs value
96f9c386fe ethernet: sun: Free the coherent when failing in probing
aa3c3746e7 virtio_console: break out of buf poll on remove
291efbad3d xfrm: fix tunnel model fragmentation behavior
a83df90a3b HID: logitech-dj: add new lightspeed receiver id
5c727ba42c netdevice: add the case if dev is NULL
7e9c9e3f62 USB: serial: simple: add Nokia phone driver
80e5bf89a8 USB: serial: pl2303: add IBM device IDs
6bfc5377a2 swiotlb: fix info leak with DMA_FROM_DEVICE
5789342ce9 Merge 5.4.188 into android11-5.4-lts
2845ff3fd3 Linux 5.4.188
993c23880b llc: only change llc->dev when bind() succeeds
bb4878b39d nds32: fix access_ok() checks in get/put_user
5b1d2561a0 tpm: use try_get_ops() in tpm-space.c
3bbd0000d0 mac80211: fix potential double free on mesh join
cda27a2c6d rcu: Don't deboost before reporting expedited quiescent state
edcc12ae32 crypto: qat - disable registration of algorithms
b0222e222d ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
d7f29f397b ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
2374007850 ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
06f0ff82c7 netfilter: nf_tables: initialize registers in nft_do_chain()
5061bf0f79 ALSA: hda/realtek: Add quirk for ASUS GA402
f7a7cd530a ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
0c4190b41a ALSA: oss: Fix PCM OSS buffer allocation overflow
ab49515f7d ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
d5c7e1987c drivers: net: xgene: Fix regression in CRC stripping
7870321eaf ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
1f4eefc585 ALSA: cmipci: Restore aux vol on suspend/resume
d86bf7e073 ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
0f27a350f8 ALSA: pcm: Add stream lock during PCM reset ioctl operations
572f9a0d3f llc: fix netdevice reference leaks in llc_ui_bind()
2e798814e0 thermal: int340x: fix memory leak in int3400_notify()
5ff048f4ab staging: fbtft: fb_st7789v: reset display before initialization
637d12f9dc tpm: Fix error handling in async work
fee4dfbda6 esp: Fix possible buffer overflow in ESP transformation
2774edd43a net: ipv6: fix skb_over_panic in __ip6_append_data
0aef718463 nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
628adfa218 nfsd: Containerise filecache laundrette
c32f104138 nfsd: cleanup nfsd_file_lru_dispose()
400a374bce Merge 5.4.187 into android11-5.4-lts
055c4cf7e6 Linux 5.4.187
1771bc0d04 Revert "selftests/bpf: Add test for bpf_timer overwriting crash"
0dd366cfdf perf symbols: Fix symbol size calculation condition
e732b0412f Input: aiptek - properly check endpoint type
700a071585 usb: usbtmc: Fix bug in pipe direction for control transfers
2282a6eb6d usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
2182937626 usb: gadget: rndis: prevent integer overflow in rndis_set_response()
58ee8e2cb3 arm64: fix clang warning about TRAMP_VALIAS
d7b9296375 net: dsa: Add missing of_node_put() in dsa_port_parse_of
f96aa063ff net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
3fd96bc64c drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
b01e2df5fb hv_netvsc: Add check for kvmalloc_array
97ccef56e5 atm: eni: Add check for dma_map_single
268dcf1f7b net/packet: fix slab-out-of-bounds access in packet_recvmsg()
9369748366 net: phy: marvell: Fix invalid comparison in the resume and suspend functions
d0f3c2d1d8 efi: fix return value of __setup handlers
e61655430d ocfs2: fix crash when initialize filecheck kobj fails
184f7bd08c crypto: qcom-rng - ensure buffer for generate is completely filled
8aca45f6ed Merge branch 'android11-5.4' into 'android11-5.4-lts'
f54aeabbaa Merge 5.4.186 into android11-5.4-lts
8e24ff11b5 Linux 5.4.186
fcbdaa6a3c fixup for "arm64 entry: Add macro for reading symbol address from the trampoline"
b8bc0718ba kselftest/vm: fix tests build with old libc
2643ca24f5 sfc: extend the locking on mcdi->seqno
46fd0a0740 tcp: make tcp_read_sock() more robust
16a2e50fe9 nl80211: Update bss channel on channel switch for P2P_CLIENT
941e8bcd2b drm/vrr: Set VRR capable prop only if it is attached to connector
6becb05724 iwlwifi: don't advertise TWT support
51969ebe7f atm: firestream: check the return value of ioremap() in fs_init()
23352749f0 can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready
4006447f55 ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
c2420bc333 MIPS: smp: fill in sibling and core maps earlier
d1df59e312 mac80211: refuse aggregations sessions before authorized
fb35b0cfba ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
4857a9b291 ARM: dts: rockchip: reorder rk322x hmdi clocks
ba14ba2d4c arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
aca8fdddee arm64: dts: rockchip: reorder rk3399 hdmi clocks
e49ebea3f5 arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
bd33f9b864 xfrm: Fix xfrm migrate issues when address family changes
3c21ece775 xfrm: Check if_id in xfrm_migrate
970a21404e arm64: Use the clearbhb instruction in mitigations
fb65675f66 KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
9013fd4bc9 arm64: Mitigate spectre style branch history side channels
26129ea295 KVM: arm64: Add templates for BHB mitigation sequences
1b735c8dc1 arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
c45d885c5a arm64: Add percpu vectors for EL1
1bb1944970 arm64: entry: Add macro for reading symbol addresses from the trampoline
3abf6e8a7a arm64: entry: Add vectors that have the bhb mitigation sequences
2933ca8c81 arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
9232867e4f arm64: entry: Allow the trampoline text to occupy multiple pages
ad8800443b arm64: entry: Make the kpti trampoline's kpti sequence optional
4b91f35c87 arm64: entry: Move trampoline macros out of ifdef'd section
0bfdd73348 arm64: entry: Don't assume tramp_vectors is the start of the vectors
fb117a27c6 arm64: entry: Allow tramp_alias to access symbols after the 4K boundary
788fbb5fe2 arm64: entry: Move the trampoline data page before the text page
33397322d4 arm64: entry: Free up another register on kpti's tramp_exit path
3f95cc642c arm64: entry: Make the trampoline cleanup optional
8aa1257128 arm64: entry.S: Add ventry overflow sanity checks
503fdc244a arm64: Add Cortex-X2 CPU part definition
7103651c98 arm64: add ID_AA64ISAR2_EL1 sys register
f5f94aa500 arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
ed5bf8a507 arm64: Add part number for Arm Cortex-A77
0b84cfaefe sctp: fix the processing for INIT chunk
57e401a53c Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
80b62a22cd Merge 5.4.185 into android11-5.4-lts
70f77a2cb5 Linux 5.4.185
afb684cb97 KVM: SVM: Don't flush cache if hardware enforces cache coherency across encryption domains
690909c6d9 x86/mm/pat: Don't flush cache if hardware enforces cache coherency across encryption domnains
6b13a18860 x86/cpu: Add hardware-enforced cache coherency as a CPUID feature
9dd71ec106 x86/cpufeatures: Mark two free bits in word 3
a4eef9e769 ext4: add check to prevent attempting to resize an fs with sparse_super2
269db254c3 ARM: fix Thumb2 regression with Spectre BHB
635959a821 virtio: acknowledge all features before access
ffeb42e05d virtio: unexport virtio_finalize_features
19d57cfbf8 arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
978e4f2648 riscv: Fix auipc+jalr relocation range checks
d6948de3b6 mmc: meson: Fix usage of meson_mmc_post_req()
ba0d7beec2 net: macb: Fix lost RX packet wakeup race in NAPI receive
403e3afe24 staging: gdm724x: fix use after free in gdm_lte_rx()
a9174077fe fuse: fix pipe buffer lifetime for direct_io
d72c79b60d ARM: Spectre-BHB: provide empty stub for non-config
ad66df9064 selftests/memfd: clean up mapping in mfd_fail_write
849c78024e selftest/vm: fix map_fixed_noreplace test failure
500158df87 tracing: Ensure trace buffer is at least 4096 bytes large
090e73fb9c ipv6: prevent a possible race condition with lifetimes
1d4bdaaa8d Revert "xen-netback: Check for hotplug-status existence before watching"
60e4e3198c Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"
8879b5313e net-sysfs: add check for netdevice being present to speed_show
dcf55b071d selftests/bpf: Add test for bpf_timer overwriting crash
e0eca9285c net: bcmgenet: Don't claim WOL when its not available
bbf59d7ae5 sctp: fix kernel-infoleak for SCTP sockets
e934371971 net: phy: DP83822: clear MISR2 register to disable interrupts
f7b3b52034 gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
54fd6b2eb1 gpio: ts4900: Do not set DAT and OE together
82b298e014 selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
cd2a5c0da0 NFC: port100: fix use-after-free in port100_send_complete
1a4017926e net/mlx5: Fix a race on command flush flow
6102e2e5c6 net/mlx5: Fix size field in bufferx_reg struct
0a64aea5fe ax25: Fix NULL pointer dereference in ax25_kill_by_device
45bfd0a937 net: ethernet: lpc_eth: Handle error for clk_enable
e84d37af40 net: ethernet: ti: cpts: Handle error for clk_enable
8ee065a7a9 ethernet: Fix error handling in xemaclite_of_probe
4c0b769d95 ARM: dts: aspeed: Fix AST2600 quad spi group
7db2bc0861 drm/sun4i: mixer: Fix P010 and P210 format numbers
7f8f564141 qed: return status of qed_iov_get_link
f59e786090 net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare()
45d470e4f8 virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
278b2c7d9f arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
f62922b601 clk: qcom: gdsc: Add support to update GDSC transition delay
9ed911a069 Merge 5.4.184 into android11-5.4-lts
8f2333be80 Merge 5.4.183 into android11-5.4-lts
55d2e3e494 ANDROID: fix up rndis ABI breakage
1346e17653 Linux 5.4.184
f7fc9c3487 Revert "ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE"
0e35f3ab69 xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
782e5ebcc8 xen/gnttab: fix gnttab_end_foreign_access() without page specified
051c4cc7bd xen/pvcalls: use alloc/free_pages_exact()
be63ea883e xen/9p: use alloc/free_pages_exact()
8efaf0c862 xen: remove gnttab_query_foreign_access()
d193785a4b xen/gntalloc: don't use gnttab_query_foreign_access()
089a8e491d xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
b507879c1e xen/netfront: don't use gnttab_query_foreign_access() for mapped status
a83400456f xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
44d86dccd2 xen/grant-table: add gnttab_try_end_foreign_access()
95ff823832 xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
56f1b3c5c8 ARM: fix build warning in proc-v7-bugs.c
40da947ba0 ARM: Do not use NOCROSSREFS directive with ld.lld
583662bfd8 ARM: fix co-processor register typo
21a466c32f ARM: fix build error when BPF_SYSCALL is disabled
d1cfdd5077 ARM: include unprivileged BPF status in Spectre V2 reporting
920f7970cf ARM: Spectre-BHB workaround
dcf33beb49 ARM: use LOADADDR() to get load address of sections
31814db6e4 ARM: early traps initialisation
fdfc0baf82 ARM: report Spectre v2 status through sysfs
26171b016b arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
baaaba74e0 arm/arm64: Provide a wrapper for SMCCC 1.1 calls
6c1599fd1b x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
7c77025694 x86/speculation: Warn about Spectre v2 LFENCE mitigation
865da3868b x86/speculation: Update link to AMD speculation whitepaper
b1bacf22a8 x86/speculation: Use generic retpoline by default on AMD
1e47ab3df9 x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting
327a4da9b0 Documentation/hw-vuln: Update spectre doc
96b3d45aea x86/speculation: Add eIBRS + Retpoline options
41b50510e5 x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
b70bc2e355 x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
22aed24089 x86/speculation: Merge one test in spectre_v2_user_select_mitigation()
e7d1268f56 Linux 5.4.183
5817c13cd6 hamradio: fix macro redefine warning
3c7d63cfa1 net: dcb: disable softirqs in dcbnl_flush_dev()
5f53a6a8ae Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
f73eb7342b btrfs: add missing run of delayed items after unlink during log replay
f8d4a8eebb btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
39403d72b4 btrfs: fix lost prealloc extents beyond eof after full fsync
4dd5d3310c tracing: Fix return value of __setup handlers
c0f7253376 tracing/histogram: Fix sorting on old "cpu" value
35fa6f2a31 HID: add mapping for KEY_ALL_APPLICATIONS
ecefb8cc0f HID: add mapping for KEY_DICTATE
52b984b17d Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
16eb602ead Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power()
3f123c305e nl80211: Handle nla_memdup failures in handle_nan_filter
ec89b27646 net: chelsio: cxgb3: check the return value of pci_find_capability()
6650fa5f3b soc: fsl: qe: Check of ioremap return value
e89c53fcd2 memfd: fix F_SEAL_WRITE after shmem huge page allocated
58b07100c2 ibmvnic: free reset-work-item when flushing
2e7abe2efc igc: igc_write_phy_reg_gpy: drop premature return
5c215ea574 ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
89b881f339 ARM: Fix kgdb breakpoint for Thumb2
87765309bf igc: igc_read_phy_reg_gpy: drop premature return
44ff6c29b2 arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
d59120a489 can: gs_usb: change active_channels's type from atomic_t to u8
bc65372492 ASoC: cs4265: Fix the duplicated control name
cff3987e09 firmware: arm_scmi: Remove space in MODULE_ALIAS name
461a26ebf0 efivars: Respect "block" flag in efivar_entry_set_safe()
b4f4659843 ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
e50c589678 net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
044e209c72 net: sxgbe: fix return value of __setup handler
a54dedf620 iavf: Fix missing check for running netdev
150b8a05d0 net: stmmac: fix return value of __setup handler
e9fa400903 mac80211: fix forwarded mesh frames AC & queue selection
f17b27f3d4 ia64: ensure proper NUMA distance and possible map initialization
80998dbde1 sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
407ec382ba sched/topology: Make sched_init_numa() use a set for the deduplicating sort
b40c912624 xen/netfront: destroy queues before real_num_tx_queues is zeroed
fa84d44df4 block: Fix fsync always failed if once failed
849339fd72 net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
8e306a76b9 net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
1f5abd671d net: dcb: flush lingering app table entries for unregistered devices
ed05368024 batman-adv: Don't expect inter-netns unique iflink indices
8639532271 batman-adv: Request iflink once in batadv_get_real_netdevice
a1ccea6183 batman-adv: Request iflink once in batadv-on-batadv check
43c25da41e netfilter: nf_queue: fix possible use-after-free
3c934f1087 netfilter: nf_queue: don't assume sk is full socket
d2c96b1930 xfrm: enforce validity of offload input flags
019b4b9d59 xfrm: fix the if_id check in changelink
49c24579ce netfilter: fix use-after-free in __nf_register_net_hook()
ac858e4462 xfrm: fix MTU regression
f3537f1b2b ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
75a471401b ALSA: intel_hdmi: Fix reference to PCM buffer address
e28372b295 ata: pata_hpt37x: fix PCI clock detection
58b419d16e usb: gadget: clear related members when goto fail
ba6fdd55b1 usb: gadget: don't release an existing dev->buf
0babb778ff net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
a7ef01d25a i2c: qup: allow COMPILE_TEST
da9bf89344 i2c: cadence: allow COMPILE_TEST
bb07c8bb77 dmaengine: shdma: Fix runtime PM imbalance on error
e208668ef7 cifs: fix double free race when mount fails in cifs_get_root()
2ed93e3e3f Input: clear BTN_RIGHT/MIDDLE on buttonpads
7b6d98f869 ASoC: rt5682: do not block workqueue if card is unbound
e2106e429f ASoC: rt5668: do not block workqueue if card is unbound
7b7c65abeb i2c: bcm2835: Avoid clock stretching timeouts
964f155c38 mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
1a7d2fccd8 mac80211_hwsim: report NOACK frames in tx_status
31855d74fd Merge 5.4.182 into android11-5.4-lts
866ae42cf4 Linux 5.4.182
fb2bbb7d30 fget: clarify and improve __fget_files() implementation
d6a29ce52a memblock: use kfree() to release kmalloced memblock regions
5d9453bf41 Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR"
1fb051bbbc gpio: tegra186: Fix chip_data type confusion
2782b05d02 tty: n_gsm: fix NULL pointer access due to DLCI release
c03a495814 tty: n_gsm: fix proper link termination after failed open
912144e8a3 tty: n_gsm: fix encoding of control signal octet bit DV
1879db4f25 xhci: Prevent futile URB re-submissions due to incorrect return value.
80922d7b52 xhci: re-initialize the HC during resume if HCE was set
0139a10090 usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
6e74aebbf7 usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
ba3e83e5a0 USB: serial: option: add Telit LE910R1 compositions
92ac25b79d USB: serial: option: add support for DW5829e
40256addf5 tracefs: Set the group ownership in apply_options() not parse_options()
6b23eda989 USB: gadget: validate endpoint index for xilinx udc
9ab652d41d usb: gadget: rndis: add spinlock for rndis response list
39848d7e4e Revert "USB: serial: ch341: add new Product ID for CH341A"
7c453de366 ata: pata_hpt37x: disable primary channel on HPT371
a28f8dbd47 iio: Fix error handling for PM
8fff0310e6 iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
ce1076b33e iio: adc: men_z188_adc: Fix a resource leak in an error handling path
cb90ab3f09 tracing: Have traceon and traceoff trigger honor the instance
901206f71e RDMA/ib_srp: Fix a deadlock
b7e2b91fcb configfs: fix a race in configfs_{,un}register_subsystem()
df14d2bed8 spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op()
a62f4266d5 net/mlx5: Fix wrong limitation of metadata match on ecpf
45618e9157 net/mlx5: Fix possible deadlock on rule deletion
53026346a9 netfilter: nf_tables: fix memory leak during stateful obj update
5ad5886f85 nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
dfe537b0c9 net: Force inlining of checksum functions in net/checksum.h
eee01c88c9 net: ll_temac: check the return value of devm_kmalloc()
fc92a14fa0 net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
3cbf1f98d8 drm/edid: Always set RGB444
d0251c38df openvswitch: Fix setting ipv6 fields causing hw csum failure
2b3cdd70ea gso: do not skip outer ip header in case of ipip and net_failover
0240bb276f tipc: Fix end of loop tests for list_for_each_entry()
2ed1326376 net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
97a6c07d6f bpf: Do not try bpf_msg_push_data with len 0
dffce58f6f perf data: Fix double free in perf_session__delete()
3174b09fe1 ping: remove pr_err from ping_lookup
767099f0ec lan743x: fix deadlock in lan743x_phy_link_status_change()
5d76e0b69d optee: use driver internal tee_context for some rpc
0e526f533f tee: export teedev_open() and teedev_close_context()
64e0b5894c x86/fpu: Correct pkru/xstate inconsistency
49c011a44e netfilter: nf_tables_offload: incorrect flow offload action array size
49a4536a46 USB: zaurus: support another broken Zaurus
b95d71abeb sr9700: sanity check for packet length
d0dac454b9 drm/amdgpu: disable MMHUB PG for Picasso
eb88a38831 parisc/unaligned: Fix ldw() and stw() unalignment handlers
b783ef3eb6 parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
0b608b3392 vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
dd0de35102 clk: jz4725b: fix mmc0 clock gating
d1f1de5dff cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
2867afd647 Revert "netfilter: conntrack: don't refresh sctp entries in closed state"
56f5213db8 Merge 5.4.181 into android11-5.4-lts
b6e8856b8a Linux 5.4.181
3e73b02af6 kconfig: fix failing to generate auto.conf
90c0d3cc67 net: macb: Align the dma and coherent dma masks
f1c3f41245 net: usb: qmi_wwan: Add support for Dell DW5829e
6b364ca481 tracing: Fix tp_printk option related with tp_printk_stop_on_boot
8bf73d5ea9 drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
5a21d50723 ata: libata-core: Disable TRIM on M88V29
41da91158e kconfig: let 'shell' return enough output for deep path names
913932a306 arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
d2fd1c7804 arm64: dts: meson-g12: add ATF BL32 reserved-memory region
daa8680809 arm64: dts: meson-gx: add ATF BL32 reserved-memory region
ba4b40356a netfilter: conntrack: don't refresh sctp entries in closed state
d4de2bbcbc irqchip/sifive-plic: Add missing thead,c900-plic match string
2d7a327a12 ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
fff21185f5 ARM: OMAP2+: hwmod: Add of_node_put() before break
3deabc3f60 KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
fe595759c2 Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
ba71b1b30d i2c: brcmstb: fix support for DSL and CM variants
6f08452c56 copy_process(): Move fd_install() out of sighand->siglock critical section
e52dfd2a49 dmaengine: sh: rcar-dmac: Check for error num after setting mask
c83049cb88 net: sched: limit TC_ACT_REPEAT loops
87c575d2a2 lib/iov_iter: initialize "flags" in new pipe_buffer
091dac5c63 EDAC: Fix calculation of returned address and next offset in edac_align_ptr()
f0c2c023c2 scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
56f9abba98 mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
bdc70b603d mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
3758a57076 NFS: Do not report writeback errors in nfs_getattr()
357d42d593 NFS: LOOKUP_DIRECTORY is also ok with symlinks
20f4ee3c33 block/wbt: fix negative inflight counter when remove scsi device
4cd3281a91 mtd: rawnand: gpmi: don't leak PM reference in error path
c6fee7c854 powerpc/lib/sstep: fix 'ptesync' build error
edfac6b77b ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
d6d8d1db80 ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
99c2b13ce9 ALSA: hda: Fix missing codec probe on Shenker Dock 15
2b2b531ceb ALSA: hda: Fix regression on forced probe mask option
aca7e5b6a5 libsubcmd: Fix use-after-free for realloc(..., 0)
7af6164cee bonding: fix data-races around agg_select_timer
aeb993412e drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
db3ffc5d33 bonding: force carrier update when releasing slave
fb8c98f92a ping: fix the dif and sdif check in ping_lookup
8198c4d4c2 net: ieee802154: ca8210: Fix lifs/sifs periods
a06440508a net: dsa: lan9303: fix reset on probe
73f8575216 netfilter: nft_synproxy: unregister hooks on init error path
5e8c5b217c iwlwifi: pcie: gen2: fix locking when "HW not ready"
e1d0e738b0 iwlwifi: pcie: fix locking when "HW not ready"
902528183f mmc: block: fix read single on recovery logic
5f326fe2ae vsock: remove vsock from connected table when connect is interrupted by a signal
f48a38703c dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
41ce06a3ec taskstats: Cleanup the use of task->exit_code
8583d2ea90 ext4: prevent partial update of the extent blocks
d57fcf0d91 ext4: check for inconsistent extents between index and leaf block
6a332d095c ext4: check for out-of-order index extents in ext4_valid_extent_entries()
13f6ebef03 drm/radeon: Fix backlight control on iMac 12,1
494de920d9 iwlwifi: fix use-after-free
6194b46897 arm64: module/ftrace: intialize PLT at load time
adcc4b795f arm64: module: rework special section handling
dfe928f16c module/ftrace: handle patchable-function-entry
30af4dcfa8 ftrace: add ftrace_init_nop()
42c8cccf83 Revert "module, async: async_synchronize_full() on module init iff async is used"
5c7726bd57 drm/amdgpu: fix logic inversion in check
d411b2a5da nvme-rdma: fix possible use-after-free in transport error_recovery work
61a26ffd5a nvme-tcp: fix possible use-after-free in transport error_recovery work
70356b756a nvme: fix a possible use-after-free in controller reset during load
89d2bd1325 quota: make dquot_quota_sync return errors from ->sync_fs
f124d9eff9 vfs: make freeze_super abort when sync_filesystem returns error
cfc8b37ef0 ax25: improve the incomplete fix to avoid UAF and NPD bugs
dd2fcac324 selftests/zram: Adapt the situation that /dev/zram0 is being used
c3a9afa824 selftests/zram01.sh: Fix compression ratio calculation
8d1c50c868 selftests/zram: Skip max_comp_streams interface on newer kernel
455ef08d6e net: ieee802154: at86rf230: Stop leaking skb's
3bd8bebb16 selftests: rtc: Increase test timeout so that all tests run
bc6ac6c0f6 platform/x86: ISST: Fix possible circular locking dependency detected
bd6492930a btrfs: send: in case of IO error log it
3ff48a67ed parisc: Fix sglist access in ccio-dma.c
efccc9b0c7 parisc: Fix data TLB miss in sba_unmap_sg
3434d8837f parisc: Drop __init from map_pages declaration
bd282ee53e serial: parisc: GSC: fix build when IOSAPIC is not set
9d2aad133b Revert "svm: Add warning message for AVIC IPI invalid target"
1902725520 HID:Add support for UGTABLET WP5540
866a85813b Makefile.extrawarn: Move -Wunaligned-access to W=1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic789d7f387b2848b0c0a9a72d4867720841a5e2b
This commit is contained in:
Greg Kroah-Hartman 2022-05-24 14:46:00 +02:00
commit 375c2e2cdb
888 changed files with 6782 additions and 3339 deletions

View File

@ -156,3 +156,13 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged
subsystem that the buffer is fully accessible at the elevated privilege
level (and ideally inaccessible or at least read-only at the
lesser-privileged levels).
DMA_ATTR_PRIVILEGED
-------------------
Some advanced peripherals such as remote processors and GPUs perform
accesses to DMA buffers in both privileged "supervisor" and unprivileged
"user" modes. This attribute is used to indicate to the DMA-mapping
subsystem that the buffer is fully accessible at the elevated privilege
level (and ideally inaccessible or at least read-only at the
lesser-privileged levels).

View File

@ -44,7 +44,7 @@ patternProperties:
properties:
reg:
description:
Contains the native Ready/Busy IDs.
Contains the chip-select IDs.
nand-ecc-mode:
allOf:
@ -139,6 +139,6 @@ examples:
nand-ecc-mode = "soft";
nand-ecc-algo = "bch";
/* controller specific properties */
/* NAND chip specific properties */
};
};

View File

@ -8,11 +8,13 @@ Required properties:
- reg: should contain 2 entries, one for the registers and one for the direct
mapping area
- reg-names: should contain "regs" and "dirmap"
- interrupts: interrupt line connected to the SPI controller
- clock-names: should contain "ps_clk", "send_clk" and "send_dly_clk"
- clocks: should contain 3 entries for the "ps_clk", "send_clk" and
"send_dly_clk" clocks
Optional properties:
- interrupts: interrupt line connected to the SPI controller
Example:
spi@43c30000 {

View File

@ -76,7 +76,7 @@ The beginning of an extended attribute block is in
- Checksum of the extended attribute block.
* - 0x14
- \_\_u32
- h\_reserved[2]
- h\_reserved[3]
- Zero.
The checksum is calculated against the FS UUID, the 64-bit block number

View File

@ -174,7 +174,16 @@ Trees
- The finalized and tagged releases of all stable kernels can be found
in separate branches per version at:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
- The release candidate of all stable kernel versions can be found at:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/
.. warning::
The -stable-rc tree is a snapshot in time of the stable-queue tree and
will change frequently, hence will be rebased often. It should only be
used for testing purposes (e.g. to be consumed by CI systems).
Review committee

View File

@ -261,6 +261,10 @@ alc-sense-combo
huawei-mbx-stereo
Enable initialization verbs for Huawei MBX stereo speakers;
might be risky, try this at your own risk
alc298-samsung-headphone
Samsung laptops with ALC298
alc256-samsung-headphone
Samsung laptops with ALC256
ALC66x/67x/892
==============

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 180
SUBLEVEL = 191
EXTRAVERSION =
NAME = Kleptomaniac Octopus

View File

@ -199,6 +199,7 @@ tracesys_exit:
st r0, [sp, PT_r0] ; sys call return value in pt_regs
;POST Sys Call Ptrace Hook
mov r0, sp ; pt_regs needed
bl @syscall_trace_exit
b ret_from_exception ; NOT ret_from_system_call at is saves r0 which
; we'd done before calling post hook above

View File

@ -118,7 +118,7 @@
};
pinctrl_fwqspid_default: fwqspid_default {
function = "FWQSPID";
function = "FWSPID";
groups = "FWQSPID";
};

View File

@ -38,12 +38,26 @@
#size-cells = <0>;
enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
/* Source for d/i-cache-line-size and d/i-cache-sets
* https://developer.arm.com/documentation/ddi0500/e/level-1-memory-system
* /about-the-l1-memory-system?lang=en
*
* Source for d/i-cache-size
* https://magpi.raspberrypi.com/articles/raspberry-pi-3-specs-benchmarks
*/
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a53";
reg = <0>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000d8>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
i-cache-size = <0x8000>;
i-cache-line-size = <64>;
i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
next-level-cache = <&l2>;
};
cpu1: cpu@1 {
@ -52,6 +66,13 @@
reg = <1>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000e0>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
i-cache-size = <0x8000>;
i-cache-line-size = <64>;
i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
next-level-cache = <&l2>;
};
cpu2: cpu@2 {
@ -60,6 +81,13 @@
reg = <2>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000e8>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
i-cache-size = <0x8000>;
i-cache-line-size = <64>;
i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
next-level-cache = <&l2>;
};
cpu3: cpu@3 {
@ -68,6 +96,27 @@
reg = <3>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0x000000f0>;
d-cache-size = <0x8000>;
d-cache-line-size = <64>;
d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
i-cache-size = <0x8000>;
i-cache-line-size = <64>;
i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
next-level-cache = <&l2>;
};
/* Source for cache-line-size + cache-sets
* https://developer.arm.com/documentation/ddi0500
* /e/level-2-memory-system/about-the-l2-memory-system?lang=en
* Source for cache-size
* https://datasheets.raspberrypi.com/cm/cm1-and-cm3-datasheet.pdf
*/
l2: l2-cache0 {
compatible = "cache";
cache-size = <0x80000>;
cache-line-size = <64>;
cache-sets = <512>; // 512KiB(size)/64(line-size)=8192ways/16-way set
cache-level = <2>;
};
};
};

View File

@ -260,7 +260,7 @@
};
uart3_data: uart3-data {
samsung,pins = "gpa1-4", "gpa1-4";
samsung,pins = "gpa1-4", "gpa1-5";
samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;

View File

@ -117,6 +117,9 @@
status = "okay";
ddc = <&i2c_2>;
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
vdd-supply = <&ldo8_reg>;
vdd_osc-supply = <&ldo10_reg>;
vdd_pll-supply = <&ldo8_reg>;
};
&i2c_0 {

View File

@ -132,6 +132,9 @@
hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmi_hpd_irq>;
vdd-supply = <&ldo6_reg>;
vdd_osc-supply = <&ldo7_reg>;
vdd_pll-supply = <&ldo6_reg>;
};
&hsi2c_4 {

View File

@ -53,6 +53,31 @@
};
};
lvds-decoder {
compatible = "ti,ds90cf364a", "lvds-decoder";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lvds_decoder_in: endpoint {
remote-endpoint = <&lvds0_out>;
};
};
port@1 {
reg = <1>;
lvds_decoder_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
panel {
compatible = "edt,etm0700g0dh6";
pinctrl-0 = <&pinctrl_display_gpio>;
@ -61,7 +86,7 @@
port {
panel_in: endpoint {
remote-endpoint = <&lvds0_out>;
remote-endpoint = <&lvds_decoder_out>;
};
};
};
@ -450,7 +475,7 @@
reg = <2>;
lvds0_out: endpoint {
remote-endpoint = <&panel_in>;
remote-endpoint = <&lvds_decoder_in>;
};
};
};

View File

@ -141,7 +141,8 @@
clocks {
sleep_clk: sleep_clk {
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-frequency = <32000>;
clock-output-names = "gcc_sleep_clk_src";
#clock-cells = <0>;
};

View File

@ -145,7 +145,9 @@
reg = <0x108000 0x1000>;
qcom,ipc = <&l2cc 0x8 2>;
interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
<GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ack", "err", "wakeup";
regulators {
@ -191,7 +193,7 @@
compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
reg = <0x16440000 0x1000>,
<0x16400000 0x1000>;
interrupts = <0 154 0x0>;
interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
clock-names = "core", "iface";
status = "disabled";
@ -317,7 +319,7 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <0x16080000 0x1000>;
interrupts = <0 147 0>;
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
spi-max-frequency = <24000000>;
cs-gpios = <&msmgpio 8 0>;

View File

@ -635,8 +635,8 @@
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
assigned-clocks = <&cru SCLK_HDMI_PHY>;
assigned-clock-parents = <&hdmi_phy>;
clocks = <&cru SCLK_HDMI_HDCP>, <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_CEC>;
clock-names = "isfr", "iahb", "cec";
clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>, <&cru SCLK_HDMI_CEC>;
clock-names = "iahb", "isfr", "cec";
pinctrl-names = "default";
pinctrl-0 = <&hdmii2c_xfer &hdmi_hpd &hdmi_cec>;
resets = <&cru SRST_HDMI_P>;

View File

@ -975,7 +975,7 @@
status = "disabled";
};
crypto: cypto-controller@ff8a0000 {
crypto: crypto@ff8a0000 {
compatible = "rockchip,rk3288-crypto";
reg = <0x0 0xff8a0000 0x0 0x4000>;
interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -526,7 +526,7 @@
pmecc: ecc-engine@f8014070 {
compatible = "atmel,sama5d2-pmecc";
reg = <0xf8014070 0x490>,
<0xf8014500 0x100>;
<0xf8014500 0x200>;
};
};

View File

@ -136,9 +136,9 @@
reg = <0xb4100000 0x1000>;
interrupts = <0 105 0x4>;
status = "disabled";
dmas = <&dwdma0 12 0 1>,
<&dwdma0 13 1 0>;
dma-names = "tx", "rx";
dmas = <&dwdma0 13 0 1>,
<&dwdma0 12 1 0>;
dma-names = "rx", "tx";
};
thermal@e07008c4 {

View File

@ -284,9 +284,9 @@
#size-cells = <0>;
interrupts = <0 31 0x4>;
status = "disabled";
dmas = <&dwdma0 4 0 0>,
<&dwdma0 5 0 0>;
dma-names = "tx", "rx";
dmas = <&dwdma0 5 0 0>,
<&dwdma0 4 0 0>;
dma-names = "rx", "tx";
};
rtc@e0580000 {

View File

@ -183,8 +183,8 @@
};
conf_ata {
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
"cdev1", "cdev2", "dap1", "dtb", "gma",
"gmb", "gmc", "gmd", "gme", "gpu7",
"cdev1", "cdev2", "dap1", "dtb", "dtf",
"gma", "gmb", "gmc", "gmd", "gme", "gpu7",
"gpv", "i2cp", "irrx", "irtx", "pta",
"rm", "slxa", "slxk", "spia", "spib",
"uac";
@ -203,7 +203,7 @@
};
conf_crtp {
nvidia,pins = "crtp", "dap2", "dap3", "dap4",
"dtc", "dte", "dtf", "gpu", "sdio1",
"dtc", "dte", "gpu", "sdio1",
"slxc", "slxd", "spdi", "spdo", "spig",
"uda";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;

View File

@ -154,22 +154,38 @@ static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned int instr)
return 0;
}
static struct undef_hook kgdb_brkpt_hook = {
static struct undef_hook kgdb_brkpt_arm_hook = {
.instr_mask = 0xffffffff,
.instr_val = KGDB_BREAKINST,
.cpsr_mask = MODE_MASK,
.cpsr_mask = PSR_T_BIT | MODE_MASK,
.cpsr_val = SVC_MODE,
.fn = kgdb_brk_fn
};
static struct undef_hook kgdb_compiled_brkpt_hook = {
static struct undef_hook kgdb_brkpt_thumb_hook = {
.instr_mask = 0xffff,
.instr_val = KGDB_BREAKINST & 0xffff,
.cpsr_mask = PSR_T_BIT | MODE_MASK,
.cpsr_val = PSR_T_BIT | SVC_MODE,
.fn = kgdb_brk_fn
};
static struct undef_hook kgdb_compiled_brkpt_arm_hook = {
.instr_mask = 0xffffffff,
.instr_val = KGDB_COMPILED_BREAK,
.cpsr_mask = MODE_MASK,
.cpsr_mask = PSR_T_BIT | MODE_MASK,
.cpsr_val = SVC_MODE,
.fn = kgdb_compiled_brk_fn
};
static struct undef_hook kgdb_compiled_brkpt_thumb_hook = {
.instr_mask = 0xffff,
.instr_val = KGDB_COMPILED_BREAK & 0xffff,
.cpsr_mask = PSR_T_BIT | MODE_MASK,
.cpsr_val = PSR_T_BIT | SVC_MODE,
.fn = kgdb_compiled_brk_fn
};
static int __kgdb_notify(struct die_args *args, unsigned long cmd)
{
struct pt_regs *regs = args->regs;
@ -210,8 +226,10 @@ int kgdb_arch_init(void)
if (ret != 0)
return ret;
register_undef_hook(&kgdb_brkpt_hook);
register_undef_hook(&kgdb_compiled_brkpt_hook);
register_undef_hook(&kgdb_brkpt_arm_hook);
register_undef_hook(&kgdb_brkpt_thumb_hook);
register_undef_hook(&kgdb_compiled_brkpt_arm_hook);
register_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
return 0;
}
@ -224,8 +242,10 @@ int kgdb_arch_init(void)
*/
void kgdb_arch_exit(void)
{
unregister_undef_hook(&kgdb_brkpt_hook);
unregister_undef_hook(&kgdb_compiled_brkpt_hook);
unregister_undef_hook(&kgdb_brkpt_arm_hook);
unregister_undef_hook(&kgdb_brkpt_thumb_hook);
unregister_undef_hook(&kgdb_compiled_brkpt_arm_hook);
unregister_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
unregister_die_notifier(&kgdb_notifier);
}

View File

@ -1101,11 +1101,13 @@ static int __init da850_evm_config_emac(void)
int ret;
u32 val;
struct davinci_soc_info *soc_info = &davinci_soc_info;
u8 rmii_en = soc_info->emac_pdata->rmii_en;
u8 rmii_en;
if (!machine_is_davinci_da850_evm())
return 0;
rmii_en = soc_info->emac_pdata->rmii_en;
cfg_chip3_base = DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP3_REG);
val = __raw_readl(cfg_chip3_base);

View File

@ -20,7 +20,7 @@
mrc p6, 0, \irqstat, c8, c0, 0 @ Read IINTSRC
cmp \irqstat, #0
clzne \irqnr, \irqstat
rsbne \irqnr, \irqnr, #31
rsbne \irqnr, \irqnr, #32
.endm
.macro arch_ret_to_user, tmp1, tmp2

View File

@ -9,6 +9,6 @@
#ifndef __IRQS_H
#define __IRQS_H
#define NR_IRQS 32
#define NR_IRQS 33
#endif

View File

@ -32,14 +32,14 @@ static void intstr_write(u32 val)
static void
iop32x_irq_mask(struct irq_data *d)
{
iop32x_mask &= ~(1 << d->irq);
iop32x_mask &= ~(1 << (d->irq - 1));
intctl_write(iop32x_mask);
}
static void
iop32x_irq_unmask(struct irq_data *d)
{
iop32x_mask |= 1 << d->irq;
iop32x_mask |= 1 << (d->irq - 1);
intctl_write(iop32x_mask);
}
@ -65,7 +65,7 @@ void __init iop32x_init_irq(void)
machine_is_em7210())
*IOP3XX_PCIIRSR = 0x0f;
for (i = 0; i < NR_IRQS; i++) {
for (i = 1; i < NR_IRQS; i++) {
irq_set_chip_and_handler(i, &ext_chip, handle_level_irq);
irq_clear_status_flags(i, IRQ_NOREQUEST | IRQ_NOPROBE);
}

View File

@ -7,36 +7,40 @@
#ifndef __IOP32X_IRQS_H
#define __IOP32X_IRQS_H
/* Interrupts in Linux start at 1, hardware starts at 0 */
#define IOP_IRQ(x) ((x) + 1)
/*
* IOP80321 chipset interrupts
*/
#define IRQ_IOP32X_DMA0_EOT 0
#define IRQ_IOP32X_DMA0_EOC 1
#define IRQ_IOP32X_DMA1_EOT 2
#define IRQ_IOP32X_DMA1_EOC 3
#define IRQ_IOP32X_AA_EOT 6
#define IRQ_IOP32X_AA_EOC 7
#define IRQ_IOP32X_CORE_PMON 8
#define IRQ_IOP32X_TIMER0 9
#define IRQ_IOP32X_TIMER1 10
#define IRQ_IOP32X_I2C_0 11
#define IRQ_IOP32X_I2C_1 12
#define IRQ_IOP32X_MESSAGING 13
#define IRQ_IOP32X_ATU_BIST 14
#define IRQ_IOP32X_PERFMON 15
#define IRQ_IOP32X_CORE_PMU 16
#define IRQ_IOP32X_BIU_ERR 17
#define IRQ_IOP32X_ATU_ERR 18
#define IRQ_IOP32X_MCU_ERR 19
#define IRQ_IOP32X_DMA0_ERR 20
#define IRQ_IOP32X_DMA1_ERR 21
#define IRQ_IOP32X_AA_ERR 23
#define IRQ_IOP32X_MSG_ERR 24
#define IRQ_IOP32X_SSP 25
#define IRQ_IOP32X_XINT0 27
#define IRQ_IOP32X_XINT1 28
#define IRQ_IOP32X_XINT2 29
#define IRQ_IOP32X_XINT3 30
#define IRQ_IOP32X_HPI 31
#define IRQ_IOP32X_DMA0_EOT IOP_IRQ(0)
#define IRQ_IOP32X_DMA0_EOC IOP_IRQ(1)
#define IRQ_IOP32X_DMA1_EOT IOP_IRQ(2)
#define IRQ_IOP32X_DMA1_EOC IOP_IRQ(3)
#define IRQ_IOP32X_AA_EOT IOP_IRQ(6)
#define IRQ_IOP32X_AA_EOC IOP_IRQ(7)
#define IRQ_IOP32X_CORE_PMON IOP_IRQ(8)
#define IRQ_IOP32X_TIMER0 IOP_IRQ(9)
#define IRQ_IOP32X_TIMER1 IOP_IRQ(10)
#define IRQ_IOP32X_I2C_0 IOP_IRQ(11)
#define IRQ_IOP32X_I2C_1 IOP_IRQ(12)
#define IRQ_IOP32X_MESSAGING IOP_IRQ(13)
#define IRQ_IOP32X_ATU_BIST IOP_IRQ(14)
#define IRQ_IOP32X_PERFMON IOP_IRQ(15)
#define IRQ_IOP32X_CORE_PMU IOP_IRQ(16)
#define IRQ_IOP32X_BIU_ERR IOP_IRQ(17)
#define IRQ_IOP32X_ATU_ERR IOP_IRQ(18)
#define IRQ_IOP32X_MCU_ERR IOP_IRQ(19)
#define IRQ_IOP32X_DMA0_ERR IOP_IRQ(20)
#define IRQ_IOP32X_DMA1_ERR IOP_IRQ(21)
#define IRQ_IOP32X_AA_ERR IOP_IRQ(23)
#define IRQ_IOP32X_MSG_ERR IOP_IRQ(24)
#define IRQ_IOP32X_SSP IOP_IRQ(25)
#define IRQ_IOP32X_XINT0 IOP_IRQ(27)
#define IRQ_IOP32X_XINT1 IOP_IRQ(28)
#define IRQ_IOP32X_XINT2 IOP_IRQ(29)
#define IRQ_IOP32X_XINT3 IOP_IRQ(30)
#define IRQ_IOP32X_HPI IOP_IRQ(31)
#endif

View File

@ -72,6 +72,8 @@ static int sram_probe(struct platform_device *pdev)
if (!info)
return -ENOMEM;
platform_set_drvdata(pdev, info);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (res == NULL) {
dev_err(&pdev->dev, "no memory resource defined\n");
@ -107,8 +109,6 @@ static int sram_probe(struct platform_device *pdev)
list_add(&info->node, &sram_bank_list);
mutex_unlock(&sram_lock);
platform_set_drvdata(pdev, info);
dev_info(&pdev->dev, "initialized\n");
return 0;
@ -127,17 +127,19 @@ static int sram_remove(struct platform_device *pdev)
struct sram_bank_info *info;
info = platform_get_drvdata(pdev);
if (info == NULL)
return -ENODEV;
mutex_lock(&sram_lock);
list_del(&info->node);
mutex_unlock(&sram_lock);
if (info->sram_size) {
mutex_lock(&sram_lock);
list_del(&info->node);
mutex_unlock(&sram_lock);
gen_pool_destroy(info->gpool);
iounmap(info->sram_virt);
kfree(info->pool_name);
}
gen_pool_destroy(info->gpool);
iounmap(info->sram_virt);
kfree(info->pool_name);
kfree(info);
return 0;
}

View File

@ -263,9 +263,9 @@ static int __init omapdss_init_of(void)
}
r = of_platform_populate(node, NULL, NULL, &pdev->dev);
put_device(&pdev->dev);
if (r) {
pr_err("Unable to populate DSS submodule devices\n");
put_device(&pdev->dev);
return r;
}

View File

@ -782,8 +782,10 @@ static int __init _init_clkctrl_providers(void)
for_each_matching_node(np, ti_clkctrl_match_table) {
ret = _setup_clkctrl_provider(np);
if (ret)
if (ret) {
of_node_put(np);
break;
}
}
return ret;

View File

@ -237,11 +237,11 @@ static int __init jive_mtdset(char *options)
unsigned long set;
if (options == NULL || options[0] == '\0')
return 0;
return 1;
if (kstrtoul(options, 10, &set)) {
printk(KERN_ERR "failed to parse mtdset=%s\n", options);
return 0;
return 1;
}
switch (set) {
@ -256,7 +256,7 @@ static int __init jive_mtdset(char *options)
"using default.", set);
}
return 0;
return 1;
}
/* parse the mtdset= option given to the kernel command line */

View File

@ -580,7 +580,7 @@ static int __init ve_spc_clk_init(void)
}
cluster = topology_physical_package_id(cpu_dev->id);
if (init_opp_table[cluster])
if (cluster < 0 || init_opp_table[cluster])
continue;
if (ve_init_opp_table(cpu_dev))

View File

@ -229,12 +229,14 @@ early_param("ecc", early_ecc);
static int __init early_cachepolicy(char *p)
{
pr_warn("cachepolicy kernel parameter not supported without cp15\n");
return 0;
}
early_param("cachepolicy", early_cachepolicy);
static int __init noalign_setup(char *__unused)
{
pr_warn("noalign kernel parameter not supported without cp15\n");
return 1;
}
__setup("noalign", noalign_setup);

View File

@ -76,6 +76,12 @@
no-map;
};
/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
secmon_reserved_bl32: secmon@5300000 {
reg = <0x0 0x05300000 0x0 0x2000000>;
no-map;
};
linux,cma {
compatible = "shared-dma-pool";
reusable;

View File

@ -157,14 +157,6 @@
regulator-always-on;
};
reserved-memory {
/* TEE Reserved Memory */
bl32_reserved: bl32@5000000 {
reg = <0x0 0x05300000 0x0 0x2000000>;
no-map;
};
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;

View File

@ -41,6 +41,12 @@
no-map;
};
/* 32 MiB reserved for ARM Trusted Firmware (BL32) */
secmon_reserved_bl32: secmon@5300000 {
reg = <0x0 0x05300000 0x0 0x2000000>;
no-map;
};
linux,cma {
compatible = "shared-dma-pool";
reusable;

View File

@ -164,14 +164,6 @@
regulator-always-on;
};
reserved-memory {
/* TEE Reserved Memory */
bl32_reserved: bl32@5000000 {
reg = <0x0 0x05300000 0x0 0x2000000>;
no-map;
};
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;

View File

@ -111,8 +111,8 @@
compatible = "silabs,si3226x";
reg = <0>;
spi-max-frequency = <5000000>;
spi-cpha = <1>;
spi-cpol = <1>;
spi-cpha;
spi-cpol;
pl022,hierarchy = <0>;
pl022,interface = <0>;
pl022,slave-tx-disable = <0>;
@ -135,8 +135,8 @@
at25,byte-len = <0x8000>;
at25,addr-mode = <2>;
at25,page-size = <64>;
spi-cpha = <1>;
spi-cpol = <1>;
spi-cpha;
spi-cpol;
pl022,hierarchy = <0>;
pl022,interface = <0>;
pl022,slave-tx-disable = <0>;

View File

@ -687,7 +687,7 @@
};
};
sata: ahci@663f2000 {
sata: sata@663f2000 {
compatible = "brcm,iproc-ahci", "generic-ahci";
reg = <0x663f2000 0x1000>;
dma-coherent;

View File

@ -369,7 +369,7 @@
};
usb0: usb@ffb00000 {
compatible = "snps,dwc2";
compatible = "intel,socfpga-agilex-hsotg", "snps,dwc2";
reg = <0xffb00000 0x40000>;
interrupts = <0 93 4>;
phys = <&usbphy0>;
@ -381,7 +381,7 @@
};
usb1: usb@ffb40000 {
compatible = "snps,dwc2";
compatible = "intel,socfpga-agilex-hsotg", "snps,dwc2";
reg = <0xffb40000 0x40000>;
interrupts = <0 94 4>;
phys = <&usbphy0>;

View File

@ -18,6 +18,7 @@
aliases {
spi0 = &spi0;
ethernet0 = &eth0;
ethernet1 = &eth1;
};
@ -137,7 +138,9 @@
/*
* U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
* contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
* 2 size cells and also expects that the second range starts at 16 MB offset. If these
* 2 size cells and also expects that the second range starts at 16 MB offset. Also it
* expects that first range uses same address for PCI (child) and CPU (parent) cells (so
* no remapping) and that this address is the lowest from all specified ranges. If these
* conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
* space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
* for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
@ -146,6 +149,9 @@
* https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
* https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
* https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
* Bug related to requirement of same child and parent addresses for first range is fixed
* in U-Boot version 2022.04 by following commit:
* https://source.denx.de/u-boot/u-boot/-/commit/1fd54253bca7d43d046bba4853fe5fafd034bc17
*/
#address-cells = <3>;
#size-cells = <2>;

View File

@ -495,7 +495,7 @@
* (totaling 127 MiB) for MEM.
*/
ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x07f00000 /* Port 0 MEM */
0x81000000 0 0xefff0000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */
0x81000000 0 0x00000000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc 0>,
<0 0 0 2 &pcie_intc 1>,

View File

@ -459,9 +459,9 @@
qcom,tcs-offset = <0xd00>;
qcom,drv-id = <2>;
qcom,tcs-config = <ACTIVE_TCS 2>,
<SLEEP_TCS 1>,
<WAKE_TCS 1>,
<CONTROL_TCS 0>;
<SLEEP_TCS 3>,
<WAKE_TCS 3>,
<CONTROL_TCS 1>;
rpmhcc: clock-controller {
compatible = "qcom,sm8150-rpmh-clk";

View File

@ -666,8 +666,8 @@
sd-uhs-sdr104;
/* Power supply */
vqmmc-supply = &vcc1v8_s3; /* IO line */
vmmc-supply = &vcc_sdio; /* card's power */
vqmmc-supply = <&vcc1v8_s3>; /* IO line */
vmmc-supply = <&vcc_sdio>; /* card's power */
#address-cells = <1>;
#size-cells = <0>;

View File

@ -281,7 +281,7 @@
sound: sound {
compatible = "rockchip,rk3399-gru-sound";
rockchip,cpu = <&i2s0 &i2s2>;
rockchip,cpu = <&i2s0 &spdif>;
};
};
@ -432,10 +432,6 @@ ap_i2c_audio: &i2c8 {
status = "okay";
};
&i2s2 {
status = "okay";
};
&io_domains {
status = "okay";
@ -532,6 +528,17 @@ ap_i2c_audio: &i2c8 {
vqmmc-supply = <&ppvar_sd_card_io>;
};
&spdif {
status = "okay";
/*
* SPDIF is routed internally to DP; we either don't use these pins, or
* mux them to something else.
*/
/delete-property/ pinctrl-0;
/delete-property/ pinctrl-names;
};
&spi1 {
status = "okay";

View File

@ -467,6 +467,12 @@
};
&sdhci {
/*
* Signal integrity isn't great at 200MHz but 100MHz has proven stable
* enough.
*/
max-frequency = <100000000>;
bus-width = <8>;
mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe;

View File

@ -1746,10 +1746,10 @@
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&cru PCLK_HDMI_CTRL>,
<&cru SCLK_HDMI_SFR>,
<&cru PLL_VPLL>,
<&cru SCLK_HDMI_CEC>,
<&cru PCLK_VIO_GRF>,
<&cru SCLK_HDMI_CEC>;
clock-names = "iahb", "isfr", "vpll", "grf", "cec";
<&cru PLL_VPLL>;
clock-names = "iahb", "isfr", "cec", "grf", "vpll";
power-domains = <&power RK3399_PD_HDCP>;
reg-io-width = <4>;
rockchip,grf = <&grf>;

View File

@ -58,7 +58,7 @@
#define ARM64_HAS_AMU_EXTN 48
#define ARM64_SPECTRE_BHB 49
/* kabi: reserve 48 - 62 for future cpu capabilities */
/* kabi: reserve 50 - 62 for future cpu capabilities */
#define ARM64_NCAPS 62
#endif /* __ASM_CPUCAPS_H */

View File

@ -479,7 +479,8 @@ static inline void *kvm_get_hyp_vector(void)
int slot = -1;
if ((cpus_have_const_cap(ARM64_HARDEN_BRANCH_PREDICTOR) ||
cpus_have_const_cap(ARM64_SPECTRE_BHB)) && data->template_start) {
cpus_have_const_cap(ARM64_SPECTRE_BHB)) &&
data && data->template_start) {
vect = kern_hyp_va(kvm_ksym_ref(__bp_harden_hyp_vecs_start));
slot = data->hyp_vectors_slot;
}

View File

@ -56,14 +56,14 @@ enum arm64_bp_harden_el1_vectors {
DECLARE_PER_CPU_READ_MOSTLY(const char *, this_cpu_vector);
#ifndef CONFIG_UNMAP_KERNEL_AT_EL0
#define TRAMP_VALIAS 0
#define TRAMP_VALIAS 0ul
#endif
static inline const char *
arm64_get_bp_hardening_vector(enum arm64_bp_harden_el1_vectors slot)
{
if (arm64_kernel_unmapped_at_el0())
return (char *)TRAMP_VALIAS + SZ_2K * slot;
return (char *)(TRAMP_VALIAS + SZ_2K * slot);
WARN_ON_ONCE(slot == EL1_VECTOR_KPTI);

View File

@ -41,7 +41,7 @@ bool alternative_is_applied(u16 cpufeature)
/*
* Check if the target PC is within an alternative block.
*/
static bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
static __always_inline bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
{
unsigned long replptr = (unsigned long)ALT_REPL_PTR(alt);
return !(pc >= replptr && pc <= (replptr + alt->alt_len));
@ -49,7 +49,7 @@ static bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
#define align_down(x, a) ((unsigned long)(x) & ~(((unsigned long)(a)) - 1))
static u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnptr)
static __always_inline u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnptr)
{
u32 insn;
@ -94,7 +94,7 @@ static u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnp
return insn;
}
static void patch_alternative(struct alt_instr *alt,
static noinstr void patch_alternative(struct alt_instr *alt,
__le32 *origptr, __le32 *updptr, int nr_inst)
{
__le32 *replptr;

View File

@ -53,6 +53,9 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)
struct acpi_lpi_state *lpi;
struct acpi_processor *pr = per_cpu(processors, cpu);
if (unlikely(!pr || !pr->flags.has_lpi))
return -EINVAL;
/*
* If the PSCI cpu_suspend function hook has not been initialized
* idle states must not be enabled, so bail out
@ -60,9 +63,6 @@ static int psci_acpi_cpu_init_idle(unsigned int cpu)
if (!psci_ops.cpu_suspend)
return -EOPNOTSUPP;
if (unlikely(!pr || !pr->flags.has_lpi))
return -EINVAL;
count = pr->power.count - 1;
if (count <= 0)
return -ENODEV;

View File

@ -73,9 +73,21 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
if (offset < -SZ_128M || offset >= SZ_128M) {
#ifdef CONFIG_ARM64_MODULE_PLTS
struct plt_entry trampoline, *dst;
struct module *mod;
/*
* There is only one ftrace trampoline per module. For now,
* this is not a problem since on arm64, all dynamic ftrace
* invocations are routed via ftrace_caller(). This will need
* to be revisited if support for multiple ftrace entry points
* is added in the future, but for now, the pr_err() below
* deals with a theoretical issue only.
*/
if (addr != FTRACE_ADDR) {
pr_err("ftrace: far branches to multiple entry points unsupported inside a single module\n");
return -EINVAL;
}
/*
* On kernels that support module PLTs, the offset between the
* branch instruction and its target may legally exceed the
@ -93,46 +105,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
if (WARN_ON(!mod))
return -EINVAL;
/*
* There is only one ftrace trampoline per module. For now,
* this is not a problem since on arm64, all dynamic ftrace
* invocations are routed via ftrace_caller(). This will need
* to be revisited if support for multiple ftrace entry points
* is added in the future, but for now, the pr_err() below
* deals with a theoretical issue only.
*
* Note that PLTs are place relative, and plt_entries_equal()
* checks whether they point to the same target. Here, we need
* to check if the actual opcodes are in fact identical,
* regardless of the offset in memory so use memcmp() instead.
*/
dst = mod->arch.ftrace_trampoline;
trampoline = get_plt_entry(addr, dst);
if (memcmp(dst, &trampoline, sizeof(trampoline))) {
if (plt_entry_is_initialized(dst)) {
pr_err("ftrace: far branches to multiple entry points unsupported inside a single module\n");
return -EINVAL;
}
/* point the trampoline to our ftrace entry point */
module_disable_ro(mod);
*dst = trampoline;
module_enable_ro(mod, true);
/*
* Ensure updated trampoline is visible to instruction
* fetch before we patch in the branch. Although the
* architecture doesn't require an IPI in this case,
* Neoverse-N1 erratum #1542419 does require one
* if the TLB maintenance in module_enable_ro() is
* skipped due to rodata_enabled. It doesn't seem worth
* it to make it conditional given that this is
* certainly not a fast-path.
*/
flush_icache_range((unsigned long)&dst[0],
(unsigned long)&dst[1]);
}
addr = (unsigned long)dst;
addr = (unsigned long)mod->arch.ftrace_trampoline;
#else /* CONFIG_ARM64_MODULE_PLTS */
return -EINVAL;
#endif /* CONFIG_ARM64_MODULE_PLTS */

View File

@ -207,8 +207,8 @@ static int __kprobes aarch64_insn_patch_text_cb(void *arg)
int i, ret = 0;
struct aarch64_insn_patch *pp = arg;
/* The first CPU becomes master */
if (atomic_inc_return(&pp->cpu_count) == 1) {
/* The last CPU becomes master */
if (atomic_inc_return(&pp->cpu_count) == num_online_cpus()) {
for (i = 0; ret == 0 && i < pp->insn_cnt; i++)
ret = aarch64_insn_patch_text_nosync(pp->text_addrs[i],
pp->new_insns[i]);

View File

@ -9,6 +9,7 @@
#include <linux/bitops.h>
#include <linux/elf.h>
#include <linux/ftrace.h>
#include <linux/gfp.h>
#include <linux/kasan.h>
#include <linux/kernel.h>
@ -470,22 +471,48 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
return -ENOEXEC;
}
int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
static const Elf_Shdr *find_section(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
const char *name)
{
const Elf_Shdr *s, *se;
const char *secstrs = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
for (s = sechdrs, se = sechdrs + hdr->e_shnum; s < se; s++) {
if (strcmp(".altinstructions", secstrs + s->sh_name) == 0)
apply_alternatives_module((void *)s->sh_addr, s->sh_size);
#ifdef CONFIG_ARM64_MODULE_PLTS
if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE) &&
!strcmp(".text.ftrace_trampoline", secstrs + s->sh_name))
me->arch.ftrace_trampoline = (void *)s->sh_addr;
#endif
if (strcmp(name, secstrs + s->sh_name) == 0)
return s;
}
return NULL;
}
static int module_init_ftrace_plt(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *mod)
{
#if defined(CONFIG_ARM64_MODULE_PLTS) && defined(CONFIG_DYNAMIC_FTRACE)
const Elf_Shdr *s;
struct plt_entry *plt;
s = find_section(hdr, sechdrs, ".text.ftrace_trampoline");
if (!s)
return -ENOEXEC;
plt = (void *)s->sh_addr;
*plt = get_plt_entry(FTRACE_ADDR, plt);
mod->arch.ftrace_trampoline = plt;
#endif
return 0;
}
int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
{
const Elf_Shdr *s;
s = find_section(hdr, sechdrs, ".altinstructions");
if (s)
apply_alternatives_module((void *)s->sh_addr, s->sh_size);
return module_init_ftrace_plt(hdr, sechdrs, me);
}

View File

@ -1,5 +1,5 @@
SECTIONS {
.plt 0 (NOLOAD) : { BYTE(0) }
.init.plt 0 (NOLOAD) : { BYTE(0) }
.text.ftrace_trampoline 0 (NOLOAD) : { BYTE(0) }
.plt 0 : { BYTE(0) }
.init.plt 0 : { BYTE(0) }
.text.ftrace_trampoline 0 : { BYTE(0) }
}

View File

@ -909,15 +909,18 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
goto out_off;
}
/* 1. Initial fake pass to compute ctx->idx. */
/* Fake pass to fill in ctx->offset. */
if (build_body(&ctx, extra_pass)) {
/*
* 1. Initial fake pass to compute ctx->idx and ctx->offset.
*
* BPF line info needs ctx->offset[i] to be the offset of
* instruction[i] in jited image, so build prologue first.
*/
if (build_prologue(&ctx, was_classic)) {
prog = orig_prog;
goto out_off;
}
if (build_prologue(&ctx, was_classic)) {
if (build_body(&ctx, extra_pass)) {
prog = orig_prog;
goto out_off;
}
@ -983,6 +986,11 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
prog->jited_len = image_size;
if (!prog->is_func || extra_pass) {
int i;
/* offset[prog->len] is the size of program */
for (i = 0; i <= prog->len; i++)
ctx.offset[i] *= AARCH64_INSN_SIZE;
bpf_prog_fill_jited_linfo(prog, ctx.offset + 1);
out_off:
kfree(ctx.offset);

View File

@ -448,7 +448,8 @@ void __init acpi_numa_fixup(void)
if (srat_num_cpus == 0) {
node_set_online(0);
node_cpuid[0].phys_id = hard_smp_processor_id();
return;
slit_distance(0, 0) = LOCAL_DISTANCE;
goto out;
}
/*
@ -491,7 +492,7 @@ void __init acpi_numa_fixup(void)
for (j = 0; j < MAX_NUMNODES; j++)
slit_distance(i, j) = i == j ?
LOCAL_DISTANCE : REMOTE_DISTANCE;
return;
goto out;
}
memset(numa_slit, -1, sizeof(numa_slit));
@ -516,6 +517,8 @@ void __init acpi_numa_fixup(void)
printk("\n");
}
#endif
out:
node_possible_map = node_online_map;
}
#endif /* CONFIG_ACPI_NUMA */

View File

@ -171,27 +171,27 @@ extern long __user_bad(void);
#define __get_user(x, ptr) \
({ \
unsigned long __gu_val = 0; \
long __gu_err; \
switch (sizeof(*(ptr))) { \
case 1: \
__get_user_asm("lbu", (ptr), __gu_val, __gu_err); \
__get_user_asm("lbu", (ptr), x, __gu_err); \
break; \
case 2: \
__get_user_asm("lhu", (ptr), __gu_val, __gu_err); \
__get_user_asm("lhu", (ptr), x, __gu_err); \
break; \
case 4: \
__get_user_asm("lw", (ptr), __gu_val, __gu_err); \
__get_user_asm("lw", (ptr), x, __gu_err); \
break; \
case 8: \
__gu_err = __copy_from_user(&__gu_val, ptr, 8); \
if (__gu_err) \
__gu_err = -EFAULT; \
case 8: { \
__u64 __x = 0; \
__gu_err = raw_copy_from_user(&__x, ptr, 8) ? \
-EFAULT : 0; \
(x) = (typeof(x))(typeof((x) - (x)))__x; \
break; \
} \
default: \
/* __gu_val = 0; __gu_err = -EINVAL;*/ __gu_err = __user_bad();\
} \
x = (__force __typeof__(*(ptr))) __gu_val; \
__gu_err; \
})

View File

@ -131,7 +131,7 @@
*/
mfc0 t0,CP0_CAUSE # get pending interrupts
mfc0 t1,CP0_STATUS
#ifdef CONFIG_32BIT
#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
lw t2,cpu_fpu_mask
#endif
andi t0,ST0_IM # CAUSE.CE may be non-zero!
@ -139,7 +139,7 @@
beqz t0,spurious
#ifdef CONFIG_32BIT
#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
and t2,t0
bnez t2,fpu # handle FPU immediately
#endif
@ -280,7 +280,7 @@ handle_it:
j dec_irq_dispatch
nop
#ifdef CONFIG_32BIT
#if defined(CONFIG_32BIT) && defined(CONFIG_MIPS_FP_SUPPORT)
fpu:
lw t0,fpu_kstat_irq
nop

View File

@ -6,4 +6,4 @@
lib-y += init.o memory.o cmdline.o identify.o console.o
lib-$(CONFIG_32BIT) += locore.o
lib-$(CONFIG_CPU_R3000) += locore.o

View File

@ -766,7 +766,8 @@ void __init arch_init_irq(void)
dec_interrupt[DEC_IRQ_HALT] = -1;
/* Register board interrupts: FPU and cascade. */
if (dec_interrupt[DEC_IRQ_FPU] >= 0 && cpu_has_fpu) {
if (IS_ENABLED(CONFIG_MIPS_FP_SUPPORT) &&
dec_interrupt[DEC_IRQ_FPU] >= 0 && cpu_has_fpu) {
struct irq_desc *desc_fpu;
int irq_fpu;

View File

@ -43,16 +43,11 @@
*/
#define REX_PROM_MAGIC 0x30464354
#ifdef CONFIG_64BIT
#define prom_is_rex(magic) 1 /* KN04 and KN05 are REX PROMs. */
#else /* !CONFIG_64BIT */
#define prom_is_rex(magic) ((magic) == REX_PROM_MAGIC)
#endif /* !CONFIG_64BIT */
/* KN04 and KN05 are REX PROMs, so only do the check for R3k systems. */
static inline bool prom_is_rex(u32 magic)
{
return !IS_ENABLED(CONFIG_CPU_R3000) || magic == REX_PROM_MAGIC;
}
/*
* 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and

View File

@ -16,7 +16,7 @@ static inline void setup_8250_early_printk_port(unsigned long base,
unsigned int reg_shift, unsigned int timeout) {}
#endif
extern void set_handler(unsigned long offset, void *addr, unsigned long len);
void set_handler(unsigned long offset, const void *addr, unsigned long len);
extern void set_uncached_handler(unsigned long offset, void *addr, unsigned long len);
typedef void (*vi_handler_t)(void);

View File

@ -361,6 +361,9 @@ asmlinkage void start_secondary(void)
cpu = smp_processor_id();
cpu_data[cpu].udelay_val = loops_per_jiffy;
set_cpu_sibling_map(cpu);
set_cpu_core_map(cpu);
cpumask_set_cpu(cpu, &cpu_coherent_mask);
notify_cpu_starting(cpu);
@ -372,9 +375,6 @@ asmlinkage void start_secondary(void)
/* The CPU is running and counters synchronised, now mark it online */
set_cpu_online(cpu, true);
set_cpu_sibling_map(cpu);
set_cpu_core_map(cpu);
calculate_cpu_foreign_map();
/*

View File

@ -2020,19 +2020,19 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
* If no shadow set is selected then use the default handler
* that does normal register saving and standard interrupt exit
*/
extern char except_vec_vi, except_vec_vi_lui;
extern char except_vec_vi_ori, except_vec_vi_end;
extern char rollback_except_vec_vi;
char *vec_start = using_rollback_handler() ?
&rollback_except_vec_vi : &except_vec_vi;
extern const u8 except_vec_vi[], except_vec_vi_lui[];
extern const u8 except_vec_vi_ori[], except_vec_vi_end[];
extern const u8 rollback_except_vec_vi[];
const u8 *vec_start = using_rollback_handler() ?
rollback_except_vec_vi : except_vec_vi;
#if defined(CONFIG_CPU_MICROMIPS) || defined(CONFIG_CPU_BIG_ENDIAN)
const int lui_offset = &except_vec_vi_lui - vec_start + 2;
const int ori_offset = &except_vec_vi_ori - vec_start + 2;
const int lui_offset = except_vec_vi_lui - vec_start + 2;
const int ori_offset = except_vec_vi_ori - vec_start + 2;
#else
const int lui_offset = &except_vec_vi_lui - vec_start;
const int ori_offset = &except_vec_vi_ori - vec_start;
const int lui_offset = except_vec_vi_lui - vec_start;
const int ori_offset = except_vec_vi_ori - vec_start;
#endif
const int handler_len = &except_vec_vi_end - vec_start;
const int handler_len = except_vec_vi_end - vec_start;
if (handler_len > VECTORSPACING) {
/*
@ -2240,7 +2240,7 @@ void per_cpu_trap_init(bool is_boot_cpu)
}
/* Install CPU exception handler */
void set_handler(unsigned long offset, void *addr, unsigned long size)
void set_handler(unsigned long offset, const void *addr, unsigned long size)
{
#ifdef CONFIG_CPU_MICROMIPS
memcpy((void *)(ebase + offset), ((unsigned char *)addr - 1), size);

View File

@ -61,6 +61,7 @@ static int __init ill_acc_of_setup(void)
pdev = of_find_device_by_node(np);
if (!pdev) {
pr_err("%pOFn: failed to lookup pdev\n", np);
of_node_put(np);
return -EINVAL;
}

View File

@ -310,11 +310,9 @@ static int __init plat_setup_devices(void)
static int __init setup_kmac(char *s)
{
printk(KERN_INFO "korina mac = %s\n", s);
if (!mac_pton(s, korina_dev0_data.mac)) {
if (!mac_pton(s, korina_dev0_data.mac))
printk(KERN_ERR "Invalid mac\n");
return -EINVAL;
}
return 0;
return 1;
}
__setup("kmac=", setup_kmac);

View File

@ -71,9 +71,7 @@ static inline void set_fs(mm_segment_t fs)
* versions are void (ie, don't return a value as such).
*/
#define get_user __get_user \
#define __get_user(x, ptr) \
#define get_user(x, ptr) \
({ \
long __gu_err = 0; \
__get_user_check((x), (ptr), __gu_err); \
@ -86,6 +84,14 @@ static inline void set_fs(mm_segment_t fs)
(void)0; \
})
#define __get_user(x, ptr) \
({ \
long __gu_err = 0; \
const __typeof__(*(ptr)) __user *__p = (ptr); \
__get_user_err((x), __p, (__gu_err)); \
__gu_err; \
})
#define __get_user_check(x, ptr, err) \
({ \
const __typeof__(*(ptr)) __user *__p = (ptr); \
@ -166,12 +172,18 @@ do { \
: "r"(addr), "i"(-EFAULT) \
: "cc")
#define put_user __put_user \
#define put_user(x, ptr) \
({ \
long __pu_err = 0; \
__put_user_check((x), (ptr), __pu_err); \
__pu_err; \
})
#define __put_user(x, ptr) \
({ \
long __pu_err = 0; \
__put_user_err((x), (ptr), __pu_err); \
__typeof__(*(ptr)) __user *__p = (ptr); \
__put_user_err((x), __p, __pu_err); \
__pu_err; \
})

View File

@ -89,6 +89,7 @@ extern __must_check long strnlen_user(const char __user *s, long n);
/* Optimized macros */
#define __get_user_asm(val, insn, addr, err) \
{ \
unsigned long __gu_val; \
__asm__ __volatile__( \
" movi %0, %3\n" \
"1: " insn " %1, 0(%2)\n" \
@ -97,14 +98,20 @@ extern __must_check long strnlen_user(const char __user *s, long n);
" .section __ex_table,\"a\"\n" \
" .word 1b, 2b\n" \
" .previous" \
: "=&r" (err), "=r" (val) \
: "=&r" (err), "=r" (__gu_val) \
: "r" (addr), "i" (-EFAULT)); \
val = (__force __typeof__(*(addr)))__gu_val; \
}
#define __get_user_unknown(val, size, ptr, err) do { \
extern void __get_user_unknown(void);
#define __get_user_8(val, ptr, err) do { \
u64 __val = 0; \
err = 0; \
if (__copy_from_user(&(val), ptr, size)) { \
if (raw_copy_from_user(&(__val), ptr, sizeof(val))) { \
err = -EFAULT; \
} else { \
val = (typeof(val))(typeof((val) - (val)))__val; \
} \
} while (0)
@ -120,8 +127,11 @@ do { \
case 4: \
__get_user_asm(val, "ldw", ptr, err); \
break; \
case 8: \
__get_user_8(val, ptr, err); \
break; \
default: \
__get_user_unknown(val, size, ptr, err); \
__get_user_unknown(); \
break; \
} \
} while (0)
@ -130,9 +140,7 @@ do { \
({ \
long __gu_err = -EFAULT; \
const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \
unsigned long __gu_val = 0; \
__get_user_common(__gu_val, sizeof(*(ptr)), __gu_ptr, __gu_err);\
(x) = (__force __typeof__(x))__gu_val; \
__get_user_common(x, sizeof(*(ptr)), __gu_ptr, __gu_err); \
__gu_err; \
})
@ -140,11 +148,9 @@ do { \
({ \
long __gu_err = -EFAULT; \
const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \
unsigned long __gu_val = 0; \
if (access_ok( __gu_ptr, sizeof(*__gu_ptr))) \
__get_user_common(__gu_val, sizeof(*__gu_ptr), \
__get_user_common(x, sizeof(*__gu_ptr), \
__gu_ptr, __gu_err); \
(x) = (__force __typeof__(x))__gu_val; \
__gu_err; \
})

View File

@ -65,7 +65,6 @@ KBUILD_CFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY=1 \
-DFTRACE_PATCHABLE_FUNCTION_SIZE=$(NOP_COUNT)
CC_FLAGS_FTRACE := -fpatchable-function-entry=$(NOP_COUNT),$(shell echo $$(($(NOP_COUNT)-1)))
KBUILD_LDS_MODULE += $(srctree)/arch/parisc/kernel/module.lds
endif
OBJCOPY_FLAGS =-O binary -R .note -R .comment -S

View File

@ -43,6 +43,7 @@
#include <linux/elf.h>
#include <linux/vmalloc.h>
#include <linux/fs.h>
#include <linux/ftrace.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/bug.h>
@ -862,7 +863,7 @@ int module_finalize(const Elf_Ehdr *hdr,
const char *strtab = NULL;
const Elf_Shdr *s;
char *secstrings;
int err, symindex = -1;
int symindex = -1;
Elf_Sym *newptr, *oldptr;
Elf_Shdr *symhdr = NULL;
#ifdef DEBUG
@ -946,11 +947,13 @@ int module_finalize(const Elf_Ehdr *hdr,
/* patch .altinstructions */
apply_alternatives(aseg, aseg + s->sh_size, me->name);
#ifdef CONFIG_DYNAMIC_FTRACE
/* For 32 bit kernels we're compiling modules with
* -ffunction-sections so we must relocate the addresses in the
*__mcount_loc section.
* ftrace callsite section.
*/
if (symindex != -1 && !strcmp(secname, "__mcount_loc")) {
if (symindex != -1 && !strcmp(secname, FTRACE_CALLSITE_SECTION)) {
int err;
if (s->sh_type == SHT_REL)
err = apply_relocate((Elf_Shdr *)sechdrs,
strtab, symindex,
@ -962,6 +965,7 @@ int module_finalize(const Elf_Ehdr *hdr,
if (err)
return err;
}
#endif
}
return 0;
}

View File

@ -1,7 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0 */
SECTIONS {
__mcount_loc : {
*(__patchable_function_entries)
}
}

View File

@ -40,10 +40,7 @@ static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags,
*need_unmap = 1;
set_fixmap(fixmap, page_to_phys(page));
if (flags)
raw_spin_lock_irqsave(&patch_lock, *flags);
else
__acquire(&patch_lock);
raw_spin_lock_irqsave(&patch_lock, *flags);
return (void *) (__fix_to_virt(fixmap) + (uintaddr & ~PAGE_MASK));
}
@ -52,10 +49,7 @@ static void __kprobes patch_unmap(int fixmap, unsigned long *flags)
{
clear_fixmap(fixmap);
if (flags)
raw_spin_unlock_irqrestore(&patch_lock, *flags);
else
__release(&patch_lock);
raw_spin_unlock_irqrestore(&patch_lock, *flags);
}
void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
@ -67,8 +61,9 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
int mapped;
/* Make sure we don't have any aliases in cache */
flush_kernel_vmap_range(addr, len);
flush_icache_range(start, end);
flush_kernel_dcache_range_asm(start, end);
flush_kernel_icache_range_asm(start, end);
flush_tlb_kernel_range(start, end);
p = fixmap = patch_map(addr, FIX_TEXT_POKE0, &flags, &mapped);
@ -81,8 +76,10 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
* We're crossing a page boundary, so
* need to remap
*/
flush_kernel_vmap_range((void *)fixmap,
(p-fixmap) * sizeof(*p));
flush_kernel_dcache_range_asm((unsigned long)fixmap,
(unsigned long)p);
flush_tlb_kernel_range((unsigned long)fixmap,
(unsigned long)p);
if (mapped)
patch_unmap(FIX_TEXT_POKE0, &flags);
p = fixmap = patch_map(addr, FIX_TEXT_POKE0, &flags,
@ -90,10 +87,10 @@ void __kprobes __patch_text_multiple(void *addr, u32 *insn, unsigned int len)
}
}
flush_kernel_vmap_range((void *)fixmap, (p-fixmap) * sizeof(*p));
flush_kernel_dcache_range_asm((unsigned long)fixmap, (unsigned long)p);
flush_tlb_kernel_range((unsigned long)fixmap, (unsigned long)p);
if (mapped)
patch_unmap(FIX_TEXT_POKE0, &flags);
flush_icache_range(start, end);
}
void __kprobes __patch_text(void *addr, u32 insn)

View File

@ -340,7 +340,7 @@ static int emulate_stw(struct pt_regs *regs, int frreg, int flop)
: "r" (val), "r" (regs->ior), "r" (regs->isr)
: "r19", "r20", "r21", "r22", "r1", FIXUP_BRANCH_CLOBBER );
return 0;
return ret;
}
static int emulate_std(struct pt_regs *regs, int frreg, int flop)
{
@ -397,7 +397,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop)
__asm__ __volatile__ (
" mtsp %4, %%sr1\n"
" zdep %2, 29, 2, %%r19\n"
" dep %%r0, 31, 2, %2\n"
" dep %%r0, 31, 2, %3\n"
" mtsar %%r19\n"
" zvdepi -2, 32, %%r19\n"
"1: ldw 0(%%sr1,%3),%%r20\n"
@ -409,7 +409,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop)
" andcm %%r21, %%r19, %%r21\n"
" or %1, %%r20, %1\n"
" or %2, %%r21, %2\n"
"3: stw %1,0(%%sr1,%1)\n"
"3: stw %1,0(%%sr1,%3)\n"
"4: stw %%r1,4(%%sr1,%3)\n"
"5: stw %2,8(%%sr1,%3)\n"
" copy %%r0, %0\n"
@ -596,7 +596,6 @@ void handle_unaligned(struct pt_regs *regs)
ret = ERR_NOTHANDLED; /* "undefined", but lets kill them. */
break;
}
#ifdef CONFIG_PA20
switch (regs->iir & OPCODE2_MASK)
{
case OPCODE_FLDD_L:
@ -607,22 +606,23 @@ void handle_unaligned(struct pt_regs *regs)
flop=1;
ret = emulate_std(regs, R2(regs->iir),1);
break;
#ifdef CONFIG_PA20
case OPCODE_LDD_L:
ret = emulate_ldd(regs, R2(regs->iir),0);
break;
case OPCODE_STD_L:
ret = emulate_std(regs, R2(regs->iir),0);
break;
}
#endif
}
switch (regs->iir & OPCODE3_MASK)
{
case OPCODE_FLDW_L:
flop=1;
ret = emulate_ldw(regs, R2(regs->iir),0);
ret = emulate_ldw(regs, R2(regs->iir), 1);
break;
case OPCODE_LDW_M:
ret = emulate_ldw(regs, R2(regs->iir),1);
ret = emulate_ldw(regs, R2(regs->iir), 0);
break;
case OPCODE_FSTW_L:

View File

@ -347,9 +347,9 @@ static void __init setup_bootmem(void)
static bool kernel_set_to_readonly;
static void __init map_pages(unsigned long start_vaddr,
unsigned long start_paddr, unsigned long size,
pgprot_t pgprot, int force)
static void __ref map_pages(unsigned long start_vaddr,
unsigned long start_paddr, unsigned long size,
pgprot_t pgprot, int force)
{
pgd_t *pg_dir;
pmd_t *pmd;
@ -485,7 +485,7 @@ void __init set_kernel_text_rw(int enable_read_write)
flush_tlb_all();
}
void __ref free_initmem(void)
void free_initmem(void)
{
unsigned long init_begin = (unsigned long)__init_begin;
unsigned long init_end = (unsigned long)__init_end;
@ -499,7 +499,6 @@ void __ref free_initmem(void)
/* The init text pages are marked R-X. We have to
* flush the icache and mark them RW-
*
* This is tricky, because map_pages is in the init section.
* Do a dummy remap of the data section first (the data
* section is already PAGE_KERNEL) to pull in the TLB entries
* for map_kernel */

View File

@ -174,7 +174,7 @@ else
CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5))
CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4)
endif
else
else ifdef CONFIG_PPC_BOOK3E_64
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
endif

View File

@ -139,12 +139,12 @@
fman@400000 {
ethernet@e6000 {
phy-handle = <&phy_rgmii_0>;
phy-connection-type = "rgmii";
phy-connection-type = "rgmii-id";
};
ethernet@e8000 {
phy-handle = <&phy_rgmii_1>;
phy-connection-type = "rgmii";
phy-connection-type = "rgmii-id";
};
mdio0: mdio@fc000 {

View File

@ -345,25 +345,37 @@ static inline void __raw_writeq_be(unsigned long v, volatile void __iomem *addr)
*/
static inline void __raw_rm_writeb(u8 val, volatile void __iomem *paddr)
{
__asm__ __volatile__("stbcix %0,0,%1"
__asm__ __volatile__(".machine push; \
.machine power6; \
stbcix %0,0,%1; \
.machine pop;"
: : "r" (val), "r" (paddr) : "memory");
}
static inline void __raw_rm_writew(u16 val, volatile void __iomem *paddr)
{
__asm__ __volatile__("sthcix %0,0,%1"
__asm__ __volatile__(".machine push; \
.machine power6; \
sthcix %0,0,%1; \
.machine pop;"
: : "r" (val), "r" (paddr) : "memory");
}
static inline void __raw_rm_writel(u32 val, volatile void __iomem *paddr)
{
__asm__ __volatile__("stwcix %0,0,%1"
__asm__ __volatile__(".machine push; \
.machine power6; \
stwcix %0,0,%1; \
.machine pop;"
: : "r" (val), "r" (paddr) : "memory");
}
static inline void __raw_rm_writeq(u64 val, volatile void __iomem *paddr)
{
__asm__ __volatile__("stdcix %0,0,%1"
__asm__ __volatile__(".machine push; \
.machine power6; \
stdcix %0,0,%1; \
.machine pop;"
: : "r" (val), "r" (paddr) : "memory");
}
@ -375,7 +387,10 @@ static inline void __raw_rm_writeq_be(u64 val, volatile void __iomem *paddr)
static inline u8 __raw_rm_readb(volatile void __iomem *paddr)
{
u8 ret;
__asm__ __volatile__("lbzcix %0,0, %1"
__asm__ __volatile__(".machine push; \
.machine power6; \
lbzcix %0,0, %1; \
.machine pop;"
: "=r" (ret) : "r" (paddr) : "memory");
return ret;
}
@ -383,7 +398,10 @@ static inline u8 __raw_rm_readb(volatile void __iomem *paddr)
static inline u16 __raw_rm_readw(volatile void __iomem *paddr)
{
u16 ret;
__asm__ __volatile__("lhzcix %0,0, %1"
__asm__ __volatile__(".machine push; \
.machine power6; \
lhzcix %0,0, %1; \
.machine pop;"
: "=r" (ret) : "r" (paddr) : "memory");
return ret;
}
@ -391,7 +409,10 @@ static inline u16 __raw_rm_readw(volatile void __iomem *paddr)
static inline u32 __raw_rm_readl(volatile void __iomem *paddr)
{
u32 ret;
__asm__ __volatile__("lwzcix %0,0, %1"
__asm__ __volatile__(".machine push; \
.machine power6; \
lwzcix %0,0, %1; \
.machine pop;"
: "=r" (ret) : "r" (paddr) : "memory");
return ret;
}
@ -399,7 +420,10 @@ static inline u32 __raw_rm_readl(volatile void __iomem *paddr)
static inline u64 __raw_rm_readq(volatile void __iomem *paddr)
{
u64 ret;
__asm__ __volatile__("ldcix %0,0, %1"
__asm__ __volatile__(".machine push; \
.machine power6; \
ldcix %0,0, %1; \
.machine pop;"
: "=r" (ret) : "r" (paddr) : "memory");
return ret;
}

View File

@ -132,7 +132,11 @@ static inline bool pfn_valid(unsigned long pfn)
#define virt_to_page(kaddr) pfn_to_page(virt_to_pfn(kaddr))
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
#define virt_addr_valid(kaddr) pfn_valid(virt_to_pfn(kaddr))
#define virt_addr_valid(vaddr) ({ \
unsigned long _addr = (unsigned long)vaddr; \
_addr >= PAGE_OFFSET && _addr < (unsigned long)high_memory && \
pfn_valid(virt_to_pfn(_addr)); \
})
/*
* On Book-E parts we need __va to parse the device tree and we can't

View File

@ -191,8 +191,11 @@ extern long __get_user_bad(void);
*/
#define __get_user_atomic_128_aligned(kaddr, uaddr, err) \
__asm__ __volatile__( \
".machine push\n" \
".machine altivec\n" \
"1: lvx 0,0,%1 # get user\n" \
" stvx 0,0,%2 # put kernel\n" \
".machine pop\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: li %0,%3\n" \

View File

@ -669,7 +669,7 @@ static void __init kvm_use_magic_page(void)
on_each_cpu(kvm_map_magic_page, &features, 1);
/* Quick self-test to see if the mapping works */
if (!fault_in_pages_readable((const char *)KVM_MAGIC_PAGE, sizeof(u32))) {
if (fault_in_pages_readable((const char *)KVM_MAGIC_PAGE, sizeof(u32))) {
kvm_patching_worked = false;
return;
}

View File

@ -146,11 +146,18 @@ void __init reserve_crashkernel(void)
if (!crashk_res.start) {
#ifdef CONFIG_PPC64
/*
* On 64bit we split the RMO in half but cap it at half of
* a small SLB (128MB) since the crash kernel needs to place
* itself and some stacks to be in the first segment.
* On the LPAR platform place the crash kernel to mid of
* RMA size (512MB or more) to ensure the crash kernel
* gets enough space to place itself and some stack to be
* in the first segment. At the same time normal kernel
* also get enough space to allocate memory for essential
* system resource in the first segment. Keep the crash
* kernel starts at 128MB offset on other platforms.
*/
crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
if (firmware_has_feature(FW_FEATURE_LPAR))
crashk_res.start = ppc64_rma_size / 2;
else
crashk_res.start = min(0x8000000ULL, (ppc64_rma_size / 2));
#else
crashk_res.start = KDUMP_KERNELBASE;
#endif

View File

@ -1244,6 +1244,12 @@ int __init early_init_dt_scan_rtas(unsigned long node,
entryp = of_get_flat_dt_prop(node, "linux,rtas-entry", NULL);
sizep = of_get_flat_dt_prop(node, "rtas-size", NULL);
#ifdef CONFIG_PPC64
/* need this feature to decide the crashkernel offset */
if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL))
powerpc_firmware_features |= FW_FEATURE_LPAR;
#endif
if (basep && entryp && sizep) {
rtas.base = *basep;
rtas.entry = *entryp;

View File

@ -420,13 +420,19 @@ static void kvmppc_tce_put(struct kvmppc_spapr_tce_table *stt,
tbl[idx % TCES_PER_PAGE] = tce;
}
static void kvmppc_clear_tce(struct mm_struct *mm, struct iommu_table *tbl,
unsigned long entry)
static void kvmppc_clear_tce(struct mm_struct *mm, struct kvmppc_spapr_tce_table *stt,
struct iommu_table *tbl, unsigned long entry)
{
unsigned long hpa = 0;
enum dma_data_direction dir = DMA_NONE;
unsigned long i;
unsigned long subpages = 1ULL << (stt->page_shift - tbl->it_page_shift);
unsigned long io_entry = entry << (stt->page_shift - tbl->it_page_shift);
iommu_tce_xchg_no_kill(mm, tbl, entry, &hpa, &dir);
for (i = 0; i < subpages; ++i) {
unsigned long hpa = 0;
enum dma_data_direction dir = DMA_NONE;
iommu_tce_xchg_no_kill(mm, tbl, io_entry + i, &hpa, &dir);
}
}
static long kvmppc_tce_iommu_mapped_dec(struct kvm *kvm,
@ -485,6 +491,8 @@ static long kvmppc_tce_iommu_unmap(struct kvm *kvm,
break;
}
iommu_tce_kill(tbl, io_entry, subpages);
return ret;
}
@ -544,6 +552,8 @@ static long kvmppc_tce_iommu_map(struct kvm *kvm,
break;
}
iommu_tce_kill(tbl, io_entry, subpages);
return ret;
}
@ -590,10 +600,9 @@ long kvmppc_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
ret = kvmppc_tce_iommu_map(vcpu->kvm, stt, stit->tbl,
entry, ua, dir);
iommu_tce_kill(stit->tbl, entry, 1);
if (ret != H_SUCCESS) {
kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl, entry);
kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl, entry);
goto unlock_exit;
}
}
@ -669,13 +678,13 @@ long kvmppc_h_put_tce_indirect(struct kvm_vcpu *vcpu,
*/
if (get_user(tce, tces + i)) {
ret = H_TOO_HARD;
goto invalidate_exit;
goto unlock_exit;
}
tce = be64_to_cpu(tce);
if (kvmppc_tce_to_ua(vcpu->kvm, tce, &ua)) {
ret = H_PARAMETER;
goto invalidate_exit;
goto unlock_exit;
}
list_for_each_entry_lockless(stit, &stt->iommu_tables, next) {
@ -684,19 +693,15 @@ long kvmppc_h_put_tce_indirect(struct kvm_vcpu *vcpu,
iommu_tce_direction(tce));
if (ret != H_SUCCESS) {
kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl,
entry);
goto invalidate_exit;
kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl,
entry + i);
goto unlock_exit;
}
}
kvmppc_tce_put(stt, entry + i, tce);
}
invalidate_exit:
list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
iommu_tce_kill(stit->tbl, entry, npages);
unlock_exit:
srcu_read_unlock(&vcpu->kvm->srcu, idx);
@ -735,20 +740,16 @@ long kvmppc_h_stuff_tce(struct kvm_vcpu *vcpu,
continue;
if (ret == H_TOO_HARD)
goto invalidate_exit;
return ret;
WARN_ON_ONCE(1);
kvmppc_clear_tce(vcpu->kvm->mm, stit->tbl, entry);
kvmppc_clear_tce(vcpu->kvm->mm, stt, stit->tbl, entry + i);
}
}
for (i = 0; i < npages; ++i, ioba += (1ULL << stt->page_shift))
kvmppc_tce_put(stt, ioba >> stt->page_shift, tce_value);
invalidate_exit:
list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
iommu_tce_kill(stit->tbl, ioba >> stt->page_shift, npages);
return ret;
}
EXPORT_SYMBOL_GPL(kvmppc_h_stuff_tce);

View File

@ -251,13 +251,19 @@ extern void iommu_tce_kill_rm(struct iommu_table *tbl,
tbl->it_ops->tce_kill(tbl, entry, pages, true);
}
static void kvmppc_rm_clear_tce(struct kvm *kvm, struct iommu_table *tbl,
unsigned long entry)
static void kvmppc_rm_clear_tce(struct kvm *kvm, struct kvmppc_spapr_tce_table *stt,
struct iommu_table *tbl, unsigned long entry)
{
unsigned long hpa = 0;
enum dma_data_direction dir = DMA_NONE;
unsigned long i;
unsigned long subpages = 1ULL << (stt->page_shift - tbl->it_page_shift);
unsigned long io_entry = entry << (stt->page_shift - tbl->it_page_shift);
iommu_tce_xchg_no_kill_rm(kvm->mm, tbl, entry, &hpa, &dir);
for (i = 0; i < subpages; ++i) {
unsigned long hpa = 0;
enum dma_data_direction dir = DMA_NONE;
iommu_tce_xchg_no_kill_rm(kvm->mm, tbl, io_entry + i, &hpa, &dir);
}
}
static long kvmppc_rm_tce_iommu_mapped_dec(struct kvm *kvm,
@ -320,6 +326,8 @@ static long kvmppc_rm_tce_iommu_unmap(struct kvm *kvm,
break;
}
iommu_tce_kill_rm(tbl, io_entry, subpages);
return ret;
}
@ -383,6 +391,8 @@ static long kvmppc_rm_tce_iommu_map(struct kvm *kvm,
break;
}
iommu_tce_kill_rm(tbl, io_entry, subpages);
return ret;
}
@ -428,10 +438,8 @@ long kvmppc_rm_h_put_tce(struct kvm_vcpu *vcpu, unsigned long liobn,
ret = kvmppc_rm_tce_iommu_map(vcpu->kvm, stt,
stit->tbl, entry, ua, dir);
iommu_tce_kill_rm(stit->tbl, entry, 1);
if (ret != H_SUCCESS) {
kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl, entry);
kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl, entry);
return ret;
}
}
@ -571,7 +579,7 @@ long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,
ua = 0;
if (kvmppc_rm_tce_to_ua(vcpu->kvm, tce, &ua, NULL)) {
ret = H_PARAMETER;
goto invalidate_exit;
goto unlock_exit;
}
list_for_each_entry_lockless(stit, &stt->iommu_tables, next) {
@ -580,19 +588,15 @@ long kvmppc_rm_h_put_tce_indirect(struct kvm_vcpu *vcpu,
iommu_tce_direction(tce));
if (ret != H_SUCCESS) {
kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl,
entry);
goto invalidate_exit;
kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl,
entry + i);
goto unlock_exit;
}
}
kvmppc_rm_tce_put(stt, entry + i, tce);
}
invalidate_exit:
list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
iommu_tce_kill_rm(stit->tbl, entry, npages);
unlock_exit:
if (rmap)
unlock_rmap(rmap);
@ -635,20 +639,16 @@ long kvmppc_rm_h_stuff_tce(struct kvm_vcpu *vcpu,
continue;
if (ret == H_TOO_HARD)
goto invalidate_exit;
return ret;
WARN_ON_ONCE_RM(1);
kvmppc_rm_clear_tce(vcpu->kvm, stit->tbl, entry);
kvmppc_rm_clear_tce(vcpu->kvm, stt, stit->tbl, entry + i);
}
}
for (i = 0; i < npages; ++i, ioba += (1ULL << stt->page_shift))
kvmppc_rm_tce_put(stt, ioba >> stt->page_shift, tce_value);
invalidate_exit:
list_for_each_entry_lockless(stit, &stt->iommu_tables, next)
iommu_tce_kill_rm(stit->tbl, ioba >> stt->page_shift, npages);
return ret;
}

View File

@ -1495,7 +1495,7 @@ int kvmppc_handle_vmx_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
{
enum emulation_result emulated = EMULATE_DONE;
if (vcpu->arch.mmio_vsx_copy_nums > 2)
if (vcpu->arch.mmio_vmx_copy_nums > 2)
return EMULATE_FAIL;
while (vcpu->arch.mmio_vmx_copy_nums) {
@ -1592,7 +1592,7 @@ int kvmppc_handle_vmx_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
unsigned int index = rs & KVM_MMIO_REG_MASK;
enum emulation_result emulated = EMULATE_DONE;
if (vcpu->arch.mmio_vsx_copy_nums > 2)
if (vcpu->arch.mmio_vmx_copy_nums > 2)
return EMULATE_FAIL;
vcpu->arch.io_gpr = rs;

View File

@ -906,7 +906,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);
#define __put_user_asmx(x, addr, err, op, cr) \
__asm__ __volatile__( \
".machine push\n" \
".machine power8\n" \
"1: " op " %2,0,%3\n" \
".machine pop\n" \
" mfcr %1\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
@ -919,7 +922,10 @@ NOKPROBE_SYMBOL(emulate_dcbz);
#define __get_user_asmx(x, addr, err, op) \
__asm__ __volatile__( \
".machine push\n" \
".machine power8\n" \
"1: "op" %1,0,%2\n" \
".machine pop\n" \
"2:\n" \
".section .fixup,\"ax\"\n" \
"3: li %0,%3\n" \
@ -2787,12 +2793,14 @@ void emulate_update_regs(struct pt_regs *regs, struct instruction_op *op)
case BARRIER_EIEIO:
eieio();
break;
#ifdef CONFIG_PPC64
case BARRIER_LWSYNC:
asm volatile("lwsync" : : : "memory");
break;
case BARRIER_PTESYNC:
asm volatile("ptesync" : : : "memory");
break;
#endif
}
break;
@ -2910,7 +2918,7 @@ int emulate_loadstore(struct pt_regs *regs, struct instruction_op *op)
__put_user_asmx(op->val, ea, err, "stbcx.", cr);
break;
case 2:
__put_user_asmx(op->val, ea, err, "stbcx.", cr);
__put_user_asmx(op->val, ea, err, "sthcx.", cr);
break;
#endif
case 4:

View File

@ -121,7 +121,7 @@ static void __init kasan_remap_early_shadow_ro(void)
pmd_t *pmd = pmd_offset(pud_offset(pgd_offset_k(k_cur), k_cur), k_cur);
pte_t *ptep = pte_offset_kernel(pmd, k_cur);
if ((pte_val(*ptep) & PTE_RPN_MASK) != pa)
if (pte_page(*ptep) != virt_to_page(lm_alias(kasan_early_shadow_page)))
continue;
__set_pte_at(&init_mm, k_cur, ptep, pfn_pte(PHYS_PFN(pa), prot), 0);

View File

@ -1441,7 +1441,11 @@ static int trace_imc_event_init(struct perf_event *event)
event->hw.idx = -1;
target = event->hw.target;
event->pmu->task_ctx_nr = perf_hw_context;
/*
* There can only be a single PMU for perf_hw_context events which is assigned to
* core PMU. Hence use "perf_sw_context" for trace_imc.
*/
event->pmu->task_ctx_nr = perf_sw_context;
event->destroy = reset_global_refc;
return 0;
}

View File

@ -131,11 +131,11 @@ int p9_dd22_bl_ev[] = {
/* Table of alternatives, sorted by column 0 */
static const unsigned int power9_event_alternatives[][MAX_ALT] = {
{ PM_INST_DISP, PM_INST_DISP_ALT },
{ PM_RUN_CYC_ALT, PM_RUN_CYC },
{ PM_RUN_INST_CMPL_ALT, PM_RUN_INST_CMPL },
{ PM_LD_MISS_L1, PM_LD_MISS_L1_ALT },
{ PM_BR_2PATH, PM_BR_2PATH_ALT },
{ PM_INST_DISP, PM_INST_DISP_ALT },
{ PM_RUN_CYC_ALT, PM_RUN_CYC },
{ PM_LD_MISS_L1, PM_LD_MISS_L1_ALT },
{ PM_RUN_INST_CMPL_ALT, PM_RUN_INST_CMPL },
};
static int power9_get_alternatives(u64 event, unsigned int flags, u64 alt[])

View File

@ -153,6 +153,7 @@ int mpc8xx_pic_init(void)
if (mpc8xx_pic_host == NULL) {
printk(KERN_ERR "MPC8xx PIC: failed to allocate irq host!\n");
ret = -ENOMEM;
goto out;
}
ret = 0;

View File

@ -43,7 +43,11 @@ static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val)
unsigned long parity;
/* Calculate the parity of the value */
asm ("popcntd %0,%1" : "=r" (parity) : "r" (val));
asm (".machine push; \
.machine power7; \
popcntd %0,%1; \
.machine pop;"
: "=r" (parity) : "r" (val));
/* xor our value with the previous mask */
val ^= rng->mask;

View File

@ -86,7 +86,7 @@ static LIST_HEAD(gtms);
*/
struct gtm_timer *gtm_get_timer16(void)
{
struct gtm *gtm = NULL;
struct gtm *gtm;
int i;
list_for_each_entry(gtm, &gtms, list_node) {
@ -103,7 +103,7 @@ struct gtm_timer *gtm_get_timer16(void)
spin_unlock_irq(&gtm->lock);
}
if (gtm)
if (!list_empty(&gtms))
return ERR_PTR(-EBUSY);
return ERR_PTR(-ENODEV);
}

View File

@ -13,6 +13,19 @@
#include <asm/pgtable.h>
#include <asm/sections.h>
/*
* The auipc+jalr instruction pair can reach any PC-relative offset
* in the range [-2^31 - 2^11, 2^31 - 2^11)
*/
static bool riscv_insn_valid_32bit_offset(ptrdiff_t val)
{
#ifdef CONFIG_32BIT
return true;
#else
return (-(1L << 31) - (1L << 11)) <= val && val < ((1L << 31) - (1L << 11));
#endif
}
static int apply_r_riscv_32_rela(struct module *me, u32 *location, Elf_Addr v)
{
if (v != (u32)v) {
@ -95,7 +108,7 @@ static int apply_r_riscv_pcrel_hi20_rela(struct module *me, u32 *location,
ptrdiff_t offset = (void *)v - (void *)location;
s32 hi20;
if (offset != (s32)offset) {
if (!riscv_insn_valid_32bit_offset(offset)) {
pr_err(
"%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
me->name, (long long)v, location);
@ -197,10 +210,9 @@ static int apply_r_riscv_call_plt_rela(struct module *me, u32 *location,
Elf_Addr v)
{
ptrdiff_t offset = (void *)v - (void *)location;
s32 fill_v = offset;
u32 hi20, lo12;
if (offset != fill_v) {
if (!riscv_insn_valid_32bit_offset(offset)) {
/* Only emit the plt entry if offset over 32-bit range */
if (IS_ENABLED(CONFIG_MODULE_SECTIONS)) {
offset = module_emit_plt_entry(me, v);
@ -224,10 +236,9 @@ static int apply_r_riscv_call_rela(struct module *me, u32 *location,
Elf_Addr v)
{
ptrdiff_t offset = (void *)v - (void *)location;
s32 fill_v = offset;
u32 hi20, lo12;
if (offset != fill_v) {
if (!riscv_insn_valid_32bit_offset(offset)) {
pr_err(
"%s: target %016llx can not be addressed by the 32-bit offset from PC = %p\n",
me->name, (long long)v, location);

View File

@ -2,7 +2,7 @@
/* Copyright (C) 2017 Andes Technology Corporation */
SECTIONS {
.plt (NOLOAD) : { BYTE(0) }
.got (NOLOAD) : { BYTE(0) }
.got.plt (NOLOAD) : { BYTE(0) }
.plt : { BYTE(0) }
.got : { BYTE(0) }
.got.plt : { BYTE(0) }
}

View File

@ -77,7 +77,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,
bool fill_callchain(unsigned long pc, void *entry)
{
return perf_callchain_store(entry, pc);
return perf_callchain_store(entry, pc) == 0;
}
void notrace walk_stackframe(struct task_struct *task,

View File

@ -217,7 +217,7 @@ void mconsole_go(struct mc_request *req)
void mconsole_stop(struct mc_request *req)
{
deactivate_fd(req->originating_fd, MCONSOLE_IRQ);
block_signals();
os_set_fd_block(req->originating_fd, 1);
mconsole_reply(req, "stopped", 0, 0);
for (;;) {
@ -240,6 +240,7 @@ void mconsole_stop(struct mc_request *req)
}
os_set_fd_block(req->originating_fd, 0);
mconsole_reply(req, "", 0, 0);
unblock_signals();
}
static DEFINE_SPINLOCK(mc_devices_lock);

View File

@ -460,7 +460,7 @@ static u64 pt_config_filters(struct perf_event *event)
pt->filters.filter[range].msr_b = filter->msr_b;
}
rtit_ctl |= filter->config << pt_address_ranges[range].reg_off;
rtit_ctl |= (u64)filter->config << pt_address_ranges[range].reg_off;
}
return rtit_ctl;

Some files were not shown because too many files have changed in this diff Show More