Merge tag 'android11-5.4.242_r00' into android11-5.4

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

It contains the following commits:

b57981e17b4b Merge tag 'android11-5.4.242_r00' into android11-5.4
734577d21e Merge 5.4.242 into android11-5.4-lts
ea7862c507 Linux 5.4.242
d54a9f999e ASN.1: Fix check for strdup() success
2500d7edeb iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger()
760c2e6dee pwm: meson: Explicitly set .polarity in .get_state()
7f2b8046da xfs: fix forkoff miscalculation related to XFS_LITINO(mp)
c27a6bb178 sctp: Call inet6_destroy_sock() via sk->sk_destruct().
97ce6cde1f dccp: Call inet6_destroy_sock() via sk->sk_destruct().
a01b75620e inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy().
9374db5bd1 tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct().
2ac4697b77 udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM).
5a62248c58 ext4: fix use-after-free in ext4_xattr_set_entry
3b0044cb28 ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
3c4fdbf368 Revert "ext4: fix use-after-free in ext4_xattr_set_entry"
ef2aab86c3 x86/purgatory: Don't generate debug info for purgatory.ro
c22aefaef8 MIPS: Define RUNTIME_DISCARD_EXIT in LD script
a5167e902b mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25
1b8b54fc55 memstick: fix memory leak if card device is never registered
5ad61a5268 nilfs2: initialize unused bytes in segment summary blocks
988766b9d1 iio: light: tsl2772: fix reading proximity-diodes from device tree
5cb867f1ec xen/netback: use same error messages for same errors
903f82b1a6 nvme-tcp: fix a possible UAF when failing to allocate an io queue
34b74c32ff s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling
64cd99da25 net: dsa: b53: mmap: add phy ops
89dcf0dd7a scsi: core: Improve scsi_vpd_inquiry() checks
f729b74bb4 scsi: megaraid_sas: Fix fw_crash_buffer_show()
4f4ef354f9 selftests: sigaltstack: fix -Wuninitialized
a725dddf21 Input: i8042 - add quirk for Fujitsu Lifebook A574/H
9df3f502e3 f2fs: Fix f2fs_truncate_partial_nodes ftrace event
2f3730f182 e1000e: Disable TSO on i219-LM card to increase speed
0f0a291cc5 bpf: Fix incorrect verifier pruning due to missing register precision taints
ba610df83b mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
d8e120057c i40e: fix i40e_setup_misc_vector() error handling
59fba01b6c i40e: fix accessing vsi->active_filters without holding lock
01125379e2 netfilter: nf_tables: fix ifdef to also consider nf_tables=m
7c1019391b virtio_net: bugfix overflow inside xdp_linearize_page()
35dceaeab9 net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg
d61f24a454 regulator: fan53555: Explicitly include bits header
36f098e1e4 netfilter: br_netfilter: fix recent physdev match breakage
375e445b10 arm64: dts: meson-g12-common: specify full DMC range
cb1f89fe93 ARM: dts: rockchip: fix a typo error for rk3288 spdif node
da8b283c08 Merge 5.4.241 into android11-5.4-lts
58f42ed1cd Linux 5.4.241
8795936437 xfs: force log and push AIL to clear pinned inodes when aborting mount
c76dd36875 xfs: don't reuse busy extents on extent trim
4679b73a8e xfs: consider shutdown in bmapbt cursor delete assert
9355fd118b xfs: shut down the filesystem if we screw up quota reservation
48f75df5b3 xfs: report corruption only as a regular error
3cce34ceb2 xfs: set inode size after creating symlink
e76bd6da51 xfs: fix up non-directory creation in SGID directories
ad6613c984 xfs: remove the di_version field from struct icdinode
ca4533c951 xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize
e078b3de3e xfs: simplify di_flags2 inheritance in xfs_ialloc
0c553917b6 xfs: only check the superblock version for dinode size calculation
90aab52d06 xfs: add a new xfs_sb_version_has_v3inode helper
edd36a57b4 xfs: remove the kuid/kgid conversion wrappers
3ef81874f7 xfs: remove the icdinode di_uid/di_gid members
cc508a41ae xfs: ensure that the inode uid/gid match values match the icdinode ones
7a9dc79771 xfs: merge the projid fields in struct xfs_icdinode
4f3252e7e1 xfs: show the proper user quota options
799cafa4f3 coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug
440bdc49f7 watchdog: sbsa_wdog: Make sure the timeout programming is within the limits
70ca826d3d i2c: ocores: generate stop condition after timeout in polling mode
5fb5bdcdcd ubi: Fix deadlock caused by recursively holding work_sem
0b27716f2d mtd: ubi: wl: Fix a couple of kernel-doc issues
e55588c442 ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size
a652c30fa2 asymmetric_keys: log on fatal failures in PE/pkcs7
5809dbacc4 verify_pefile: relax wrapper length check
0213f027d0 drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F
b3052e5d46 efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L
02a78e6539 i2c: imx-lpi2c: clean rx/tx buffers upon new message
1ef5639744 power: supply: cros_usbpd: reclassify "default case!" as debug
7169d16388 net: macb: fix a memory corruption in extended buffer descriptor mode
c39fa0398a udp6: fix potential access to stale information
9c46c49ad3 RDMA/core: Fix GID entry ref leak when create_ah fails
ad831a7079 sctp: fix a potential overflow in sctp_ifwdtsn_skip
afffe0d1e6 qlcnic: check pci_reset_function result
a841f6a0a3 niu: Fix missing unwind goto in niu_alloc_channels()
fcd084e199 9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race condition
1b77cb6f5e mtd: rawnand: stm32_fmc2: remove unsupported EDO mode
4c1d882b53 mtd: rawnand: meson: fix bitmask for length in command word
2667460034 mtdblock: tolerate corrected bit-flips
50dbfd9dac btrfs: fix fast csum implementation detection
c6db5f2a31 btrfs: print checksum type and implementation at mount time
8a99e6200c Bluetooth: Fix race condition in hidp_session_thread
c024219925 Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp}
9025cea8e0 ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards
4d419195d6 ALSA: firewire-tascam: add missing unwind goto in snd_tscm_stream_start_duplex()
fe158eeccc ALSA: i2c/cs8427: fix iec958 mixer control deactivation
aa23fa32e5 ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard
62ccf2e0b1 ALSA: emu10k1: fix capture interrupt handler unlinking
9a3ba7b24d Revert "pinctrl: amd: Disable and mask interrupts on resume"
2945f948aa irqdomain: Fix mapping-creation race
e8f3aea716 irqdomain: Refactor __irq_domain_alloc_irqs()
3804f265c1 irqdomain: Look for existing mapping only once
e7bba7ddb4 mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()
fd644712bc ring-buffer: Fix race while reader and writer are on the same page
c208b4321e drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path
c381527918 net_sched: prevent NULL dereference if default qdisc setup failed
987f599fc5 tracing: Free error logs of tracing instances
d2136f0569 can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access
5a74a75fc3 ftrace: Mark get_lock_parent_ip() __always_inline
95bbfeb4ff perf/core: Fix the same task check in perf_event_set_output
666c25d35e ALSA: hda/realtek: Add quirk for Clevo X370SNW
83b16a60e4 nilfs2: fix sysfs interface lifetime
613bf23c07 nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
aa8e50688d tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty
aabba44404 tty: serial: sh-sci: Fix Rx on RZ/G2L SCI
209ab5c234 tty: serial: sh-sci: Fix transmit end interrupt handler
9a2a6443d6 iio: dac: cio-dac: Fix max DAC write value check for 12-bit
e469ebb28d iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip
abc5b4f8cd USB: serial: option: add Quectel RM500U-CN modem
b9c11537ef USB: serial: option: add Telit FE990 compositions
38c00a22d6 usb: typec: altmodes/displayport: Fix configure initial pin assignment
f417d3fea3 USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs
47132be17d xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu
5fccf2c546 NFSD: callback request does not use correct credential for AUTH_SYS
3686380d9d sunrpc: only free unix grouplist after RCU settles
1627119153 gpio: davinci: Add irq chip flag to skip set wake
0cf600ca1b ipv6: Fix an uninit variable access bug in __ip6_make_skb()
0443fff49d sctp: check send stream number after wait_for_sndbuf
93f3885211 net: don't let netpoll invoke NAPI if in xmit context
0d2fa30078 icmp: guard against too small mtu
a3593082e0 wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta
4220f83b9f pwm: sprd: Explicitly set .polarity in .get_state()
6e1f29397d pwm: cros-ec: Explicitly set .polarity in .get_state()
dbd764e9d4 pinctrl: amd: Disable and mask interrupts on resume
dd7e19f97f pinctrl: amd: disable and mask interrupts on probe
3f3e4bd3f0 pinctrl: amd: Use irqchip template
387236b9e0 smb3: fix problem with null cifs super block with previous patch
2e64d7b182 treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
199197660b Revert "treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()"
522af69af2 cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach()
4311ae04b3 x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot
110d425cdf scsi: ses: Handle enclosure with just a primary component gracefully
974e2ad014 Merge 5.4.240 into android11-5.4-lts
32bea3bac5 Linux 5.4.240
4d4cb76636 gfs2: Always check inode size of inline inodes
928240c368 firmware: arm_scmi: Fix device node validation for mailbox transport
0f5c0e0a4c net: sched: fix race condition in qdisc_graft()
22d95b5449 net_sched: add __rcu annotation to netdev->qdisc
14b6ad56df ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
9b189af357 btrfs: scan device in non-exclusive mode
45a9877d6c s390/uaccess: add missing earlyclobber annotations to __clear_user()
0c6df53647 drm/etnaviv: fix reference leak when mmaping imported buffer
37958ac31f ALSA: usb-audio: Fix regression on detection of Roland VS-100
6dabafd829 ALSA: hda/conexant: Partial revert of a quirk for Lenovo
f3a6726878 NFSv4: Fix hangs when recovering open state after a server reboot
c81e2965a9 pinctrl: at91-pio4: fix domain name assignment
82c25ac3a2 xen/netback: don't do grant copy across page boundary
99c8ba920f Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table
657d7c215c cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL
03af69bd67 cifs: prevent infinite recursion in CIFSGetDFSRefer()
51d6573711 Input: focaltech - use explicitly signed char type
f0f85f5e40 Input: alps - fix compatibility with -funsigned-char
7e71d4d190 pinctrl: ocelot: Fix alt mode for ocelot
70728d639e net: mvneta: make tx buffer array agnostic
704e06b979 net: dsa: mv88e6xxx: Enable IGMP snooping on user ports only
fd7cff5066 bnxt_en: Fix typo in PCI id to device description string mapping
58279cea0b i40e: fix registers dump after run ethtool adapter self test
5195de1d5f s390/vfio-ap: fix memory leak in vfio_ap device driver
78bc7f0ab9 can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write
105cc26832 net/net_failover: fix txq exceeding warning
e633fd26ab regulator: Handle deferred clk
be7b622cd6 regulator: fix spelling mistake "Cant" -> "Can't"
46c4993a15 ptp_qoriq: fix memory leak in probe()
c122daa0fa scsi: megaraid_sas: Fix crash after a double completion
317c07d382 mtd: rawnand: meson: invalidate cache on polling ECC bit
d65de5ee8b mips: bmips: BCM6358: disable RAC flush for TP1
9690e34f22 dma-mapping: drop the dev argument to arch_sync_dma_for_*
f6e2d76aa3 ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx()
856fb74f60 fbdev: au1200fb: Fix potential divide by zero
deef33c081 fbdev: lxfb: Fix potential divide by zero
4f5cc5ffa8 fbdev: intelfb: Fix potential divide by zero
868f247e47 fbdev: nvidia: Fix potential divide by zero
f3359f5fc9 sched_getaffinity: don't assume 'cpumask_size()' is fully initialized
521877bf26 fbdev: tgafb: Fix potential divide by zero
7f12f99b80 ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()
9155a5958e ALSA: asihpi: check pao in control_message()
88a3c63a96 md: avoid signed overflow in slot_store()
9966fc59d3 bus: imx-weim: fix branch condition evaluates to a garbage value
d121f7883a fsverity: don't drop pagecache at end of FS_IOC_ENABLE_VERITY
4c24eb49ab ocfs2: fix data corruption after failed write
0c0e566f03 tun: avoid double free in tun_free_netdev
d253120a58 sched/fair: Sanitize vruntime of entity being migrated
c23928c70b sched/fair: sanitize vruntime of entity being placed
885c28ceae dm crypt: add cond_resched() to dmcrypt_write()
4a32a9a818 dm stats: check for and propagate alloc_percpu failure
f8cbad984b i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer()
8f5cbf6a8c nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy()
4ae966a7f6 wifi: mac80211: fix qos on mesh interfaces
f558789a88 usb: chipidea: core: fix possible concurrent when switch role
6b3287b147 usb: chipdea: core: fix return -EINVAL if request role is the same with current role
0b2a56fe46 usb: cdns3: Fix issue with using incorrect PCI device function
e9e93fdfce dm thin: fix deadlock when swapping to thin device
cd1e320ac0 igb: revert rtnl_lock() that causes deadlock
123698a5c6 fsverity: Remove WQ_UNBOUND from fsverity read workqueue
0eda2004f3 usb: gadget: u_audio: don't let userspace block driver unbind
44f080d7d7 scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
223274d5c3 cifs: empty interface list when server doesn't support query interfaces
299a309b98 sh: sanitize the flags on sigreturn
f4c610f6ca net: usb: qmi_wwan: add Telit 0x1080 composition
e6b1fa6d06 net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990
04f4a1aa94 scsi: lpfc: Avoid usage of list iterator variable after loop
11cdced6a0 scsi: ufs: core: Add soft dependency on governor_simpleondemand
54ec697e3c scsi: target: iscsi: Fix an error message in iscsi_check_key()
9711522191 selftests/bpf: check that modifier resolves after pointer
2100e37425 m68k: Only force 030 bus error if PC not in exception table
d2b3bd0d4c ca8210: fix mac_len negative array access
9e7723b684 riscv: Bump COMMAND_LINE_SIZE value to 1024
32518cd0fc thunderbolt: Use const qualifier for `ring_interrupt_index`
b40fe2e1f9 uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2
9189f20b4c scsi: qla2xxx: Perform lockless command completion in abort path
da0383f0e8 hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs
13493ad6a2 platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl
a18fb433ce Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work
b517808795 Bluetooth: btqcomsmd: Fix command timeout after setting BD address
dcd4d36462 net: mdio: thunder: Add missing fwnode_handle_put()
707335918f hvc/xen: prevent concurrent accesses to the shared ring
83e442eba3 nvme-tcp: fix nvme_tcp_term_pdu to match spec
d673ae1840 net/sonic: use dma_mapping_error() for error check
b72f453e88 erspan: do not use skb_mac_header() in ndo_start_xmit()
82e07cc5a6 atm: idt77252: fix kmemleak when rmmod idt77252
fd6f643dea net/mlx5: Read the TC mapping of all priorities on ETS query
d69c2ded95 bpf: Adjust insufficient default bpf_jit_limit
97674f4cd0 keys: Do not cache key in task struct if key is requested from kernel thread
f8ee2c8b0d net/ps3_gelic_net: Use dma_mapping_error
6d7e18b1d0 net/ps3_gelic_net: Fix RX sk_buff length
0e5c7d00ec net: qcom/emac: Fix use after free bug in emac_remove due to race condition
a07ec453e8 xirc2ps_cs: Fix use after free bug in xirc2ps_detach
42d72c6d1e qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
f2111c791d net: usb: smsc95xx: Limit packet length to skb->len
5c4d71424d scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
283fdc5cfb i2c: imx-lpi2c: check only for enabled interrupt flags
90116b8289 igbvf: Regard vf reset nack as success
584771762c intel/igbvf: free irq on the error path in igbvf_request_msix()
6999f85418 iavf: fix non-tunneled IPv6 UDP packet type and hashing
4e752d2bae iavf: fix inverted Rx hash condition leading to disabled hash
6fe078c286 power: supply: da9150: Fix use after free bug in da9150_charger_remove due to race condition
754838aa02 net: tls: fix possible race condition between do_tls_getsockopt_conf() and do_tls_setsockopt_conf()
a03da9c9ae Merge 5.4.239 into android11-5.4-lts
09b1a76e78 Linux 5.4.239
f0c95f229a selftests: Fix the executable permissions for fib_tests.sh
1221512b02 BACKPORT: mac80211_hwsim: notify wmediumd of used MAC addresses
8ac436fa26 FROMGIT: mac80211_hwsim: add concurrent channels scanning support over virtio
b6d6caabaf Merge branch 'android11-5.4' into android11-5.4-lts
5fd4376e12 Revert "HID: core: Provide new max_buffer_size attribute to over-ride the default"
6efc429d3f Revert "HID: uhid: Over-ride the default maximum data buffer value with our own"
1e58c0c8e9 Merge 5.4.238 into android11-5.4-lts
6849d8c4a6 Linux 5.4.238
eb7716a054 HID: uhid: Over-ride the default maximum data buffer value with our own
b687ac70e6 HID: core: Provide new max_buffer_size attribute to over-ride the default
144019e813 PCI: Unify delay handling for reset and resume
d2130f37a4 s390/ipl: add missing intersection check to ipl_report handling
3f5a833dca serial: 8250_em: Fix UART port type
c5afb97d1b drm/i915: Don't use stolen memory for ring buffers with LLC
8d26a4fecc x86/mm: Fix use of uninitialized buffer in sme_enable()
a976ff743e fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
ac58b88ccb ftrace: Fix invalid address access in lookup_rec() when index is 0
65e4c9a6d0 KVM: nVMX: add missing consistency checks for CR0 and CR4
6fe55dce9d tracing: Make tracepoint lockdep check actually test something
780f69a268 tracing: Check field value in hist_field_name()
f1e3a20c60 interconnect: fix mem leak when freeing nodes
325608ab60 tty: serial: fsl_lpuart: skip waiting for transmission complete when UARTCTRL_SBK is asserted
c16cbd8233 ext4: fix possible double unlock when moving a directory
6a1bd14d5e sh: intc: Avoid spurious sizeof-pointer-div warning
bbf5eada43 drm/amdkfd: Fix an illegal memory access
2c96c52aea ext4: fix task hung in ext4_xattr_delete_inode
20ba6f8a80 ext4: fail ext4_iget if special inode unallocated
ab519e2989 jffs2: correct logic when creating a hole in jffs2_write_begin
00bfc67c65 mmc: atmel-mci: fix race between stop command and start of next command
75f6faae2d media: m5mols: fix off-by-one loop termination error
9eb394919c hwmon: (ina3221) return prober error code
26c176ce90 hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race condition
13efd488d3 hwmon: (adt7475) Fix masking of hysteresis registers
0d3095e958 hwmon: (adt7475) Display smoothing attributes in correct order
674fce59d6 ethernet: sun: add check for the mdesc_grab()
71da5991b6 net/iucv: Fix size of interrupt data
e0d07a3203 net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull
5c06bd3de1 ipv4: Fix incorrect table ID in IOCTL path
c4fcfbf80c block: sunvdc: add check for mdesc_grab() returning NULL
04c3942088 nvmet: avoid potential UAF in nvmet_req_complete()
9fabdd7905 net: usb: smsc75xx: Limit packet length to skb->len
b0c202a8dc nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition
668de67d41 net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails
5aaab217c8 net: tunnels: annotate lockless accesses to dev->needed_headroom
cba20ade78 qed/qed_dev: guard against a possible division by zero
6e18f66b70 i40e: Fix kernel crash during reboot when adapter is in recovery mode
f0216046ae ipvlan: Make skb->skb_iif track skb->dev for l3s mode
0f9c1f26d4 nfc: pn533: initialize struct pn533_out_arg properly
442aa78ed7 tcp: tcp_make_synack() can be called from process context
88c3d3bb64 scsi: core: Fix a procfs host directory removal regression
4b4f5e34f0 scsi: core: Fix a comment in function scsi_host_dev_release()
0d59732f2a netfilter: nft_redir: correct value of inet type `.maxattrs`
90279211e9 ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU()
0b7057c523 ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
5bb9fcaadb ALSA: hda: Add Alderlake-S PCI ID and HDMI codec vid
9efbdc743d ALSA: hda - controller is in GPU on the DG1
fc52e51c2c ALSA: hda - add Intel DG1 PCI and HDMI ids
090305c361 scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add()
b8849e31a0 docs: Correct missing "d_" prefix for dentry_operations member d_weak_revalidate
9e45e45715 clk: HI655X: select REGMAP instead of depending on it
dac08e46f0 drm/meson: fix 1px pink line on GXM when scaling video overlay
d7e48aa17a cifs: Move the in_send statistic to __smb_send_rqst()
06c208002d drm/panfrost: Don't sync rpm suspension after mmu flushing
c9900d1d86 xfrm: Allow transport-mode states with AF_UNSPEC selector
4008fb9ad4 ext4: fix cgroup writeback accounting with fs-layer encryption
6eb1bfc752 ANDROID: preserve CRC for __irq_domain_add()
812963276d Merge 5.4.237 into android11-5.4-lts
fd02046fbd Merge 5.4.236 into android11-5.4-lts
48b8328041 Revert "drm/exynos: Don't reset bridge->next"
7edc66298a Revert "drm/bridge: Rename bridge helpers targeting a bridge chain"
8d15e5fac1 Revert "drm/bridge: Introduce drm_bridge_get_next_bridge()"
aac98e0c73 Revert "drm: Initialize struct drm_crtc_state.no_vblank from device settings"
af8848e0d9 Revert "drm/msm/mdp5: Add check for kzalloc"
e4b5c766f5 Linux 5.4.237
6a16810068 s390/dasd: add missing discipline function
7a934a77f1 UML: define RUNTIME_DISCARD_EXIT
87fcce7a6f sh: define RUNTIME_DISCARD_EXIT
eb9dbb70cd s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36
219cc98501 powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
4eede1173f powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT
d0fcf59038 arch: fix broken BuildID for arm64 and riscv
a4bd6d4df3 x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
1aed78cfda drm/i915: Don't use BAR mappings for ring buffers with LLC
52fc917855 ipmi:watchdog: Set panic count to proper value on a panic
dbfae25b01 ipmi/watchdog: replace atomic_add() and atomic_sub()
f266cdd679 media: ov5640: Fix analogue gain control
fc9bc83150 PCI: Add SolidRun vendor ID
094a073605 macintosh: windfarm: Use unsigned type for 1-bit bitfields
737985dbcb alpha: fix R_ALPHA_LITERAL reloc for large modules
2fea235ef0 MIPS: Fix a compilation issue
6b06c4ae64 ext4: Fix deadlock during directory rename
a99a61d9e1 riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode
1a517302db net/smc: fix fallback failed while sendmsg with fastopen
3a747490f9 scsi: megaraid_sas: Update max supported LD IDs to 240
d800996fcf btf: fix resolving BTF_KIND_VAR after ARRAY, STRUCT, UNION, PTR
9f2e063dcb netfilter: tproxy: fix deadlock due to missing BH disable
16f3aae1aa bnxt_en: Avoid order-5 memory allocation for TPA data
9dc16be373 net: caif: Fix use-after-free in cfusbl_device_notify()
8018aa0863 net: lan78xx: fix accessing the LAN7800's internal phy specific registers from the MAC driver
1c618f150c net: usb: lan78xx: Remove lots of set but unused 'ret' variables
e4e5006c13 selftests: nft_nat: ensuring the listening side is up before starting the client
783f218940 ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping()
0a3664a105 nfc: fdp: add null check of devm_kmalloc_array in fdp_nci_i2c_read_device_properties
43f33642f2 drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register
8dac5a63cf ext4: Fix possible corruption when moving a directory
891a3cba42 scsi: core: Remove the /proc/scsi/${proc_name} directory earlier
57f78226b1 cifs: Fix uninitialized memory read in smb3_qfs_tcon()
a6e44cb215 SMB3: Backup intent flag missing from some more ops
1b48c70fee iommu/vt-d: Fix PASID directory pointer coherency
985d9fa06b irqdomain: Fix domain registration race
01ed8ff22a irqdomain: Change the type of 'size' in __irq_domain_add() to be consistent
36c5682cbb ipmi:ssif: Add a timer between request retries
e8ba1b693a ipmi:ssif: Increase the message retry time
89fb3fa848 ipmi:ssif: Remove rtc_us_timer
d1a7f56b20 ipmi:ssif: resend_msg() cannot fail
59349bfcff ipmi:ssif: make ssif_i2c_send() void
5e97dc748d iommu/amd: Add a length limitation for the ivrs_acpihid command-line parameter
774c63f536 iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options
11852cc78f iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands
3cdf19a29c nfc: change order inside nfc_se_io error path
0d8a6c9a64 ext4: zero i_disksize when initializing the bootloader inode
74d775083e ext4: fix WARNING in ext4_update_inline_data
b36093c6f7 ext4: move where set the MAY_INLINE_DATA flag is set
c24f838493 ext4: fix another off-by-one fsmap error on 1k block filesystems
aee90b0278 ext4: fix RENAME_WHITEOUT handling for inline directories
1277ba3db6 drm/connector: print max_requested_bpc in state debugfs
e40c1e9da1 x86/CPU/AMD: Disable XSAVES on AMD family 0x17
6631c8da02 fs: prevent out-of-bounds array speculation when closing a file descriptor
b829e8b6e1 Linux 5.4.236
6e55d84223 staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh
9498448b9e staging: rtl8192e: Remove function ..dm_check_ac_dc_power calling a script
6ee84b8b79 wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for wext"
0d9d32f54c Merge 5.4.235 into android11-5.4-lts
126ee8982b Linux 5.4.235
d03bc164f3 dt-bindings: rtc: sun6i-a31-rtc: Loosen the requirements on the clocks
6ab6705463 media: uvcvideo: Fix race condition with usb_kill_urb
0b8962c64b media: uvcvideo: Provide sync and async uvc_ctrl_status_event
2b1c5145b0 tcp: Fix listen() regression in 5.4.229.
800a1c4c8a Bluetooth: hci_sock: purge socket queues in the destruct() callback
27c64d90d9 x86/resctl: fix scheduler confusion with 'current'
81da72aaf5 x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid}
bde541a57b net: tls: avoid hanging tasks on the tx_lock
d94fbfcd9a phy: rockchip-typec: Fix unsigned comparison with less than zero
f0ee43d61d PCI: Add ACS quirk for Wangxun NICs
f6d3aee1c6 kernel/fail_function: fix memory leak with using debugfs_lookup()
195c1e9f45 usb: uvc: Enumerate valid values for color matching
da4e715a46 USB: ene_usb6250: Allocate enough memory for full object
1170979668 usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math
f5b76a8166 iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word()
11b4b3b769 iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_status_word()
b854c66dd7 tools/iio/iio_utils:fix memory leak
ea9b587896 mei: bus-fixup:upon error print return values of send and receive
c7ca2ca12a tty: serial: fsl_lpuart: disable the CTS when send break signal
953a4a352a tty: fix out-of-bounds access in tty_driver_lookup_tty()
70369a1117 staging: emxx_udc: Add checks for dma_alloc_coherent()
2072ed7c1a media: uvcvideo: Silence memcpy() run-time false positive warnings
e2cc773f1f media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910
e4c535ecce media: uvcvideo: Handle errors from calls to usb_string
4e4e6ca62e media: uvcvideo: Handle cameras with invalid descriptors
7195e642b4 mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak
fde59e273b firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3
2cc6a3e98f tracing: Add NULL checks for buffer in ring_buffer_free_read_page()
4cfeb55a10 thermal: intel: BXT_PMIC: select REGMAP instead of depending on it
e23f1d9e6e thermal: intel: quark_dts: fix error pointer dereference
584f664c57 scsi: ipr: Work around fortify-string warning
e93bda4ebb rtc: sun6i: Always export the internal oscillator
728b047f4c rtc: sun6i: Make external 32k oscillator optional
9c7c1cf29f vc_screen: modify vcs_size() handling in vcs_read()
821362a2df tcp: tcp_check_req() can be called from process context
77606e383e ARM: dts: spear320-hmi: correct STMPE GPIO compatible
dda4f0a424 net/sched: act_sample: fix action bind logic
271eed1736 nfc: fix memory leak of se_io context in nfc_genl_se_io
f81af781f9 net/mlx5: Geneve, Fix handling of Geneve object id as error code
4b71f2b543 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv()
7cc9dbae8a 9p/xen: fix connection sequence
9d1c625c99 9p/xen: fix version parsing
edfba7b322 net: fix __dev_kfree_skb_any() vs drop monitor
cec326443f sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop
aba298b356 ipv6: Add lwtunnel encap size of all siblings in nexthop calculation
5d0d38805d netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack()
fe65d6f26b watchdog: pcwd_usb: Fix attempting to access uninitialized memory
59e391b3fc watchdog: Fix kmemleak in watchdog_cdev_register
7c428fc974 watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path
a8816afcaf x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list
b5be23f6ae ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed
1cb14c06d6 ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show()
7fcbc41d76 ubifs: ubifs_writepage: Mark page dirty after writing inode failed
510b80abe8 ubifs: dirty_cow_znode: Fix memleak in error handling path
0875edcad4 ubifs: Re-statistic cleaned znode count if commit failed
234c53e574 ubi: Fix possible null-ptr-deref in ubi_free_volume()
1f206002c6 ubifs: Fix memory leak in alloc_wbufs()
07b60f7452 ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume()
9c8be1f165 ubi: Fix use-after-free when volume resizing failed
e86d1b2bb7 ubifs: Reserve one leb for each journal head while doing budget
82c096d0c9 ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1
bf8f549584 ubifs: Fix wrong dirty space budget for dirty inode
f29168fb52 ubifs: Rectify space budget for ubifs_xrename()
8666030627 ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted
4ca0d74622 ubifs: Fix build errors as symbol undefined
f7adb740f9 ubi: ensure that VID header offset + VID header size <= alloc, size
6480c3a127 um: vector: Fix memory leak in vector_config
01c92f033b fs: f2fs: initialize fsdata in pagecache_write()
c4a89ebe92 f2fs: use memcpy_{to,from}_page() where possible
b915fac020 pwm: stm32-lp: fix the check on arr and cmp registers update
1abd385802 pwm: sifive: Always let the first pwm_apply_state succeed
30a3636fe6 pwm: sifive: Reduce time the controller lock is held
62462a5b4f fs/jfs: fix shift exponent db_agl2size negative
7a6fb69bbc net/sched: Retire tcindex classifier
b3d346ece9 kbuild: Port silent mode detection to future gnu make.
68b0cdcfa1 wifi: ath9k: use proper statements in conditionals
96a8424a27 drm/radeon: Fix eDP for single-display iMac11,2
6e6173886f drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv
efc72cceb7 PCI: Avoid FLR for AMD FCH AHCI adapters
bcc1bafb06 PCI: hotplug: Allow marking devices as disconnected during bind/unbind
2a50583117 PCI/PM: Observe reset delay irrespective of bridge_d3
40af9a6dee scsi: ses: Fix slab-out-of-bounds in ses_intf_remove()
79ec5dd5fb scsi: ses: Fix possible desc_ptr out-of-bounds accesses
8e454aba72 scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses
467afb1dd6 scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process()
6069e04a92 scsi: ses: Don't attach if enclosure has no components
70e9a93f09 scsi: qla2xxx: Fix erroneous link down
3a564de3a2 scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests
05a0f6fa52 scsi: qla2xxx: Fix link failure in NPIV environment
18d347d1b0 ktest.pl: Add RUN_TIMEOUT option with default unlimited
150ee1fc90 ktest.pl: Fix missing "end_monitor" when machine check fails
2f42bfc54d ktest.pl: Give back console on Ctrt^C on monitor
b53d209d71 mm/thp: check and bail out if page in deferred queue already
24900f3596 mm: memcontrol: deprecate charge moving
964e9e1288 media: ipu3-cio2: Fix PM runtime usage_count in driver unbind
58c0d0b2d4 mips: fix syscall_get_nr
229edf8d7b alpha: fix FEN fault handling
9787b328c4 rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
7055754dd0 ARM: dts: exynos: correct TMU phandle in Odroid XU
7b6707d66e ARM: dts: exynos: correct TMU phandle in Exynos4
3c4a56ef7c dm flakey: don't corrupt the zero page
a2be4225c3 dm flakey: fix logic when corrupting a bio
64fbe39232 thermal: intel: powerclamp: Fix cur_state for multi package system
6f1959c17d wifi: cfg80211: Fix use after free for wext
342cb34c52 wifi: rtl8xxxu: Use a longer retry limit of 48
a92b67e768 ext4: refuse to create ea block when umounted
3b28c799a1 ext4: optimize ea_inode block expansion
87005d0ab5 ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC
84ed1ade54 ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
df129eaa2b irqdomain: Drop bogus fwspec-mapping error handling
72232dbe14 irqdomain: Fix disassociation race
2101663687 irqdomain: Fix association race
f9d9320189 ima: Align ima_file_mmap() parameters with mmap_file LSM hook
4d47cba074 Documentation/hw-vuln: Document the interaction between IBRS and STIBP
34c1b60e7a x86/speculation: Allow enabling STIBP with legacy IBRS
979e197968 x86/microcode/AMD: Fix mixed steppings support
727bc2c285 x86/microcode/AMD: Add a @cpu parameter to the reloading functions
4c26edf2ea x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
a0415b79dd x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range
ec206a38d3 x86/kprobes: Fix __recover_optprobed_insn check optimizing logic
e4ce333cc6 x86/reboot: Disable SVM, not just VMX, when stopping CPUs
37459195d9 x86/reboot: Disable virtualization in an emergency if SVM is supported
87459b9fce x86/crash: Disable virt in core NMI crash handler to avoid double shootdown
ee80fb1dca x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows)
4c9812d989 KVM: s390: disable migration mode when dirty tracking is disabled
10c2a20d73 KVM: Destroy target device if coalesced MMIO unregistration fails
38a1f5e9fc udf: Fix file corruption when appending just after end of preallocated extent
d747b31e29 udf: Detect system inodes linked into directory hierarchy
ce17ef97de udf: Preserve link count of system files
7bd8d9e1cf udf: Do not update file length for failed writes to inline files
3d20e3b768 udf: Do not bother merging very long extents
4e41b1c5a2 udf: Truncate added extents on failed expansion
dee96928d8 ocfs2: fix non-auto defrag path not working issue
669134a66d ocfs2: fix defrag path triggering jbd2 ASSERT
68a47ca958 f2fs: fix cgroup writeback accounting with fs-layer encryption
2bef8314fc f2fs: fix information leak in f2fs_move_inline_dirents()
3776ef785e fs: hfsplus: fix UAF issue in hfsplus_put_super
eda6879272 hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
8ecde537ed ARM: dts: exynos: correct HDMI phy compatible in Exynos4
e71e6fa07f s390/kprobes: fix current_kprobe never cleared after kprobes reenter
18075c0dc3 s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler
c5db76fcdd s390: discard .interp section
a9391f8bc9 ipmi_ssif: Rename idle state and check
0ff4c222bd rtc: pm8xxx: fix set-alarm race
69b8af77ef firmware: coreboot: framebuffer: Ignore reserved pixel color bits
791402dd05 wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu
3132aa35cf nfsd: zero out pointers after putting nfsd_files on COPY setup error
38b4d3eacb dm cache: add cond_resched() to various workqueue loops
3b46b2cb91 dm thin: add cond_resched() to various workqueue loops
2c055b6a07 drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5
718ce68b3a pinctrl: at91: use devm_kasprintf() to avoid potential leaks
4000384684 hwmon: (coretemp) Simplify platform device handling
5026260ac2 regulator: s5m8767: Bounds check id indexing into arrays
12527ae49d regulator: max77802: Bounds check regulator id against opmode
7fae534a30 ASoC: kirkwood: Iterate over array indexes instead of using pointer math
90c278c6d0 docs/scripts/gdb: add necessary make scripts_gdb step
3a9a4a9725 drm/msm/dsi: Add missing check for alloc_ordered_workqueue
f9f55fc649 drm/radeon: free iio for atombios when driver shutdown
5ccd8d09fe HID: Add Mapping for System Microphone Mute
341a4c04ed drm/omap: dsi: Fix excessive stack usage
d236103782 drm/amd/display: Fix potential null-deref in dm_resume
5bc391944d uaccess: Add minimum bounds check on kernel buffer size
0467681f09 coda: Avoid partial allocation of sig_inputArgs
1a98c4d926 net/mlx5: fw_tracer: Fix debug print
21856d5615 ACPI: video: Fix Lenovo Ideapad Z570 DMI match
c727c1eb58 wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup
51c0dca573 m68k: Check syscall_trace_enter() return code
87363d1ab5 net: bcmgenet: Add a check for oversized packets
fe00ab1eb3 ACPI: Don't build ACPICA with '-Os'
8ec82cfe4e ice: add missing checks for PF vsi type
f81c0d484a inet: fix fast path in __inet_hash_connect()
67e4519afb wifi: mt7601u: fix an integer underflow
423a1297ea wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-of-bounds
f3a324362b x86/bugs: Reset speculation control settings on init
c8157f67b0 timers: Prevent union confusion from unexpected restart_syscall()
f570968d01 thermal: intel: Fix unsigned comparison with less than zero
596d1fea05 rcu: Suppress smp_processor_id() complaint in synchronize_rcu_expedited_wait()
17dbe90e13 wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
9e8bf9f95f blk-iocost: fix divide by 0 error in calc_lcoefs()
f10001af0f ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy
dae4d5ae6b udf: Define EFSCORRUPTED error code
824b167fa8 rpmsg: glink: Avoid infinite loop on intent for missing channel
a41bb59eff media: usb: siano: Fix use after free bugs caused by do_submit_urb
2a72e3b6bb media: i2c: ov7670: 0 instead of -EINVAL was returned
d120334278 media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
448ce1cd50 media: i2c: ov772x: Fix memleak in ov772x_probe()
086a80b842 media: ov5675: Fix memleak in ov5675_init_controls()
ec6bd0dccd powerpc: Remove linker flag from KBUILD_AFLAGS
44aef56083 media: platform: ti: Add missing check for devm_regulator_get
fc85fb5763 remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers
3acbec356d MIPS: vpe-mt: drop physical_memsize
a3c9200405 MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set
1abc7be57c powerpc/eeh: Set channel state after notifying the drivers
7719aba7a3 powerpc/eeh: Small refactor of eeh_handle_normal_event()
a39becb905 powerpc/rtas: ensure 4KB alignment for rtas_data_buf
0616586eef powerpc/rtas: make all exports GPL
d8ca498591 powerpc/pseries/lparcfg: add missing RTAS retry status handling
421c59c23a powerpc/pseries/lpar: add missing RTAS retry status handling
2c5ad2d642 clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled()
4d178dc25f powerpc/powernv/ioda: Skip unallocated resources when mapping to PE
b1c1b6da5a clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC
e3617778eb Input: ads7846 - don't check penirq immediately for 7845
ea9c4fbfda Input: ads7846 - don't report pressure for ads7845
17761a1c7f clk: renesas: cpg-mssr: Remove superfluous check in resume code
8ff19db903 clk: renesas: cpg-mssr: Use enum clk_reg_layout instead of a boolean flag
330b70949c clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed
f34eb1e433 mtd: rawnand: sunxi: Fix the size of the last OOB region
cdfdd882fa clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents
b419e91378 clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents
588edb4fb1 mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read()
6e0a0eb18e selftests/ftrace: Fix bash specific "==" operator
16a35042ff sparc: allow PM configs for sparc32 COMPILE_TEST
090a22f599 perf tools: Fix auto-complete on aarch64
5d32f3e922 perf llvm: Fix inadvertent file creation
ce43565a6c gfs2: jdata writepage fix
3524d6da0f cifs: Fix warning and UAF when destroy the MR list
324c0c34ff cifs: Fix lost destroy smbd connection when MR allocate failed
a22f1ecab6 nfsd: fix race to check ls_layouts
5a195fa41d hid: bigben_probe(): validate report count
9f525559ea HID: asus: Fix mute and touchpad-toggle keys on Medion Akoya E1239T
bc786dfeb7 HID: asus: Add support for multi-touch touchpad on Medion Akoya E1239T
bad4a822a1 HID: asus: Add report_size to struct asus_touchpad_info
63792d0ae9 HID: asus: Only set EV_REP if we are adding a mapping
25e14bf0c8 HID: bigben: use spinlock to safely schedule workers
715edb0109 HID: bigben_worker() remove unneeded check on report_field
12533ad854 HID: bigben: use spinlock to protect concurrent accesses
05cb432c09 ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared
84beaa3e2e ASoC: dapm: declare missing structure prototypes
d6250e00bf spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one()
b89d2ed564 dm: remove flush_scheduled_work() during local_exit()
e6d9a876d9 hwmon: (mlxreg-fan) Return zero speed for broken fan
870a0f519a spi: bcm63xx-hsspi: Fix multi-bit mode setting
dd271f1798 spi: bcm63xx-hsspi: fix pm_runtime
904b717bb5 scsi: aic94xx: Add missing check for dma_map_single()
3414be1c8c hwmon: (ltc2945) Handle error case in ltc2945_value_store
75a1c3f822 gpio: vf610: connect GPIO label to dev name
584cb84e2c ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress()
a161f1d92a drm/mediatek: Clean dangling pointer on bind error path
b8b166db78 drm/mediatek: Drop unbalanced obj unref
367c80fb34 drm/mediatek: Use NULL instead of 0 for NULL pointer
a0555f90d8 drm/mediatek: remove cast to pointers passed to kfree
2b59e87c92 gpu: host1x: Don't skip assigning syncpoints to channels
3975ea6eaf drm/msm/mdp5: Add check for kzalloc
2a8bb9dce7 drm: Initialize struct drm_crtc_state.no_vblank from device settings
9b2f584490 drm/bridge: Introduce drm_bridge_get_next_bridge()
bb08be7232 drm/bridge: Rename bridge helpers targeting a bridge chain
2c33a6141d drm/exynos: Don't reset bridge->next
dadd30fcc7 drm/msm/dpu: Add check for pstates
a6afb8293e drm/msm/dpu: Add check for cstate
8f9fdc830d drm/msm: use strscpy instead of strncpy
d7ea84cddf drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness
a9eafb0448 ALSA: hda/ca0132: minor fix for allocation size
a80767caed ASoC: fsl_sai: initialize is_dsp_mode flag
95ab6d7905 pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain
fc34608fa2 drm/msm/hdmi: Add missing check for alloc_ordered_workqueue
62430b3210 gpu: ipu-v3: common: Add of_node_put() for reference returned by of_graph_get_port_by_id()
31701e54d3 drm/vc4: dpi: Fix format mapping for RGB565
d66f26b93c drm/vc4: dpi: Add option for inverting pixel clock and output enable
7ddd8a5ecf drm/bridge: megachips: Fix error handling in i2c_register_driver()
d56e589f8b drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC
c879003a6f drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats
c82ca67ca0 selftest: fib_tests: Always cleanup before exit
c31985922e selftests/net: Interpret UDP_GRO cmsg data as an int value
6165747888 irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
3947b16613 irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
d772090078 can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error
3cf2181e43 thermal/drivers/hisi: Drop second sensor hi3660
21c701cbc8 wifi: mac80211: make rate u32 in sta_set_rate_info_rx()
b70d56e728 crypto: crypto4xx - Call dma_unmap_page when done
a3b75b1e76 wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize()
c002d27414 wifi: iwl4965: Add missing check for create_singlethread_workqueue()
7e594abc04 wifi: iwl3945: Add missing check for create_singlethread_workqueue
5de7a4254e treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
9198eefd10 usb: gadget: udc: Avoid tasklet passing a global
cf04507f42 RISC-V: time: initialize hrtimer based broadcast clock event device
142bcf7240 m68k: /proc/hardware should depend on PROC_FS
c4d8c23efe crypto: rsa-pkcs1pad - Use akcipher_request_complete
8c1447495f rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
291e6a6820 libbpf: Fix alen calculation in libbpf_nla_dump_errormsg()
60aaccf16d Bluetooth: L2CAP: Fix potential user-after-free
d19bd48535 OPP: fix error checking in opp_migrate_dentry()
522d319cda tap: tap_open(): correctly initialize socket uid
d92d87000e tun: tun_chr_open(): correctly initialize socket uid
11c9c72272 net: add sock_init_data_uid()
276ccbc15f mptcp: add sk_stop_timer_sync helper
07fceab320 irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe
c7d78d36e1 irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe
9e79ac4f70 irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains
7cce0c9fdd net/mlx5: Enhance debug print in page allocation failure
dbd6ae0956 powercap: fix possible name leak in powercap_register_zone()
63551e4b7c crypto: seqiv - Handle EBUSY correctly
c61e7d182e crypto: essiv - Handle EBUSY correctly
bfef5e3e73 crypto: essiv - remove redundant null pointer check before kfree
2d1ac2f2e2 crypto: ccp - Failure on re-initialization due to duplicate sysfs filename
40627e6e29 ACPI: battery: Fix missing NUL-termination with large strings
bf6dc175a2 wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback()
cd83167670 wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
c3ff385b94 ath9k: htc: clean up statistics macros
a49c13ecce ath9k: hif_usb: simplify if-if to if-else
564bc2222b wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function
17a0e61cd9 wifi: orinoco: check return value of hermes_write_wordrec()
573dfeba2d ACPICA: nsrepair: handle cases without a return value correctly
987b0ff1b9 lib/mpi: Fix buffer overrun when SG is too long
b55ada30b5 genirq: Fix the return type of kstat_cpu_irqs_sum()
6b9f61c8b8 ACPICA: Drop port I/O validation for some regions
c300697690 crypto: x86/ghash - fix unaligned access in ghash_setkey()
0c4f20c8fc wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave()
14ba31bb1b wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave()
38ef777203 wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave()
1879fe9e40 wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave()
0b7b734744 wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave()
318005127c wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid()
d869a18950 wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
a12610e837 wifi: wilc1000: fix potential memory leak in wilc_mac_xmit()
a6059cf02a wilc1000: let wilc_mac_xmit() return NETDEV_TX_OK
112c1af02b wifi: ipw2200: fix memory leak in ipw_wdev_init()
ba1d3623fe wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave()
0d438ae7ba ipw2x00: switch from 'pci_' to 'dma_' API
28ea268d95 wifi: rtlwifi: Fix global-out-of-bounds bug in _rtl8812ae_phy_set_txpower_limit()
5d171ab48b rtlwifi: fix -Wpointer-sign warning
5dd30d1acc wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave()
23b34e08de wifi: libertas: fix memory leak in lbs_init_adapter()
1864b22e23 wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave()
9004aa391a net/wireless: Delete unnecessary checks before the macro call “dev_kfree_skb”
fe4d7280cf wifi: rsi: Fix memory leak in rsi_coex_attach()
82d68c3244 block: bio-integrity: Copy flags when bio_integrity_payload is cloned
084cd75643 sched/rt: pick_next_rt_entity(): check list_entry
0ff7ba5e8b sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()
ee986d80ac s390/dasd: Fix potential memleak in dasd_eckd_init()
8bc5a76268 s390/dasd: Prepare for additional path event handling
946515fad4 blk-mq: correct stale comment of .get_budget
2dc5f68fe6 blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait
8c225150ea blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx
260dcf1ccd block: Limit number of items taken from the I/O scheduler in one go
578c8f09c0 Revert "scsi: core: run queue if SCSI device queue isn't ready and queue is idle"
2d3c3aa412 arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
38af86810d ARM: dts: imx7s: correct iomuxc gpr mux controller cells
7fe5dc2fee arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name
8b7aa62f4a arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node name
d5fbeae6d6 arm64: dts: amlogic: meson-gx: add missing unit address to rng node name
c5cd41bd10 arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible
1e3ec4d1d7 arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name
e515d41185 arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name
1e1b84b022 ARM: imx: Call ida_simple_remove() for ida_simple_get
b0a1b2f3ef ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato
91ac4bf35a ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
af3352c16e arm64: dts: meson: remove CPU opps below 1GHz for G12A boards
9dd61d9542 arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address
cba890c4bd arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name
69bdc5d014 arm64: dts: meson-gx: Fix Ethernet MAC address unit name
ede0334bf4 ARM: zynq: Fix refcount leak in zynq_early_slcr_init
45b44ba5df arm64: dts: qcom: qcs404: use symbol names for PCIe resets
8041f9a2a9 ARM: OMAP2+: Fix memory leak in realtime_counter_init()
dd08e68d04 HID: asus: use spinlock to safely schedule workers
136a9bcc0e HID: asus: use spinlock to protect concurrent accesses
9a25b22fd5 HID: asus: Remove check for same LED brightness on set
f9c844d00d Merge 5.4.234 into android11-5.4-lts
a103859aaa Linux 5.4.234
a1e89c8b29 USB: core: Don't hold device lock while reading the "descriptors" sysfs file
96d380d2ae USB: serial: option: add support for VW/Skoda "Carstick LTE"
91c877d431 dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
465ce31a2b vc_screen: don't clobber return value in vcs_read
ee8cd3abe7 net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues().
db25b41eb5 bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state
23affaed76 HID: core: Fix deadloop in hid_apply_multiplier.
93b17c7e1e neigh: make sure used and confirmed times are valid
bc4601ad97 IB/hfi1: Assign npages earlier
98e626c115 btrfs: send: limit number of clones and allocated memory size
ae03fa7ad3 ACPI: NFIT: fix a potential deadlock during NFIT teardown
785bde8459 ARM: dts: rockchip: add power-domains property to dp node on rk3288
da2bba879e arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc

And update the .xml file due to the __irq_domain_add() change that came
into this branch.

Change-Id: Ia973c369a8bb9da89df14007cd6b820c9a7a2155
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2023-05-25 08:17:26 +00:00
commit 3b9196f720
703 changed files with 86432 additions and 88719 deletions

View File

@ -82,6 +82,8 @@ Brief summary of control files.
memory.swappiness set/show swappiness parameter of vmscan
(See sysctl's vm.swappiness)
memory.move_charge_at_immigrate set/show controls of moving charges
This knob is deprecated and shouldn't be
used.
memory.oom_control set/show oom controls.
memory.numa_stat show the number of memory usage per numa
node
@ -745,8 +747,15 @@ NOTE2:
It is recommended to set the soft limit always below the hard limit,
otherwise the hard limit will take precedence.
8. Move charges at task migration
=================================
8. Move charges at task migration (DEPRECATED!)
===============================================
THIS IS DEPRECATED!
It's expensive and unreliable! It's better practice to launch workload
tasks directly from inside their target cgroup. Use dedicated workload
cgroups to allow fine-grained policy adjustments without having to
move physical pages between control domains.
Users can move charges associated with a task along with task migration, that
is, uncharge task's pages from the old cgroup and charge them to the new cgroup.

View File

@ -479,8 +479,16 @@ Spectre variant 2
On Intel Skylake-era systems the mitigation covers most, but not all,
cases. See :ref:`[3] <spec_ref3>` for more details.
On CPUs with hardware mitigation for Spectre variant 2 (e.g. Enhanced
IBRS on x86), retpoline is automatically disabled at run time.
On CPUs with hardware mitigation for Spectre variant 2 (e.g. IBRS
or enhanced IBRS on x86), retpoline is automatically disabled at run time.
Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
boot, by setting the IBRS bit, and they're automatically protected against
Spectre v2 variant attacks, including cross-thread branch target injections
on SMT systems (STIBP). In other words, eIBRS enables STIBP too.
Legacy IBRS systems clear the IBRS bit on exit to userspace and
therefore explicitly enable STIBP for that
The retpoline mitigation is turned on by default on vulnerable
CPUs. It can be forced on or off by the administrator
@ -504,9 +512,12 @@ Spectre variant 2
For Spectre variant 2 mitigation, individual user programs
can be compiled with return trampolines for indirect branches.
This protects them from consuming poisoned entries in the branch
target buffer left by malicious software. Alternatively, the
programs can disable their indirect branch speculation via prctl()
(See :ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
target buffer left by malicious software.
On legacy IBRS systems, at return to userspace, implicit STIBP is disabled
because the kernel clears the IBRS bit. In this case, the userspace programs
can disable indirect branch speculation via prctl() (See
:ref:`Documentation/userspace-api/spec_ctrl.rst <set_spec_ctrl>`).
On x86, this will turn on STIBP to guard against attacks from the
sibling thread when the user program is running, and use IBPB to
flush the branch target buffer when switching to/from the program.

View File

@ -1944,24 +1944,57 @@
ivrs_ioapic [HW,X86_64]
Provide an override to the IOAPIC-ID<->DEVICE-ID
mapping provided in the IVRS ACPI table. For
example, to map IOAPIC-ID decimal 10 to
PCI device 00:14.0 write the parameter as:
mapping provided in the IVRS ACPI table.
By default, PCI segment is 0, and can be omitted.
For example, to map IOAPIC-ID decimal 10 to
PCI segment 0x1 and PCI device 00:14.0,
write the parameter as:
ivrs_ioapic=10@0001:00:14.0
Deprecated formats:
* To map IOAPIC-ID decimal 10 to PCI device 00:14.0
write the parameter as:
ivrs_ioapic[10]=00:14.0
* To map IOAPIC-ID decimal 10 to PCI segment 0x1 and
PCI device 00:14.0 write the parameter as:
ivrs_ioapic[10]=0001:00:14.0
ivrs_hpet [HW,X86_64]
Provide an override to the HPET-ID<->DEVICE-ID
mapping provided in the IVRS ACPI table. For
example, to map HPET-ID decimal 0 to
PCI device 00:14.0 write the parameter as:
mapping provided in the IVRS ACPI table.
By default, PCI segment is 0, and can be omitted.
For example, to map HPET-ID decimal 10 to
PCI segment 0x1 and PCI device 00:14.0,
write the parameter as:
ivrs_hpet=10@0001:00:14.0
Deprecated formats:
* To map HPET-ID decimal 0 to PCI device 00:14.0
write the parameter as:
ivrs_hpet[0]=00:14.0
* To map HPET-ID decimal 10 to PCI segment 0x1 and
PCI device 00:14.0 write the parameter as:
ivrs_ioapic[10]=0001:00:14.0
ivrs_acpihid [HW,X86_64]
Provide an override to the ACPI-HID:UID<->DEVICE-ID
mapping provided in the IVRS ACPI table. For
example, to map UART-HID:UID AMD0020:0 to
PCI device 00:14.5 write the parameter as:
mapping provided in the IVRS ACPI table.
By default, PCI segment is 0, and can be omitted.
For example, to map UART-HID:UID AMD0020:0 to
PCI segment 0x1 and PCI device ID 00:14.5,
write the parameter as:
ivrs_acpihid=AMD0020:0@0001:00:14.5
Deprecated formats:
* To map UART-HID:UID AMD0020:0 to PCI segment is 0,
PCI device ID 00:14.5, write the parameter as:
ivrs_acpihid[00:14.5]=AMD0020:0
* To map UART-HID:UID AMD0020:0 to PCI segment 0x1 and
PCI device ID 00:14.5, write the parameter as:
ivrs_acpihid[0001:00:14.5]=AMD0020:0
js= [HW,JOY] Analog joystick
See Documentation/input/joydev/joystick.rst.

View File

@ -39,6 +39,10 @@ Setup
this mode. In this case, you should build the kernel with
CONFIG_RANDOMIZE_BASE disabled if the architecture supports KASLR.
- Build the gdb scripts (required on kernels v5.1 and above)::
make scripts_gdb
- Enable the gdb stub of QEMU/KVM, either
- at VM startup time by appending "-s" to the QEMU command line

View File

@ -128,7 +128,6 @@ required:
- compatible
- reg
- interrupts
- clocks
- clock-output-names
additionalProperties: false

View File

@ -1173,7 +1173,7 @@ defined:
return
-ECHILD and it will be called again in ref-walk mode.
``_weak_revalidate``
``d_weak_revalidate``
called when the VFS needs to revalidate a "jumped" dentry. This
is called when a path-walk ends at dentry that was not acquired
by doing a lookup in the parent directory. This includes "/",

View File

@ -702,7 +702,7 @@ ref
no-jd
BIOS setup but without jack-detection
intel
Intel DG45* mobos
Intel D*45* mobos
dell-m6-amic
Dell desktops/laptops with analog mics
dell-m6-dmic

View File

@ -3615,6 +3615,18 @@ Type: vm ioctl
Parameters: struct kvm_s390_cmma_log (in, out)
Returns: 0 on success, a negative value on error
Errors:
====== =============================================================
ENOMEM not enough memory can be allocated to complete the task
ENXIO if CMMA is not enabled
EINVAL if KVM_S390_CMMA_PEEK is not set but migration mode was not enabled
EINVAL if KVM_S390_CMMA_PEEK is not set but dirty tracking has been
disabled (and thus migration mode was automatically disabled)
EFAULT if the userspace address is invalid or if no page table is
present for the addresses (e.g. when using hugepages).
====== =============================================================
This ioctl is used to get the values of the CMMA bits on the s390
architecture. It is meant to be used in two scenarios:
- During live migration to save the CMMA values. Live migration needs
@ -3691,12 +3703,6 @@ mask is unused.
values points to the userspace buffer where the result will be stored.
This ioctl can fail with -ENOMEM if not enough memory can be allocated to
complete the task, with -ENXIO if CMMA is not enabled, with -EINVAL if
KVM_S390_CMMA_PEEK is not set but migration mode was not enabled, with
-EFAULT if the userspace address is invalid or if no page table is
present for the addresses (e.g. when using hugepages).
4.108 KVM_S390_SET_CMMA_BITS
Capability: KVM_CAP_S390_CMMA_MIGRATION

View File

@ -254,6 +254,10 @@ Allows userspace to start migration mode, needed for PGSTE migration.
Setting this attribute when migration mode is already active will have
no effects.
Dirty tracking must be enabled on all memslots, else -EINVAL is returned. When
dirty tracking is disabled on any memslot, migration mode is automatically
stopped.
Parameters: none
Returns: -ENOMEM if there is not enough free memory to start migration mode
-EINVAL if the state of the VM is invalid (e.g. no memory defined)

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 233
SUBLEVEL = 242
EXTRAVERSION =
NAME = Kleptomaniac Octopus
@ -89,9 +89,16 @@ endif
# If the user is running make -s (silent mode), suppress echoing of
# commands
# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
quiet=silent_
ifeq ($(filter 3.%,$(MAKE_VERSION)),)
silence:=$(findstring s,$(firstword -$(MAKEFLAGS)))
else
silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS)))
endif
ifeq ($(silence),s)
quiet=silent_
endif
export quiet Q KBUILD_VERBOSE

File diff suppressed because it is too large Load Diff

View File

@ -146,10 +146,8 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
base = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr;
symtab = (Elf64_Sym *)sechdrs[symindex].sh_addr;
/* The small sections were sorted to the end of the segment.
The following should definitely cover them. */
gp = (u64)me->core_layout.base + me->core_layout.size - 0x8000;
got = sechdrs[me->arch.gotsecindex].sh_addr;
gp = got + 0x8000;
for (i = 0; i < n; i++) {
unsigned long r_sym = ELF64_R_SYM (rela[i].r_info);

View File

@ -235,7 +235,21 @@ do_entIF(unsigned long type, struct pt_regs *regs)
{
int signo, code;
if ((regs->ps & ~IPL_MAX) == 0) {
if (type == 3) { /* FEN fault */
/* Irritating users can call PAL_clrfen to disable the
FPU for the process. The kernel will then trap in
do_switch_stack and undo_switch_stack when we try
to save and restore the FP registers.
Given that GCC by default generates code that uses the
FP registers, PAL_clrfen is not useful except for DoS
attacks. So turn the bleeding FPU back on and be done
with it. */
current_thread_info()->pcb.flags |= 1;
__reload_thread(&current_thread_info()->pcb);
return;
}
if (!user_mode(regs)) {
if (type == 1) {
const unsigned int *data
= (const unsigned int *) regs->pc;
@ -368,20 +382,6 @@ do_entIF(unsigned long type, struct pt_regs *regs)
}
break;
case 3: /* FEN fault */
/* Irritating users can call PAL_clrfen to disable the
FPU for the process. The kernel will then trap in
do_switch_stack and undo_switch_stack when we try
to save and restore the FP registers.
Given that GCC by default generates code that uses the
FP registers, PAL_clrfen is not useful except for DoS
attacks. So turn the bleeding FPU back on and be done
with it. */
current_thread_info()->pcb.flags |= 1;
__reload_thread(&current_thread_info()->pcb);
return;
case 5: /* illoc */
default: /* unexpected instruction-fault type */
;

View File

@ -48,8 +48,8 @@ void arch_dma_prep_coherent(struct page *page, size_t size)
* upper layer functions (in include/linux/dma-mapping.h)
*/
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_TO_DEVICE:
@ -69,8 +69,8 @@ void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
}
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_TO_DEVICE:

View File

@ -239,7 +239,7 @@
i80-if-timings {
cs-setup = <0>;
wr-setup = <0>;
wr-act = <1>;
wr-active = <1>;
wr-hold = <0>;
};
};

View File

@ -10,7 +10,7 @@
/ {
thermal-zones {
cpu_thermal: cpu-thermal {
thermal-sensors = <&tmu 0>;
thermal-sensors = <&tmu>;
polling-delay-passive = <0>;
polling-delay = <0>;
trips {

View File

@ -605,7 +605,7 @@
status = "disabled";
hdmi_i2c_phy: hdmiphy@38 {
compatible = "exynos4210-hdmiphy";
compatible = "samsung,exynos4210-hdmiphy";
reg = <0x38>;
};
};

View File

@ -116,7 +116,6 @@
};
&cpu0_thermal {
thermal-sensors = <&tmu_cpu0 0>;
polling-delay-passive = <0>;
polling-delay = <0>;

View File

@ -539,7 +539,7 @@
};
mipi_phy: mipi-video-phy {
compatible = "samsung,s5pv210-mipi-video-phy";
compatible = "samsung,exynos5420-mipi-video-phy";
syscon = <&pmu_system_controller>;
#phy-cells = <1>;
};

View File

@ -504,7 +504,7 @@
mux: mux-controller {
compatible = "mmio-mux";
#mux-control-cells = <0>;
#mux-control-cells = <1>;
mux-reg-masks = <0x14 0x00000010>;
};

View File

@ -942,7 +942,7 @@
status = "disabled";
};
spdif: sound@ff88b0000 {
spdif: sound@ff8b0000 {
compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
reg = <0x0 0xff8b0000 0x0 0x10000>;
#sound-dai-cells = <0>;
@ -1188,6 +1188,7 @@
clock-names = "dp", "pclk";
phys = <&edp_phy>;
phy-names = "dp";
power-domains = <&power RK3288_PD_VIO>;
resets = <&cru SRST_EDP>;
reset-names = "dp";
rockchip,grf = <&grf>;

View File

@ -242,7 +242,7 @@
irq-trigger = <0x1>;
stmpegpio: stmpe-gpio {
compatible = "stmpe,gpio";
compatible = "st,stmpe-gpio";
reg = <0>;
gpio-controller;
#gpio-cells = <2>;

View File

@ -99,6 +99,7 @@ struct mmdc_pmu {
cpumask_t cpu;
struct hrtimer hrtimer;
unsigned int active_events;
int id;
struct device *dev;
struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
struct hlist_node node;
@ -433,8 +434,6 @@ static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer)
static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
void __iomem *mmdc_base, struct device *dev)
{
int mmdc_num;
*pmu_mmdc = (struct mmdc_pmu) {
.pmu = (struct pmu) {
.task_ctx_nr = perf_invalid_context,
@ -452,15 +451,16 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
.active_events = 0,
};
mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
return mmdc_num;
return pmu_mmdc->id;
}
static int imx_mmdc_remove(struct platform_device *pdev)
{
struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
perf_pmu_unregister(&pmu_mmdc->pmu);
iounmap(pmu_mmdc->mmdc_base);
@ -474,7 +474,6 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
{
struct mmdc_pmu *pmu_mmdc;
char *name;
int mmdc_num;
int ret;
const struct of_device_id *of_id =
of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@ -497,14 +496,14 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
cpuhp_mmdc_state = ret;
}
mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
if (mmdc_num == 0)
name = "mmdc";
else
name = devm_kasprintf(&pdev->dev,
GFP_KERNEL, "mmdc%d", mmdc_num);
ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
if (ret < 0)
goto pmu_free;
name = devm_kasprintf(&pdev->dev,
GFP_KERNEL, "mmdc%d", ret);
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@ -525,6 +524,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
pmu_register_err:
pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
hrtimer_cancel(&pmu_mmdc->hrtimer);
pmu_free:

View File

@ -165,7 +165,7 @@ static int __init omap1_dm_timer_init(void)
kfree(pdata);
err_free_pdev:
platform_device_unregister(pdev);
platform_device_put(pdev);
return ret;
}

View File

@ -649,6 +649,7 @@ static void __init realtime_counter_init(void)
}
rate = clk_get_rate(sys_clk);
clk_put(sys_clk);
if (soc_is_dra7xx()) {
/*

View File

@ -213,6 +213,7 @@ int __init zynq_early_slcr_init(void)
zynq_slcr_regmap = syscon_regmap_lookup_by_compatible("xlnx,zynq-slcr");
if (IS_ERR(zynq_slcr_regmap)) {
pr_err("%s: failed to find zynq-slcr\n", __func__);
of_node_put(np);
return -ENODEV;
}

View File

@ -2333,15 +2333,15 @@ void arch_teardown_dma_ops(struct device *dev)
}
#ifdef CONFIG_SWIOTLB
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_page_cpu_to_dev(phys_to_page(paddr), paddr & (PAGE_SIZE - 1),
size, dir);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_page_dev_to_cpu(phys_to_page(paddr), paddr & (PAGE_SIZE - 1),
size, dir);

View File

@ -70,20 +70,20 @@ static void dma_cache_maint(dma_addr_t handle, size_t size, u32 op)
* pfn_valid returns true the pages is local and we can use the native
* dma-direct functions, otherwise we call the Xen specific version.
*/
void xen_dma_sync_for_cpu(struct device *dev, dma_addr_t handle,
phys_addr_t paddr, size_t size, enum dma_data_direction dir)
void xen_dma_sync_for_cpu(dma_addr_t handle, phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
if (pfn_valid(PFN_DOWN(handle)))
arch_sync_dma_for_cpu(dev, paddr, size, dir);
arch_sync_dma_for_cpu(paddr, size, dir);
else if (dir != DMA_TO_DEVICE)
dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL);
}
void xen_dma_sync_for_device(struct device *dev, dma_addr_t handle,
phys_addr_t paddr, size_t size, enum dma_data_direction dir)
void xen_dma_sync_for_device(dma_addr_t handle, phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
if (pfn_valid(PFN_DOWN(handle)))
arch_sync_dma_for_device(dev, paddr, size, dir);
arch_sync_dma_for_device(paddr, size, dir);
else if (dir == DMA_FROM_DEVICE)
dma_cache_maint(handle, size, GNTTAB_CACHE_INVAL);
else

View File

@ -150,7 +150,7 @@
scpi_clocks: clocks {
compatible = "arm,scpi-clocks";
scpi_dvfs: clock-controller {
scpi_dvfs: clocks-0 {
compatible = "arm,scpi-dvfs-clocks";
#clock-cells = <1>;
clock-indices = <0>;
@ -159,7 +159,7 @@
};
scpi_sensors: sensors {
compatible = "amlogic,meson-gxbb-scpi-sensors";
compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
#thermal-sensor-cells = <1>;
};
};

View File

@ -1376,10 +1376,9 @@
dmc: bus@38000 {
compatible = "simple-bus";
reg = <0x0 0x38000 0x0 0x400>;
#address-cells = <2>;
#size-cells = <2>;
ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
ranges = <0x0 0x0 0x0 0x38000 0x0 0x2000>;
canvas: video-lut@48 {
compatible = "amlogic,canvas";
@ -1783,7 +1782,7 @@
#address-cells = <1>;
#size-cells = <0>;
internal_ephy: ethernet_phy@8 {
internal_ephy: ethernet-phy@8 {
compatible = "ethernet-phy-id0180.3301",
"ethernet-phy-ieee802.3-c22";
interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;

View File

@ -54,26 +54,6 @@
compatible = "operating-points-v2";
opp-shared;
opp-100000000 {
opp-hz = /bits/ 64 <100000000>;
opp-microvolt = <731000>;
};
opp-250000000 {
opp-hz = /bits/ 64 <250000000>;
opp-microvolt = <731000>;
};
opp-500000000 {
opp-hz = /bits/ 64 <500000000>;
opp-microvolt = <731000>;
};
opp-667000000 {
opp-hz = /bits/ 64 <666666666>;
opp-microvolt = <731000>;
};
opp-1000000000 {
opp-hz = /bits/ 64 <1000000000>;
opp-microvolt = <731000>;

View File

@ -172,7 +172,7 @@
reg = <0x14 0x10>;
};
eth_mac: eth_mac@34 {
eth_mac: eth-mac@34 {
reg = <0x34 0x10>;
};
@ -189,7 +189,7 @@
scpi_clocks: clocks {
compatible = "arm,scpi-clocks";
scpi_dvfs: scpi_clocks@0 {
scpi_dvfs: clocks-0 {
compatible = "arm,scpi-dvfs-clocks";
#clock-cells = <1>;
clock-indices = <0>;
@ -464,7 +464,7 @@
#size-cells = <2>;
ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
hwrng: rng {
hwrng: rng@0 {
compatible = "amlogic,meson-rng";
reg = <0x0 0x0 0x0 0x4>;
};

View File

@ -18,7 +18,7 @@
leds {
compatible = "gpio-leds";
status {
led {
label = "n1:white:status";
gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
default-state = "on";

View File

@ -700,7 +700,7 @@
};
};
eth-phy-mux {
eth-phy-mux@55c {
compatible = "mdio-mux-mmioreg", "mdio-mux";
#address-cells = <1>;
#size-cells = <0>;

View File

@ -428,6 +428,7 @@
pwm: pwm@11006000 {
compatible = "mediatek,mt7622-pwm";
reg = <0 0x11006000 0 0x1000>;
#pwm-cells = <2>;
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
clocks = <&topckgen CLK_TOP_PWM_SEL>,
<&pericfg CLK_PERI_PWM_PD>,

View File

@ -533,7 +533,7 @@
clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
<&gcc 21>;
<&gcc GCC_PCIE_0_PIPE_ARES>;
reset-names = "phy", "pipe";
clock-output-names = "pcie_0_pipe_clk";
@ -991,12 +991,12 @@
<&gcc GCC_PCIE_0_SLV_AXI_CLK>;
clock-names = "iface", "aux", "master_bus", "slave_bus";
resets = <&gcc 18>,
<&gcc 17>,
<&gcc 15>,
<&gcc 19>,
resets = <&gcc GCC_PCIE_0_AXI_MASTER_ARES>,
<&gcc GCC_PCIE_0_AXI_SLAVE_ARES>,
<&gcc GCC_PCIE_0_AXI_MASTER_STICKY_ARES>,
<&gcc GCC_PCIE_0_CORE_STICKY_ARES>,
<&gcc GCC_PCIE_0_BCR>,
<&gcc 16>;
<&gcc GCC_PCIE_0_AHB_ARES>;
reset-names = "axi_m",
"axi_s",
"axi_m_sticky",

View File

@ -90,7 +90,6 @@
linux,default-trigger = "heartbeat";
gpios = <&rk805 1 GPIO_ACTIVE_LOW>;
default-state = "on";
mode = <0x23>;
};
user {
@ -98,7 +97,6 @@
linux,default-trigger = "mmc1";
gpios = <&rk805 0 GPIO_ACTIVE_LOW>;
default-state = "off";
mode = <0x05>;
};
};
};

View File

@ -13,14 +13,14 @@
#include <asm/cacheflush.h>
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_map_area(phys_to_virt(paddr), size, dir);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_unmap_area(phys_to_virt(paddr), size, dir);
}

View File

@ -140,7 +140,7 @@ void __init coherent_mem_init(phys_addr_t start, u32 size)
sizeof(long));
}
static void c6x_dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
static void c6x_dma_sync(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
BUG_ON(!valid_dma_direction(dir));
@ -160,14 +160,14 @@ static void c6x_dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
}
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
return c6x_dma_sync(dev, paddr, size, dir);
return c6x_dma_sync(paddr, size, dir);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
return c6x_dma_sync(dev, paddr, size, dir);
return c6x_dma_sync(paddr, size, dir);
}

View File

@ -58,8 +58,8 @@ void arch_dma_prep_coherent(struct page *page, size_t size)
cache_op(page_to_phys(page), size, dma_wbinv_set_zero_range);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_TO_DEVICE:
@ -74,8 +74,8 @@ void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
}
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_TO_DEVICE:

View File

@ -55,8 +55,8 @@ void arch_dma_free(struct device *dev, size_t size, void *vaddr,
gen_pool_free(coherent_pool, (unsigned long) vaddr, size);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
void *addr = phys_to_virt(paddr);

View File

@ -73,8 +73,8 @@ __ia64_sync_icache_dcache (pte_t pte)
* DMA can be marked as "clean" so that lazy_mmu_prot_update() doesn't have to
* flush them when they get mapped into an executable vm-area.
*/
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
unsigned long pfn = PHYS_PFN(paddr);

View File

@ -47,6 +47,8 @@ do_trace:
jbsr syscall_trace_enter
RESTORE_SWITCH_STACK
addql #4,%sp
addql #1,%d0
jeq ret_from_exception
movel %sp@(PT_OFF_ORIG_D0),%d1
movel #-ENOSYS,%d0
cmpl #NR_syscalls,%d1

View File

@ -19,6 +19,7 @@ config HEARTBEAT
# We have a dedicated heartbeat LED. :-)
config PROC_HARDWARE
bool "/proc/hardware support"
depends on PROC_FS
help
Say Y here to support the /proc/hardware file, which gives you
access to information about the machine you're running on,

View File

@ -92,6 +92,8 @@ ENTRY(system_call)
jbsr syscall_trace_enter
RESTORE_SWITCH_STACK
addql #4,%sp
addql #1,%d0
jeq ret_from_exception
movel %d3,%a0
jbsr %a0@
movel %d0,%sp@(PT_OFF_D0) /* save the return value */

View File

@ -61,8 +61,8 @@ void arch_dma_free(struct device *dev, size_t size, void *vaddr,
#endif /* CONFIG_MMU && !CONFIG_COLDFIRE */
void arch_sync_dma_for_device(struct device *dev, phys_addr_t handle,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t handle, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_BIDIRECTIONAL:

View File

@ -160,9 +160,12 @@ do_trace_entry:
jbsr syscall_trace
RESTORE_SWITCH_STACK
addql #4,%sp
addql #1,%d0 | optimization for cmpil #-1,%d0
jeq ret_from_syscall
movel %sp@(PT_OFF_ORIG_D0),%d0
cmpl #NR_syscalls,%d0
jcs syscall
jra ret_from_syscall
badsys:
movel #-ENOSYS,%sp@(PT_OFF_D0)
jra ret_from_syscall

View File

@ -30,6 +30,7 @@
#include <linux/init.h>
#include <linux/ptrace.h>
#include <linux/kallsyms.h>
#include <linux/extable.h>
#include <asm/setup.h>
#include <asm/fpu.h>
@ -550,7 +551,8 @@ static inline void bus_error030 (struct frame *fp)
errorcode |= 2;
if (mmusr & (MMU_I | MMU_WP)) {
if (ssw & 4) {
/* We might have an exception table for this PC */
if (ssw & 4 && !search_exception_tables(fp->ptregs.pc)) {
pr_err("Data %s fault at %#010lx in %s (pc=%#lx)\n",
ssw & RW ? "read" : "write",
fp->un.fmtb.daddr,

View File

@ -15,7 +15,7 @@
#include <linux/bug.h>
#include <asm/cacheflush.h>
static void __dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
static void __dma_sync(phys_addr_t paddr, size_t size,
enum dma_data_direction direction)
{
switch (direction) {
@ -31,14 +31,14 @@ static void __dma_sync(struct device *dev, phys_addr_t paddr, size_t size,
}
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_sync(dev, paddr, size, dir);
__dma_sync(paddr, size, dir);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_sync(dev, paddr, size, dir);
__dma_sync(paddr, size, dir);
}

View File

@ -64,7 +64,9 @@ phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)
return dma_addr;
}
void arch_sync_dma_for_cpu_all(struct device *dev)
bool bmips_rac_flush_disable;
void arch_sync_dma_for_cpu_all(void)
{
void __iomem *cbr = BMIPS_GET_CBR();
u32 cfg;
@ -74,6 +76,9 @@ void arch_sync_dma_for_cpu_all(struct device *dev)
boot_cpu_type() != CPU_BMIPS4380)
return;
if (unlikely(bmips_rac_flush_disable))
return;
/* Flush stale data out of the readahead cache */
cfg = __raw_readl(cbr + BMIPS_RAC_CONFIG);
__raw_writel(cfg | 0x100, cbr + BMIPS_RAC_CONFIG);

View File

@ -34,6 +34,8 @@
#define REG_BCM6328_OTP ((void __iomem *)CKSEG1ADDR(0x1000062c))
#define BCM6328_TP1_DISABLED BIT(9)
extern bool bmips_rac_flush_disable;
static const unsigned long kbase = VMLINUX_LOAD_ADDRESS & 0xfff00000;
struct bmips_quirk {
@ -103,6 +105,12 @@ static void bcm6358_quirks(void)
* disable SMP for now
*/
bmips_smp_enabled = 0;
/*
* RAC flush causes kernel panics on BCM6358 when booting from TP1
* because the bootloader is not initializing it properly.
*/
bmips_rac_flush_disable = !!(read_c0_brcm_cmt_local() & (1 << 31));
}
static void bcm6368_quirks(void)

View File

@ -377,7 +377,7 @@ struct pci_msu {
PCI_CFG04_STAT_SSE | \
PCI_CFG04_STAT_PE)
#define KORINA_CNFG1 ((KORINA_STAT<<16)|KORINA_CMD)
#define KORINA_CNFG1 (KORINA_STAT | KORINA_CMD)
#define KORINA_REVID 0
#define KORINA_CLASS_CODE 0

View File

@ -38,7 +38,7 @@ static inline bool mips_syscall_is_indirect(struct task_struct *task,
static inline long syscall_get_nr(struct task_struct *task,
struct pt_regs *regs)
{
return current_thread_info()->syscall;
return task_thread_info(task)->syscall;
}
static inline void mips_syscall_update_nr(struct task_struct *task,

View File

@ -104,7 +104,6 @@ struct vpe_control {
struct list_head tc_list; /* Thread contexts */
};
extern unsigned long physical_memsize;
extern struct vpe_control vpecontrol;
extern const struct file_operations vpe_fops;

View File

@ -592,7 +592,7 @@ static dma_addr_t jazz_dma_map_page(struct device *dev, struct page *page,
phys_addr_t phys = page_to_phys(page) + offset;
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
arch_sync_dma_for_device(dev, phys, size, dir);
arch_sync_dma_for_device(phys, size, dir);
return vdma_alloc(phys, size);
}
@ -600,7 +600,7 @@ static void jazz_dma_unmap_page(struct device *dev, dma_addr_t dma_addr,
size_t size, enum dma_data_direction dir, unsigned long attrs)
{
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
arch_sync_dma_for_cpu(dev, vdma_log2phys(dma_addr), size, dir);
arch_sync_dma_for_cpu(vdma_log2phys(dma_addr), size, dir);
vdma_free(dma_addr);
}
@ -612,7 +612,7 @@ static int jazz_dma_map_sg(struct device *dev, struct scatterlist *sglist,
for_each_sg(sglist, sg, nents, i) {
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
arch_sync_dma_for_device(dev, sg_phys(sg), sg->length,
arch_sync_dma_for_device(sg_phys(sg), sg->length,
dir);
sg->dma_address = vdma_alloc(sg_phys(sg), sg->length);
if (sg->dma_address == DMA_MAPPING_ERROR)
@ -631,8 +631,7 @@ static void jazz_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
for_each_sg(sglist, sg, nents, i) {
if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
arch_sync_dma_for_cpu(dev, sg_phys(sg), sg->length,
dir);
arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
vdma_free(sg->dma_address);
}
}
@ -640,13 +639,13 @@ static void jazz_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
static void jazz_dma_sync_single_for_device(struct device *dev,
dma_addr_t addr, size_t size, enum dma_data_direction dir)
{
arch_sync_dma_for_device(dev, vdma_log2phys(addr), size, dir);
arch_sync_dma_for_device(vdma_log2phys(addr), size, dir);
}
static void jazz_dma_sync_single_for_cpu(struct device *dev,
dma_addr_t addr, size_t size, enum dma_data_direction dir)
{
arch_sync_dma_for_cpu(dev, vdma_log2phys(addr), size, dir);
arch_sync_dma_for_cpu(vdma_log2phys(addr), size, dir);
}
static void jazz_dma_sync_sg_for_device(struct device *dev,
@ -656,7 +655,7 @@ static void jazz_dma_sync_sg_for_device(struct device *dev,
int i;
for_each_sg(sgl, sg, nents, i)
arch_sync_dma_for_device(dev, sg_phys(sg), sg->length, dir);
arch_sync_dma_for_device(sg_phys(sg), sg->length, dir);
}
static void jazz_dma_sync_sg_for_cpu(struct device *dev,
@ -666,7 +665,7 @@ static void jazz_dma_sync_sg_for_cpu(struct device *dev,
int i;
for_each_sg(sgl, sg, nents, i)
arch_sync_dma_for_cpu(dev, sg_phys(sg), sg->length, dir);
arch_sync_dma_for_cpu(sg_phys(sg), sg->length, dir);
}
const struct dma_map_ops jazz_dma_ops = {

View File

@ -423,9 +423,11 @@ static void cps_shutdown_this_cpu(enum cpu_death death)
wmb();
}
} else {
pr_debug("Gating power to core %d\n", core);
/* Power down the core */
cps_pm_enter_state(CPS_PM_POWER_GATED);
if (IS_ENABLED(CONFIG_HOTPLUG_CPU)) {
pr_debug("Gating power to core %d\n", core);
/* Power down the core */
cps_pm_enter_state(CPS_PM_POWER_GATED);
}
}
}

View File

@ -10,6 +10,8 @@
*/
#define BSS_FIRST_SECTIONS *(.bss..swapper_pg_dir)
#define RUNTIME_DISCARD_EXIT
#include <asm-generic/vmlinux.lds.h>
#undef mips

View File

@ -92,12 +92,11 @@ int vpe_run(struct vpe *v)
write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
/*
* The sde-kit passes 'memsize' to __start in $a3, so set something
* here... Or set $a3 to zero and define DFLT_STACK_SIZE and
* DFLT_HEAP_SIZE when you compile your program
* We don't pass the memsize here, so VPE programs need to be
* compiled with DFLT_STACK_SIZE and DFLT_HEAP_SIZE defined.
*/
mttgpr(7, 0);
mttgpr(6, v->ntcs);
mttgpr(7, physical_memsize);
/* set up VPE1 */
/*

View File

@ -22,12 +22,6 @@
DEFINE_SPINLOCK(ebu_lock);
EXPORT_SYMBOL_GPL(ebu_lock);
/*
* This is needed by the VPE loader code, just set it to 0 and assume
* that the firmware hardcodes this value to something useful.
*/
unsigned long physical_memsize = 0L;
/*
* this struct is filled by the soc specific detection code and holds
* information about the specific soc type, revision and name

View File

@ -39,7 +39,7 @@ static void pvc_display(unsigned long data)
pvc_write_string(pvc_lines[i], 0, i);
}
static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0);
static DECLARE_TASKLET_OLD(pvc_display_tasklet, &pvc_display);
static int pvc_line_proc_show(struct seq_file *m, void *v)
{

View File

@ -27,7 +27,7 @@
* R10000 and R12000 are used in such systems, the SGI IP28 Indigo² rsp.
* SGI IP32 aka O2.
*/
static inline bool cpu_needs_post_dma_flush(struct device *dev)
static inline bool cpu_needs_post_dma_flush(void)
{
switch (boot_cpu_type()) {
case CPU_R10000:
@ -118,17 +118,17 @@ static inline void dma_sync_phys(phys_addr_t paddr, size_t size,
} while (left);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
dma_sync_phys(paddr, size, dir);
}
#ifdef CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
if (cpu_needs_post_dma_flush(dev))
if (cpu_needs_post_dma_flush())
dma_sync_phys(paddr, size, dir);
}
#endif

View File

@ -46,8 +46,8 @@ static inline void cache_op(phys_addr_t paddr, size_t size,
} while (left);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_FROM_DEVICE:
@ -61,8 +61,8 @@ void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
}
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
switch (dir) {
case DMA_TO_DEVICE:

View File

@ -18,8 +18,8 @@
#include <linux/cache.h>
#include <asm/cacheflush.h>
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
void *vaddr = phys_to_virt(paddr);
@ -42,8 +42,8 @@ void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
}
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
void *vaddr = phys_to_virt(paddr);

View File

@ -125,7 +125,7 @@ arch_dma_free(struct device *dev, size_t size, void *vaddr,
free_pages_exact(vaddr, size);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t addr, size_t size,
void arch_sync_dma_for_device(phys_addr_t addr, size_t size,
enum dma_data_direction dir)
{
unsigned long cl;

View File

@ -439,14 +439,14 @@ void arch_dma_free(struct device *dev, size_t size, void *vaddr,
free_pages((unsigned long)__va(dma_handle), order);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
flush_kernel_dcache_range((unsigned long)phys_to_virt(paddr), size);
}

View File

@ -93,7 +93,7 @@ aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian
ifeq ($(HAS_BIARCH),y)
KBUILD_CFLAGS += -m$(BITS)
KBUILD_AFLAGS += -m$(BITS) -Wl,-a$(BITS)
KBUILD_AFLAGS += -m$(BITS)
KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION)
endif

View File

@ -1072,45 +1072,46 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
}
pr_info("EEH: Recovery successful.\n");
} else {
/*
* About 90% of all real-life EEH failures in the field
* are due to poorly seated PCI cards. Only 10% or so are
* due to actual, failed cards.
*/
pr_err("EEH: Unable to recover from failure from PHB#%x-PE#%x.\n"
"Please try reseating or replacing it\n",
pe->phb->global_number, pe->addr);
goto out;
}
eeh_slot_error_detail(pe, EEH_LOG_PERM);
/*
* About 90% of all real-life EEH failures in the field
* are due to poorly seated PCI cards. Only 10% or so are
* due to actual, failed cards.
*/
pr_err("EEH: Unable to recover from failure from PHB#%x-PE#%x.\n"
"Please try reseating or replacing it\n",
pe->phb->global_number, pe->addr);
/* Notify all devices that they're about to go down. */
eeh_set_channel_state(pe, pci_channel_io_perm_failure);
eeh_set_irq_state(pe, false);
eeh_pe_report("error_detected(permanent failure)", pe,
eeh_report_failure, NULL);
eeh_slot_error_detail(pe, EEH_LOG_PERM);
/* Mark the PE to be removed permanently */
eeh_pe_state_mark(pe, EEH_PE_REMOVED);
/* Notify all devices that they're about to go down. */
eeh_set_irq_state(pe, false);
eeh_pe_report("error_detected(permanent failure)", pe,
eeh_report_failure, NULL);
eeh_set_channel_state(pe, pci_channel_io_perm_failure);
/*
* Shut down the device drivers for good. We mark
* all removed devices correctly to avoid access
* the their PCI config any more.
*/
if (pe->type & EEH_PE_VF) {
eeh_pe_dev_traverse(pe, eeh_rmv_device, NULL);
eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
} else {
eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
/* Mark the PE to be removed permanently */
eeh_pe_state_mark(pe, EEH_PE_REMOVED);
pci_lock_rescan_remove();
pci_hp_remove_devices(bus);
pci_unlock_rescan_remove();
/* The passed PE should no longer be used */
return;
}
/*
* Shut down the device drivers for good. We mark
* all removed devices correctly to avoid access
* the their PCI config any more.
*/
if (pe->type & EEH_PE_VF) {
eeh_pe_dev_traverse(pe, eeh_rmv_device, NULL);
eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
} else {
eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
eeh_pe_dev_mode_mark(pe, EEH_DEV_REMOVED);
pci_lock_rescan_remove();
pci_hp_remove_devices(bus);
pci_unlock_rescan_remove();
/* The passed PE should no longer be used */
return;
}
out:
@ -1206,10 +1207,10 @@ void eeh_handle_special_event(void)
/* Notify all devices to be down */
eeh_pe_state_clear(pe, EEH_PE_PRI_BUS, true);
eeh_set_channel_state(pe, pci_channel_io_perm_failure);
eeh_pe_report(
"error_detected(permanent failure)", pe,
eeh_report_failure, NULL);
eeh_set_channel_state(pe, pci_channel_io_perm_failure);
pci_lock_rescan_remove();
list_for_each_entry(hose, &hose_list, list_node) {

View File

@ -51,10 +51,10 @@ struct rtas_t rtas = {
EXPORT_SYMBOL(rtas);
DEFINE_SPINLOCK(rtas_data_buf_lock);
EXPORT_SYMBOL(rtas_data_buf_lock);
EXPORT_SYMBOL_GPL(rtas_data_buf_lock);
char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned;
EXPORT_SYMBOL(rtas_data_buf);
char rtas_data_buf[RTAS_DATA_BUF_SIZE] __aligned(SZ_4K);
EXPORT_SYMBOL_GPL(rtas_data_buf);
unsigned long rtas_rmo_buf;
@ -63,7 +63,7 @@ unsigned long rtas_rmo_buf;
* This is done like this so rtas_flash can be a module.
*/
void (*rtas_flash_term_hook)(int);
EXPORT_SYMBOL(rtas_flash_term_hook);
EXPORT_SYMBOL_GPL(rtas_flash_term_hook);
/* RTAS use home made raw locking instead of spin_lock_irqsave
* because those can be called from within really nasty contexts
@ -311,7 +311,7 @@ void rtas_progress(char *s, unsigned short hex)
spin_unlock(&progress_lock);
}
EXPORT_SYMBOL(rtas_progress); /* needed by rtas_flash module */
EXPORT_SYMBOL_GPL(rtas_progress); /* needed by rtas_flash module */
int rtas_token(const char *service)
{
@ -321,7 +321,7 @@ int rtas_token(const char *service)
tokp = of_get_property(rtas.dev, service, NULL);
return tokp ? be32_to_cpu(*tokp) : RTAS_UNKNOWN_SERVICE;
}
EXPORT_SYMBOL(rtas_token);
EXPORT_SYMBOL_GPL(rtas_token);
int rtas_service_present(const char *service)
{
@ -481,7 +481,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...)
}
return ret;
}
EXPORT_SYMBOL(rtas_call);
EXPORT_SYMBOL_GPL(rtas_call);
/* For RTAS_BUSY (-2), delay for 1 millisecond. For an extended busy status
* code of 990n, perform the hinted delay of 10^n (last digit) milliseconds.
@ -516,7 +516,7 @@ unsigned int rtas_busy_delay(int status)
return ms;
}
EXPORT_SYMBOL(rtas_busy_delay);
EXPORT_SYMBOL_GPL(rtas_busy_delay);
static int rtas_error_rc(int rtas_rc)
{
@ -562,7 +562,7 @@ int rtas_get_power_level(int powerdomain, int *level)
return rtas_error_rc(rc);
return rc;
}
EXPORT_SYMBOL(rtas_get_power_level);
EXPORT_SYMBOL_GPL(rtas_get_power_level);
int rtas_set_power_level(int powerdomain, int level, int *setlevel)
{
@ -580,7 +580,7 @@ int rtas_set_power_level(int powerdomain, int level, int *setlevel)
return rtas_error_rc(rc);
return rc;
}
EXPORT_SYMBOL(rtas_set_power_level);
EXPORT_SYMBOL_GPL(rtas_set_power_level);
int rtas_get_sensor(int sensor, int index, int *state)
{
@ -598,7 +598,7 @@ int rtas_get_sensor(int sensor, int index, int *state)
return rtas_error_rc(rc);
return rc;
}
EXPORT_SYMBOL(rtas_get_sensor);
EXPORT_SYMBOL_GPL(rtas_get_sensor);
int rtas_get_sensor_fast(int sensor, int index, int *state)
{
@ -659,7 +659,7 @@ int rtas_set_indicator(int indicator, int index, int new_value)
return rtas_error_rc(rc);
return rc;
}
EXPORT_SYMBOL(rtas_set_indicator);
EXPORT_SYMBOL_GPL(rtas_set_indicator);
/*
* Ignoring RTAS extended delay

View File

@ -6,6 +6,7 @@
#endif
#define BSS_FIRST_SECTIONS *(.bss.prominit)
#define RUNTIME_DISCARD_EXIT
#include <asm/page.h>
#include <asm-generic/vmlinux.lds.h>
@ -394,9 +395,12 @@ SECTIONS
DISCARDS
/DISCARD/ : {
*(*.EMB.apuinfo)
*(.glink .iplt .plt .rela* .comment)
*(.glink .iplt .plt .comment)
*(.gnu.version*)
*(.gnu.attributes)
*(.eh_frame)
#ifndef CONFIG_RELOCATABLE
*(.rela*)
#endif
}
}

View File

@ -104,14 +104,14 @@ static void __dma_sync_page(phys_addr_t paddr, size_t size, int dir)
#endif
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_sync_page(paddr, size, dir);
}
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
__dma_sync_page(paddr, size, dir);
}

View File

@ -3008,7 +3008,8 @@ static void pnv_ioda_setup_pe_res(struct pnv_ioda_pe *pe,
int index;
int64_t rc;
if (!res || !res->flags || res->start > res->end)
if (!res || !res->flags || res->start > res->end ||
res->flags & IORESOURCE_UNSET)
return;
if (res->flags & IORESOURCE_IO) {

View File

@ -1416,22 +1416,22 @@ static inline void __init check_lp_set_hblkrm(unsigned int lp,
void __init pseries_lpar_read_hblkrm_characteristics(void)
{
const s32 token = rtas_token("ibm,get-system-parameter");
unsigned char local_buffer[SPLPAR_TLB_BIC_MAXLENGTH];
int call_status, len, idx, bpsize;
if (!firmware_has_feature(FW_FEATURE_BLOCK_REMOVE))
return;
spin_lock(&rtas_data_buf_lock);
memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
NULL,
SPLPAR_TLB_BIC_TOKEN,
__pa(rtas_data_buf),
RTAS_DATA_BUF_SIZE);
memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
spin_unlock(&rtas_data_buf_lock);
do {
spin_lock(&rtas_data_buf_lock);
memset(rtas_data_buf, 0, RTAS_DATA_BUF_SIZE);
call_status = rtas_call(token, 3, 1, NULL, SPLPAR_TLB_BIC_TOKEN,
__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
memcpy(local_buffer, rtas_data_buf, SPLPAR_TLB_BIC_MAXLENGTH);
local_buffer[SPLPAR_TLB_BIC_MAXLENGTH - 1] = '\0';
spin_unlock(&rtas_data_buf_lock);
} while (rtas_busy_delay(call_status));
if (call_status != 0) {
pr_warn("%s %s Error calling get-system-parameter (0x%x)\n",

View File

@ -289,6 +289,7 @@ static void parse_mpp_x_data(struct seq_file *m)
*/
static void parse_system_parameter_string(struct seq_file *m)
{
const s32 token = rtas_token("ibm,get-system-parameter");
int call_status;
unsigned char *local_buffer = kmalloc(SPLPAR_MAXLENGTH, GFP_KERNEL);
@ -298,16 +299,15 @@ static void parse_system_parameter_string(struct seq_file *m)
return;
}
spin_lock(&rtas_data_buf_lock);
memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
call_status = rtas_call(rtas_token("ibm,get-system-parameter"), 3, 1,
NULL,
SPLPAR_CHARACTERISTICS_TOKEN,
__pa(rtas_data_buf),
RTAS_DATA_BUF_SIZE);
memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
spin_unlock(&rtas_data_buf_lock);
do {
spin_lock(&rtas_data_buf_lock);
memset(rtas_data_buf, 0, SPLPAR_MAXLENGTH);
call_status = rtas_call(token, 3, 1, NULL, SPLPAR_CHARACTERISTICS_TOKEN,
__pa(rtas_data_buf), RTAS_DATA_BUF_SIZE);
memcpy(local_buffer, rtas_data_buf, SPLPAR_MAXLENGTH);
local_buffer[SPLPAR_MAXLENGTH - 1] = '\0';
spin_unlock(&rtas_data_buf_lock);
} while (rtas_busy_delay(call_status));
if (call_status != 0) {
printk(KERN_INFO

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
#ifndef _UAPI_ASM_RISCV_SETUP_H
#define _UAPI_ASM_RISCV_SETUP_H
#define COMMAND_LINE_SIZE 1024
#endif /* _UAPI_ASM_RISCV_SETUP_H */

View File

@ -89,7 +89,7 @@ void notrace walk_stackframe(struct task_struct *task,
while (!kstack_end(ksp)) {
if (__kernel_text_address(pc) && unlikely(fn(pc, arg)))
break;
pc = (*ksp++) - 0x4;
pc = READ_ONCE_NOCHECK(*ksp++) - 0x4;
}
}

View File

@ -5,6 +5,7 @@
*/
#include <linux/of_clk.h>
#include <linux/clockchips.h>
#include <linux/clocksource.h>
#include <linux/delay.h>
#include <asm/sbi.h>
@ -28,4 +29,6 @@ void __init time_init(void)
of_clk_init(NULL);
timer_probe();
tick_setup_hrtimer_broadcast();
}

View File

@ -57,11 +57,19 @@ static unsigned long find_bootdata_space(struct ipl_rb_components *comps,
if (IS_ENABLED(CONFIG_BLK_DEV_INITRD) && INITRD_START && INITRD_SIZE &&
intersects(INITRD_START, INITRD_SIZE, safe_addr, size))
safe_addr = INITRD_START + INITRD_SIZE;
if (intersects(safe_addr, size, (unsigned long)comps, comps->len)) {
safe_addr = (unsigned long)comps + comps->len;
goto repeat;
}
for_each_rb_entry(comp, comps)
if (intersects(safe_addr, size, comp->addr, comp->len)) {
safe_addr = comp->addr + comp->len;
goto repeat;
}
if (intersects(safe_addr, size, (unsigned long)certs, certs->len)) {
safe_addr = (unsigned long)certs + certs->len;
goto repeat;
}
for_each_rb_entry(cert, certs)
if (intersects(safe_addr, size, cert->addr, cert->len)) {
safe_addr = cert->addr + cert->len;

View File

@ -255,6 +255,7 @@ static void pop_kprobe(struct kprobe_ctlblk *kcb)
{
__this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
kcb->kprobe_status = kcb->prev_kprobe.status;
kcb->prev_kprobe.kp = NULL;
}
NOKPROBE_SYMBOL(pop_kprobe);
@ -509,12 +510,11 @@ static int post_kprobe_handler(struct pt_regs *regs)
if (!p)
return 0;
resume_execution(p, regs);
if (kcb->kprobe_status != KPROBE_REENTER && p->post_handler) {
kcb->kprobe_status = KPROBE_HIT_SSDONE;
p->post_handler(p, regs, 0);
}
resume_execution(p, regs);
pop_kprobe(kcb);
preempt_enable_no_resched();

View File

@ -502,9 +502,7 @@ long arch_ptrace(struct task_struct *child, long request,
}
return 0;
case PTRACE_GET_LAST_BREAK:
put_user(child->thread.last_break,
(unsigned long __user *) data);
return 0;
return put_user(child->thread.last_break, (unsigned long __user *)data);
case PTRACE_ENABLE_TE:
if (!MACHINE_HAS_TE)
return -EIO;
@ -856,9 +854,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
}
return 0;
case PTRACE_GET_LAST_BREAK:
put_user(child->thread.last_break,
(unsigned int __user *) data);
return 0;
return put_user(child->thread.last_break, (unsigned int __user *)data);
}
return compat_ptrace_request(child, request, addr, data);
}

View File

@ -15,6 +15,8 @@
/* Handle ro_after_init data on our own. */
#define RO_AFTER_INIT_DATA
#define RUNTIME_DISCARD_EXIT
#include <asm-generic/vmlinux.lds.h>
#include <asm/vmlinux.lds.h>
@ -189,5 +191,6 @@ SECTIONS
DISCARDS
/DISCARD/ : {
*(.eh_frame)
*(.interp)
}
}

View File

@ -4527,6 +4527,22 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
if (mem->guest_phys_addr + mem->memory_size > kvm->arch.mem_limit)
return -EINVAL;
if (!kvm->arch.migration_mode)
return 0;
/*
* Turn off migration mode when:
* - userspace creates a new memslot with dirty logging off,
* - userspace modifies an existing memslot (MOVE or FLAGS_ONLY) and
* dirty logging is turned off.
* Migration mode expects dirty page logging being enabled to store
* its dirty bitmap.
*/
if (change != KVM_MR_DELETE &&
!(mem->flags & KVM_MEM_LOG_DIRTY_PAGES))
WARN(kvm_s390_vm_stop_migration(kvm),
"Failed to stop migration mode");
return 0;
}

View File

@ -339,7 +339,7 @@ static inline unsigned long clear_user_mvcos(void __user *to, unsigned long size
"4: slgr %0,%0\n"
"5:\n"
EX_TABLE(0b,2b) EX_TABLE(3b,5b)
: "+a" (size), "+a" (to), "+a" (tmp1), "=a" (tmp2)
: "+&a" (size), "+&a" (to), "+a" (tmp1), "=&a" (tmp2)
: "a" (empty_zero_page), "d" (reg0) : "cc", "memory");
return size;
}

View File

@ -51,6 +51,7 @@
#define SR_FD 0x00008000
#define SR_MD 0x40000000
#define SR_USER_MASK 0x00000303 // M, Q, S, T bits
/*
* DSP structure and data
*/

View File

@ -25,7 +25,7 @@ void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
* Pages from the page allocator may have data present in
* cache. So flush the cache before using uncached memory.
*/
arch_sync_dma_for_device(dev, virt_to_phys(ret), size,
arch_sync_dma_for_device(virt_to_phys(ret), size,
DMA_BIDIRECTIONAL);
ret_nocache = (void __force *)ioremap_nocache(virt_to_phys(ret), size);
@ -59,8 +59,8 @@ void arch_dma_free(struct device *dev, size_t size, void *vaddr,
iounmap(vaddr);
}
void arch_sync_dma_for_device(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_device(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
void *addr = sh_cacheop_vaddr(phys_to_virt(paddr));

View File

@ -116,6 +116,7 @@ static int
restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p)
{
unsigned int err = 0;
unsigned int sr = regs->sr & ~SR_USER_MASK;
#define COPY(x) err |= __get_user(regs->x, &sc->sc_##x)
COPY(regs[1]);
@ -131,6 +132,8 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *r0_p
COPY(sr); COPY(pc);
#undef COPY
regs->sr = (regs->sr & SR_USER_MASK) | sr;
#ifdef CONFIG_SH_FPU
if (boot_cpu_data.flags & CPU_HAS_FPU) {
int owned_fp;

View File

@ -10,6 +10,7 @@ OUTPUT_ARCH(sh:sh5)
#define LOAD_OFFSET 0
OUTPUT_ARCH(sh)
#endif
#define RUNTIME_DISCARD_EXIT
#include <asm/thread_info.h>
#include <asm/cache.h>

View File

@ -321,7 +321,7 @@ config FORCE_MAX_ZONEORDER
This config option is actually maximum order plus one. For example,
a value of 13 means that the largest free memory block is 2^12 pages.
if SPARC64
if SPARC64 || COMPILE_TEST
source "kernel/power/Kconfig"
endif

View File

@ -368,8 +368,8 @@ void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
/* IIep is write-through, not flushing on cpu to device transfer. */
void arch_sync_dma_for_cpu(struct device *dev, phys_addr_t paddr,
size_t size, enum dma_data_direction dir)
void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
enum dma_data_direction dir)
{
if (dir != PCI_DMA_TODEVICE)
dma_make_coherent(paddr, PAGE_ALIGN(size));

View File

@ -746,6 +746,7 @@ static int vector_config(char *str, char **error_out)
if (parsed == NULL) {
*error_out = "vector_config failed to parse parameters";
kfree(params);
return -EINVAL;
}

View File

@ -1,4 +1,4 @@
#define RUNTIME_DISCARD_EXIT
KERNEL_STACK_SIZE = 4096 * (1 << CONFIG_KERNEL_STACK_ORDER);
#ifdef CONFIG_LD_SCRIPT_STATIC

View File

@ -19,6 +19,7 @@
#include <crypto/internal/simd.h>
#include <asm/cpu_device_id.h>
#include <asm/simd.h>
#include <asm/unaligned.h>
#define GHASH_BLOCK_SIZE 16
#define GHASH_DIGEST_SIZE 16
@ -54,7 +55,6 @@ static int ghash_setkey(struct crypto_shash *tfm,
const u8 *key, unsigned int keylen)
{
struct ghash_ctx *ctx = crypto_shash_ctx(tfm);
be128 *x = (be128 *)key;
u64 a, b;
if (keylen != GHASH_BLOCK_SIZE) {
@ -63,8 +63,8 @@ static int ghash_setkey(struct crypto_shash *tfm,
}
/* perform multiplication by 'x' in GF(2^128) */
a = be64_to_cpu(x->a);
b = be64_to_cpu(x->b);
a = get_unaligned_be64(key);
b = get_unaligned_be64(key + 8);
ctx->shash.a = (b << 1) | (a >> 63);
ctx->shash.b = (a << 1) | (b >> 63);

View File

@ -131,7 +131,7 @@ static inline unsigned int x86_cpuid_family(void)
int __init microcode_init(void);
extern void __init load_ucode_bsp(void);
extern void load_ucode_ap(void);
void reload_early_microcode(void);
void reload_early_microcode(unsigned int cpu);
extern bool get_builtin_firmware(struct cpio_data *cd, const char *name);
extern bool initrd_gone;
void microcode_bsp_resume(void);
@ -139,7 +139,7 @@ void microcode_bsp_resume(void);
static inline int __init microcode_init(void) { return 0; };
static inline void __init load_ucode_bsp(void) { }
static inline void load_ucode_ap(void) { }
static inline void reload_early_microcode(void) { }
static inline void reload_early_microcode(unsigned int cpu) { }
static inline void microcode_bsp_resume(void) { }
static inline bool
get_builtin_firmware(struct cpio_data *cd, const char *name) { return false; }

View File

@ -47,12 +47,12 @@ struct microcode_amd {
extern void __init load_ucode_amd_bsp(unsigned int family);
extern void load_ucode_amd_ap(unsigned int family);
extern int __init save_microcode_in_initrd_amd(unsigned int family);
void reload_ucode_amd(void);
void reload_ucode_amd(unsigned int cpu);
#else
static inline void __init load_ucode_amd_bsp(unsigned int family) {}
static inline void load_ucode_amd_ap(unsigned int family) {}
static inline int __init
save_microcode_in_initrd_amd(unsigned int family) { return -EINVAL; }
void reload_ucode_amd(void) {}
static inline void reload_ucode_amd(unsigned int cpu) {}
#endif
#endif /* _ASM_X86_MICROCODE_AMD_H */

View File

@ -50,6 +50,10 @@
#define SPEC_CTRL_RRSBA_DIS_S_SHIFT 6 /* Disable RRSBA behavior */
#define SPEC_CTRL_RRSBA_DIS_S BIT(SPEC_CTRL_RRSBA_DIS_S_SHIFT)
/* A mask for bits which the kernel toggles when controlling mitigations */
#define SPEC_CTRL_MITIGATIONS_MASK (SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD \
| SPEC_CTRL_RRSBA_DIS_S)
#define MSR_IA32_PRED_CMD 0x00000049 /* Prediction Command */
#define PRED_CMD_IBPB BIT(0) /* Indirect Branch Prediction Barrier */

View File

@ -25,6 +25,8 @@ void __noreturn machine_real_restart(unsigned int type);
#define MRR_BIOS 0
#define MRR_APM 1
void cpu_emergency_disable_virtualization(void);
typedef void (*nmi_shootdown_cb)(int, struct pt_regs*);
void nmi_panic_self_stop(struct pt_regs *regs);
void nmi_shootdown_cpus(nmi_shootdown_cb callback);

View File

@ -51,24 +51,27 @@ DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key);
* simple as possible.
* Must be called with preemption disabled.
*/
static void __resctrl_sched_in(void)
static inline void __resctrl_sched_in(struct task_struct *tsk)
{
struct resctrl_pqr_state *state = this_cpu_ptr(&pqr_state);
u32 closid = state->default_closid;
u32 rmid = state->default_rmid;
u32 tmp;
/*
* If this task has a closid/rmid assigned, use it.
* Else use the closid/rmid assigned to this cpu.
*/
if (static_branch_likely(&rdt_alloc_enable_key)) {
if (current->closid)
closid = current->closid;
tmp = READ_ONCE(tsk->closid);
if (tmp)
closid = tmp;
}
if (static_branch_likely(&rdt_mon_enable_key)) {
if (current->rmid)
rmid = current->rmid;
tmp = READ_ONCE(tsk->rmid);
if (tmp)
rmid = tmp;
}
if (closid != state->cur_closid || rmid != state->cur_rmid) {
@ -78,15 +81,15 @@ static void __resctrl_sched_in(void)
}
}
static inline void resctrl_sched_in(void)
static inline void resctrl_sched_in(struct task_struct *tsk)
{
if (static_branch_likely(&rdt_enable_key))
__resctrl_sched_in();
__resctrl_sched_in(tsk);
}
#else
static inline void resctrl_sched_in(void) {}
static inline void resctrl_sched_in(struct task_struct *tsk) {}
#endif /* CONFIG_X86_CPU_RESCTRL */

View File

@ -120,7 +120,21 @@ static inline void cpu_svm_disable(void)
wrmsrl(MSR_VM_HSAVE_PA, 0);
rdmsrl(MSR_EFER, efer);
wrmsrl(MSR_EFER, efer & ~EFER_SVME);
if (efer & EFER_SVME) {
/*
* Force GIF=1 prior to disabling SVM to ensure INIT and NMI
* aren't blocked, e.g. if a fatal error occurred between CLGI
* and STGI. Note, STGI may #UD if SVM is disabled from NMI
* context between reading EFER and executing STGI. In that
* case, GIF must already be set, otherwise the NMI would have
* been blocked, so just eat the fault.
*/
asm_volatile_goto("1: stgi\n\t"
_ASM_EXTABLE(1b, %l[fault])
::: "memory" : fault);
fault:
wrmsrl(MSR_EFER, efer & ~EFER_SVME);
}
}
/** Makes sure SVM is disabled, if it is supported on the CPU

View File

@ -205,6 +205,15 @@ static void init_amd_k6(struct cpuinfo_x86 *c)
return;
}
#endif
/*
* Work around Erratum 1386. The XSAVES instruction malfunctions in
* certain circumstances on Zen1/2 uarch, and not all parts have had
* updated microcode at the time of writing (March 2023).
*
* Affected parts all have no supervisor XSAVE states, meaning that
* the XSAVEC instruction (which works fine) is equivalent.
*/
clear_cpu_cap(c, X86_FEATURE_XSAVES);
}
static void init_amd_k7(struct cpuinfo_x86 *c)

View File

@ -135,9 +135,17 @@ void __init check_bugs(void)
* have unknown values. AMD64_LS_CFG MSR is cached in the early AMD
* init code as it is not enumerated and depends on the family.
*/
if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL))
if (cpu_feature_enabled(X86_FEATURE_MSR_SPEC_CTRL)) {
rdmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base);
/*
* Previously running kernel (kexec), may have some controls
* turned ON. Clear them and let the mitigations setup below
* rediscover them based on configuration.
*/
x86_spec_ctrl_base &= ~SPEC_CTRL_MITIGATIONS_MASK;
}
/* Select the proper CPU mitigations before patching alternatives: */
spectre_v1_select_mitigation();
spectre_v2_select_mitigation();
@ -975,14 +983,18 @@ spectre_v2_parse_user_cmdline(void)
return SPECTRE_V2_USER_CMD_AUTO;
}
static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
static inline bool spectre_v2_in_eibrs_mode(enum spectre_v2_mitigation mode)
{
return mode == SPECTRE_V2_IBRS ||
mode == SPECTRE_V2_EIBRS ||
return mode == SPECTRE_V2_EIBRS ||
mode == SPECTRE_V2_EIBRS_RETPOLINE ||
mode == SPECTRE_V2_EIBRS_LFENCE;
}
static inline bool spectre_v2_in_ibrs_mode(enum spectre_v2_mitigation mode)
{
return spectre_v2_in_eibrs_mode(mode) || mode == SPECTRE_V2_IBRS;
}
static void __init
spectre_v2_user_select_mitigation(void)
{
@ -1045,12 +1057,19 @@ spectre_v2_user_select_mitigation(void)
}
/*
* If no STIBP, IBRS or enhanced IBRS is enabled, or SMT impossible,
* STIBP is not required.
* If no STIBP, enhanced IBRS is enabled, or SMT impossible, STIBP
* is not required.
*
* Enhanced IBRS also protects against cross-thread branch target
* injection in user-mode as the IBRS bit remains always set which
* implicitly enables cross-thread protections. However, in legacy IBRS
* mode, the IBRS bit is set only on kernel entry and cleared on return
* to userspace. This disables the implicit cross-thread protection,
* so allow for STIBP to be selected in that case.
*/
if (!boot_cpu_has(X86_FEATURE_STIBP) ||
!smt_possible ||
spectre_v2_in_ibrs_mode(spectre_v2_enabled))
spectre_v2_in_eibrs_mode(spectre_v2_enabled))
return;
/*
@ -2113,7 +2132,7 @@ static ssize_t mmio_stale_data_show_state(char *buf)
static char *stibp_state(void)
{
if (spectre_v2_in_ibrs_mode(spectre_v2_enabled))
if (spectre_v2_in_eibrs_mode(spectre_v2_enabled))
return "";
switch (spectre_v2_user_stibp) {

View File

@ -55,7 +55,9 @@ struct cont_desc {
};
static u32 ucode_new_rev;
static u8 amd_ucode_patch[PATCH_MAX_SIZE];
/* One blob per node. */
static u8 amd_ucode_patch[MAX_NUMNODES][PATCH_MAX_SIZE];
/*
* Microcode patch container file is prepended to the initrd in cpio
@ -429,7 +431,7 @@ apply_microcode_early_amd(u32 cpuid_1_eax, void *ucode, size_t size, bool save_p
patch = (u8 (*)[PATCH_MAX_SIZE])__pa_nodebug(&amd_ucode_patch);
#else
new_rev = &ucode_new_rev;
patch = &amd_ucode_patch;
patch = &amd_ucode_patch[0];
#endif
desc.cpuid_1_eax = cpuid_1_eax;
@ -548,8 +550,7 @@ void load_ucode_amd_ap(unsigned int cpuid_1_eax)
apply_microcode_early_amd(cpuid_1_eax, cp.data, cp.size, false);
}
static enum ucode_state
load_microcode_amd(bool save, u8 family, const u8 *data, size_t size);
static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t size);
int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
{
@ -567,19 +568,19 @@ int __init save_microcode_in_initrd_amd(unsigned int cpuid_1_eax)
if (!desc.mc)
return -EINVAL;
ret = load_microcode_amd(true, x86_family(cpuid_1_eax), desc.data, desc.size);
ret = load_microcode_amd(x86_family(cpuid_1_eax), desc.data, desc.size);
if (ret > UCODE_UPDATED)
return -EINVAL;
return 0;
}
void reload_ucode_amd(void)
void reload_ucode_amd(unsigned int cpu)
{
struct microcode_amd *mc;
u32 rev, dummy;
struct microcode_amd *mc;
mc = (struct microcode_amd *)amd_ucode_patch;
mc = (struct microcode_amd *)amd_ucode_patch[cpu_to_node(cpu)];
rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy);
@ -845,9 +846,10 @@ static enum ucode_state __load_microcode_amd(u8 family, const u8 *data,
return UCODE_OK;
}
static enum ucode_state
load_microcode_amd(bool save, u8 family, const u8 *data, size_t size)
static enum ucode_state load_microcode_amd(u8 family, const u8 *data, size_t size)
{
struct cpuinfo_x86 *c;
unsigned int nid, cpu;
struct ucode_patch *p;
enum ucode_state ret;
@ -860,23 +862,23 @@ load_microcode_amd(bool save, u8 family, const u8 *data, size_t size)
return ret;
}
p = find_patch(0);
if (!p) {
return ret;
} else {
if (boot_cpu_data.microcode >= p->patch_id)
return ret;
for_each_node(nid) {
cpu = cpumask_first(cpumask_of_node(nid));
c = &cpu_data(cpu);
p = find_patch(cpu);
if (!p)
continue;
if (c->microcode >= p->patch_id)
continue;
ret = UCODE_NEW;
memset(&amd_ucode_patch[nid], 0, PATCH_MAX_SIZE);
memcpy(&amd_ucode_patch[nid], p->data, min_t(u32, p->size, PATCH_MAX_SIZE));
}
/* save BSP's matching patch for early load */
if (!save)
return ret;
memset(amd_ucode_patch, 0, PATCH_MAX_SIZE);
memcpy(amd_ucode_patch, p->data, min_t(u32, p->size, PATCH_MAX_SIZE));
return ret;
}
@ -901,12 +903,11 @@ static enum ucode_state request_microcode_amd(int cpu, struct device *device,
{
char fw_name[36] = "amd-ucode/microcode_amd.bin";
struct cpuinfo_x86 *c = &cpu_data(cpu);
bool bsp = c->cpu_index == boot_cpu_data.cpu_index;
enum ucode_state ret = UCODE_NFOUND;
const struct firmware *fw;
/* reload ucode container only on the boot cpu */
if (!refresh_fw || !bsp)
if (!refresh_fw)
return UCODE_OK;
if (c->x86 >= 0x15)
@ -921,7 +922,7 @@ static enum ucode_state request_microcode_amd(int cpu, struct device *device,
if (!verify_container(fw->data, fw->size, false))
goto fw_release;
ret = load_microcode_amd(bsp, c->x86, fw->data, fw->size);
ret = load_microcode_amd(c->x86, fw->data, fw->size);
fw_release:
release_firmware(fw);

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