Merge tag 'android12-5.10.189_r00' into android12-5.10
This is the merge of 5.10.189 into the android12-5.10 branch. It contains the following commits: *f50fa8d8ce
Merge 5.10.189 into android12-5.10-lts |\ | *de5f63612d
Linux 5.10.189 | *2ae9a73819
x86: fix backwards merge of GDS/SRSO bit | *f9167a2d6b
xen/netback: Fix buffer overrun triggered by unusual packet | *8457fb5740
x86/srso: Tie SBPB bit setting to microcode patch detection | *4873939c0e
x86/srso: Fix return thunks in generated code | *384d41bea9
x86/srso: Add IBPB on VMEXIT | *4acaea47e3
x86/srso: Add IBPB | *e47af0c255
x86/srso: Add SRSO_NO support | *df76a59feb
x86/srso: Add IBPB_BRTYPE support | *3f9b7101be
x86/srso: Add a Speculative RAS Overflow mitigation | *34f23ba8a3
x86/cpu, kvm: Add support for CPUID_80000021_EAX | *073a28a9b5
x86/bugs: Increase the x86 bugs vector size to two u32s | *9b7fe7c6fb
tools headers cpufeatures: Sync with the kernel sources | *437fa179f2
x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX] | *baf6d6c39e
x86/cpu: Add VM page flush MSR availablility as a CPUID feature | *6750468784
Documentation/x86: Fix backwards on/off logic about YMM support | *79972c2b95
x86/mm: Initialize text poking earlier | *1ff14defdf
mm: Move mm_cachep initialization to mm_init() | *6ee042fd24
x86/mm: Use mm_alloc() in poking_init() | *f076d08178
x86/mm: fix poking_init() for Xen PV guests | *583016037a
x86/xen: Fix secondary processors' FPU initialization | *eb13cce488
KVM: Add GDS_NO support to KVM | *7db4ddcb8d
x86/speculation: Add Kconfig option for GDS | *363c98f9cf
x86/speculation: Add force option to GDS mitigation | *288a2f6bc1
x86/speculation: Add Gather Data Sampling mitigation | *4ae1cbb730
x86/fpu: Move FPU initialization into arch_cpu_finalize_init() | *2462bc3ef0
x86/fpu: Mark init functions __init | *7a2f42bce9
x86/fpu: Remove cpuinfo argument from init functions | *18fcd72da1
init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init() | *09658b81d1
init: Invoke arch_cpu_finalize_init() earlier | *bf2fa3a9d0
init: Remove check_bugs() leftovers | *b05031c2bc
um/cpu: Switch to arch_cpu_finalize_init() | *2edb3b39ca
sparc/cpu: Switch to arch_cpu_finalize_init() | *3c45134b38
sh/cpu: Switch to arch_cpu_finalize_init() | *75bb54c951
mips/cpu: Switch to arch_cpu_finalize_init() | *1cd3fc18eb
m68k/cpu: Switch to arch_cpu_finalize_init() | *12d93c6c98
ia64/cpu: Switch to arch_cpu_finalize_init() | *c0fff20d4e
ARM: cpu: Switch to arch_cpu_finalize_init() | *e5eb18e164
x86/cpu: Switch to arch_cpu_finalize_init() | *6e606e6818
init: Provide arch_cpu_finalize_init() * |49c25af89c
Revert "bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE" * |117f73f9a7
Revert "sctp: add bpf_bypass_getsockopt proto callback" * |64414277da
Revert "net: Introduce net.ipv4.tcp_migrate_req." * |2afed824a4
Revert "tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries." * |08315eedaa
Revert "tcp: annotate data-races around icsk->icsk_syn_retries" * |938b8658b9
Revert "posix-timers: Ensure timer ID search-loop limit is valid" * |986fd89af0
Revert "Revert "8250: add support for ASIX devices with a FIFO bug"" * |477f5e6b9e
Merge 5.10.188 into android12-5.10-lts |\| | *3602dbc57b
Linux 5.10.188 | *edce5fba78
ftrace: Fix possible warning on checking all pages used in ftrace_process_locs() | *115b19f893
ftrace: Store the order of pages allocated in ftrace_page | *1a1e793e02
tracing: Fix memory leak of iter->temp when reading trace_pipe | *43e786aa51
tracing/histograms: Return an error if we fail to add histogram to hist_vars list | *e3da59f428
net: phy: prevent stale pointer dereference in phy_init() | *e0ac63e194
tcp: annotate data-races around fastopenq.max_qlen | *d01afbfc2f
tcp: annotate data-races around icsk->icsk_user_timeout | *3cf0a0f11d
tcp: annotate data-races around tp->notsent_lowat | *9c786d5faf
tcp: annotate data-races around rskq_defer_accept | *f891375eba
tcp: annotate data-races around tp->linger2 | *9168bd8f54
tcp: annotate data-races around icsk->icsk_syn_retries | *7b0084918c
tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries. | *cf6c06ac74
net: Introduce net.ipv4.tcp_migrate_req. | *a5c30a5187
tcp: annotate data-races around tp->keepalive_probes | *93715448f1
tcp: annotate data-races around tp->keepalive_intvl | *7b52a78a91
tcp: annotate data-races around tp->keepalive_time | *1d4f2c4be1
tcp: annotate data-races around tp->tcp_tx_delay | *30e5460d69
netfilter: nf_tables: skip bound chain on rule flush | *94c10c0fa5
netfilter: nf_tables: skip bound chain in netns release path | *3a91099ecd
netfilter: nft_set_pipapo: fix improper element removal | *9c2df17e3c
netfilter: nf_tables: can't schedule in nft_chain_validate | *533193a239
netfilter: nf_tables: fix spurious set element insertion failure | *a6f1988780
llc: Don't drop packet from non-root netns. | *49e435ca02
fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe | *bc9d4d432f
Revert "tcp: avoid the lookup process failing to get sk in ehash table" | *d06fc7b391
net:ipv6: check return value of pskb_trim() | *1a478ad129
net: ipv4: Use kfree_sensitive instead of kfree | *937105d2b0
tcp: annotate data-races around tcp_rsk(req)->ts_recent | *41b0023869
octeontx2-pf: Dont allocate BPIDs for LBK interfaces | *5bc78ba889
security: keys: Modify mismatched function name | *b92defe4e8
iavf: Fix out-of-bounds when setting channels on remove | *a4635f190f
iavf: Fix use-after-free in free_netdev | *b37bc3b07e
bridge: Add extack warning when enabling STP in netns. | *f6d311b953
net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() | *54aa4c0386
pinctrl: amd: Use amd_pinconf_set() for all config options | *7041605e85
fbdev: imxfb: warn about invalid left/right margin | *6e88cc510f
spi: bcm63xx: fix max prepend length | *994c2ceb70
igb: Fix igb_down hung on surprise removal | *a956c3af70
wifi: iwlwifi: mvm: avoid baid size integer overflow | *85cf0d5f45
wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point() | *2864cc9a1f
devlink: report devlink_port_type_warn source device | *b6d9a4062c
bpf: Address KCSAN report on bpf_lru_list | *532f8bac60
wifi: ath11k: fix registration of 6Ghz-only phy without the full channel range | *6b0c79aa33
sched/fair: Don't balance task to its current running CPU | *32020fc2a8
arm64: mm: fix VA-range sanity check | *c71d6934c6
arm64: set __exception_irq_entry with __irq_entry as a default | *71e3f23540
ACPI: video: Add backlight=native DMI quirk for Lenovo ThinkPad X131e (3371 AMD version) | *776a72f612
ACPI: video: Add backlight=native DMI quirk for Apple iMac11,3 | *e090f70ae4
ACPI: button: Add lid disable DMI quirk for Nextbook Ares 8A | *ae51eb90bc
btrfs: add xxhash to fast checksum implementations | *322377cc90
posix-timers: Ensure timer ID search-loop limit is valid | *634daf6b2c
md/raid10: prevent soft lockup while flush writes | *b02939413e
md: fix data corruption for raid456 when reshape restart while grow up | *4a2c62c8d6
nbd: Add the maximum limit of allocated index in nbd_dev_add | *5f84a34b64
debugobjects: Recheck debug_objects_enabled before reporting | *5d5aa5b648
ext4: correct inline offset when handling xattrs in inode body | *48aa539375
ASoC: fsl_sai: Disable bit clock with transmitter | *5f2a12f643
drm/client: Fix memory leak in drm_client_modeset_probe | *105275879a
drm/client: Fix memory leak in drm_client_target_cloned | *cf254b4f68
can: bcm: Fix UAF in bcm_proc_show() | *3e412b6e2b
regmap: Account for register length in SMBus I/O limits | *8b3dd8d23f
regmap: Drop initial version of maximum transfer length fixes | *4935761daa
selftests: tc: add 'ct' action kconfig dep | *1ab5aa1846
selftests: tc: set timeout to 15 minutes | *dad97c205a
fuse: revalidate: don't invalidate if interrupted | *d2c667cc18
btrfs: fix warning when putting transaction with qgroups enabled after abort | *4410f4a938
perf probe: Add test for regression introduced by switch to die_get_decl_file() | *0a6b0ca586
keys: Fix linking a duplicate key to a keyring's assoc_array | *a26208e184
ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx | *ce2a7e7b50
ALSA: hda/realtek - remove 3k pull low procedure | *f09c0ac142
drm/atomic: Fix potential use-after-free in nonblocking commits | *9a085fa9b7
RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests | *73e72a5380
net/sched: sch_qfq: reintroduce lmax bound check for MTU | *0b1ce92fab
scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue | *5addd62586
scsi: qla2xxx: Pointer may be dereferenced | *e8de73238d
scsi: qla2xxx: Correct the index of array | *921d684462
scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport() | *2bea9c1c98
scsi: qla2xxx: Fix potential NULL pointer dereference | *eecb8a491c
scsi: qla2xxx: Fix buffer overrun | *bcd773969a
scsi: qla2xxx: Array index may go out of bound | *a9fe97fb7b
scsi: qla2xxx: Wait for io return on terminate rport | *6ea2a408d3
tracing/probes: Fix not to count error code to total length | *7060e5aac6
tracing: Fix null pointer dereference in tracing_err_log_open() | *81fb8a58d4
xtensa: ISS: fix call to split_if_spec | *5e68f1f3a2
ring-buffer: Fix deadloop issue on reading trace_pipe | *1e760b2d18
net: ena: fix shift-out-of-bounds in exponential backoff | *1f2a8f0835
samples: ftrace: Save required argument registers in sample trampolines | *1576f0df7b
tracing/histograms: Add histograms to hist_vars if they have referenced variables | *07edd294b1
s390/decompressor: fix misaligned symbol build error | *5f4a1111ad
Revert "8250: add support for ASIX devices with a FIFO bug" | *7f2f0e6ec5
meson saradc: fix clock divider mask length | *790e4e82c5
xhci: Show ZHAOXIN xHCI root hub speed correctly | *c52e04c58d
xhci: Fix TRB prefetch issue of ZHAOXIN hosts | *b56a07c2a5
xhci: Fix resume issue of some ZHAOXIN hosts | *8e807eadf0
ceph: don't let check_caps skip sending responses for revoke msgs | *c04ed61ebf
firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool() | *1962717c46
tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk | *a49e5a0512
tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error | *08673739ed
serial: atmel: don't enable IRQs prematurely | *4016d36fec
drm/amd/display: Correct `DMUB_FW_VERSION` macro | *d89bd2ecd3
drm/rockchip: vop: Leave vblank enabled in self-refresh | *b9ec9372a4
drm/atomic: Allow vblank-enabled + self-refresh "disable" | *23d5004ee7
fs: dlm: return positive pid value for F_GETLK | *5e9aff5b10
md/raid0: add discard support for the 'original' layout | *8e3c777640
misc: pci_endpoint_test: Re-init completion for every test | *cdf9a7e2cd
misc: pci_endpoint_test: Free IRQs before removing the device | *8c90c466e3
PCI: rockchip: Set address alignment for endpoint mode | *f1986416cf
PCI: rockchip: Use u32 variable to access 32-bit registers | *36eb130312
PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core | *c417a4c7de
PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked | *ddda61419a
PCI: rockchip: Write PCI Device ID to correct register | *bec3e0f7f2
PCI: rockchip: Assert PCI Configuration Enable bit after probe | *48e11e7c81
PCI: qcom: Disable write access to read only registers for IP v2.3.3 | *aca71b004a
PCI: Add function 1 DMA alias quirk for Marvell 88SE9235 | *d3bab5de91
PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold | *5a89a5cc81
hwrng: imx-rngc - fix the timeout for init and self check | *47b7eaae08
jfs: jfs_dmap: Validate db_l2nbperpage while mounting | *84293af545
ext4: only update i_reserved_data_blocks on successful block allocation | *0a5d12e710
ext4: fix wrong unit use in ext4_mb_new_blocks | *514220246a
ext4: get block from bh in ext4_free_blocks for fast commit replay | *d054422eb6
ext4: fix wrong unit use in ext4_mb_clear_bb | *be99faf0c4
ext4: Fix reusing stale buffer heads from last failed mounting | *8fbe951d65
MIPS: Loongson: Fix cpu_probe_loongson() again | *8c723eef98
erofs: fix compact 4B support for 16k block size | *3bd4d316b1
misc: fastrpc: Create fastrpc scalar with correct buffer count | *3d1d037f27
powerpc: Fail build if using recordmcount with binutils v2.37 | *fe1ae1fb50
net: bcmgenet: Ensure MDIO unregistration has clocks enabled | *21d5d3eb36
mtd: rawnand: meson: fix unaligned DMA buffers handling | *9ff7fcb3a2
tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation | *59490249c2
pinctrl: amd: Only use special debounce behavior for GPIO 0 | *4f77a87ce9
pinctrl: amd: Detect internal GPIO0 debounce handling | *3674b9c056
pinctrl: amd: Fix mistake in handling clearing pins at startup | *b39ef5b52f
f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io() | *f4ff379812
nvme-pci: fix DMA direction of unmapping integrity data | *8359ee85fd
net/sched: sch_qfq: account for stab overhead in qfq_enqueue | *5bef780e06
net/sched: sch_qfq: refactor parsing of netlink parameters | *1d7ae38daa
net/sched: make psched_mtu() RTNL-less safe | *d5ca61b764
netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write() | *9b69cdb6e5
net/sched: flower: Ensure both minimum and maximum ports are specified | *934c85b8ec
wifi: airo: avoid uninitialized warning in airo_get_rate() | *4511499138
erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF | *bbc500ff3f
riscv, bpf: Fix inconsistent JIT image generation | *a976adc3bc
bpf, riscv: Support riscv jit to provide bpf_line_info | *eb3d1d84f3
riscv: bpf: Avoid breaking W^X | *7c61643798
riscv: bpf: Move bpf_jit_alloc_exec() and bpf_jit_free_exec() to core | *83579a6261
igc: Fix inserting of empty frame for launchtime | *c48e8ee81a
igc: Fix launchtime before start of cycle | *cdf5b9af92
platform/x86: wmi: Break possible infinite loop when parsing GUID | *7157ee0de5
platform/x86: wmi: move variables | *4bb2bb69bd
platform/x86: wmi: use guid_t and guid_equal() | *88dfb592d2
platform/x86: wmi: remove unnecessary argument | *2ad31ce40e
ipv6/addrconf: fix a potential refcount underflow for idev | *8271145523
NTB: ntb_tool: Add check for devm_kcalloc | *41c6d8ff71
NTB: ntb_transport: fix possible memory leak while device_register() fails | *03cfa06534
ntb: intel: Fix error handling in intel_ntb_pci_driver_init() | *23e09f0a86
NTB: amd: Fix error handling in amd_ntb_pci_driver_init() | *0bb2683b0c
ntb: idt: Fix error handling in idt_pci_driver_init() | *3e8fed805c
udp6: fix udp6_ehashfn() typo | *d30ddd7ff1
icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev(). | *bc3ab5d2ab
net: prevent skb corruption on frag list segmentation | *cddd04f341
net: bgmac: postpone turning IRQs off to avoid SoC hangs | *f8cc4fd99a
ionic: remove WARN_ON to prevent panic_on_warn | *9085429821
gve: Set default duplex configuration to full | *80e0e8d5f5
net/sched: cls_fw: Fix improper refcount update leads to use-after-free | *d341f24612
net: mvneta: fix txq_map in case of txq_number==1 | *c175603d84
scsi: qla2xxx: Fix error code in qla2x00_start_sp() | *b687b78361
igc: set TP bit in 'supported' and 'advertising' fields of ethtool_link_ksettings | *30c281a77f
net/mlx5e: Check for NOT_READY flag state after locking | *de6e6b0797
net/mlx5e: fix double free in mlx5e_destroy_flow_table | *3d4bba694a
igc: Remove delay during TX ring configuration | *2a587b71c5
drm/panel: simple: Add Powertip PH800480T013 drm_display_mode flags | *547ab8ea86
drm/panel: simple: Add connector_type for innolux_at043tn24 | *13c353dc5c
workqueue: clean up WORK_* constant types, clarify masking | *fc359e5b45
net: lan743x: Don't sleep in atomic context | *dc4a25fa75
io_uring: add reschedule point to handle_tw_list() | *297883bbca
io_uring: Use io_schedule* in cqring wait | *bb2f7e4bfe
block/partition: fix signedness issue for Amiga partitions | *4f91de9a81
rcu-tasks: Simplify trc_read_check_handler() atomic operations | *3a64cd01cd
rcu-tasks: Mark ->trc_reader_special.b.need_qs data races | *058f077d09
rcu-tasks: Mark ->trc_reader_nesting data races | *83be9fd784
tty: serial: fsl_lpuart: add earlycon for imx8ulp platform | *999f3b6104
wireguard: netlink: send staged packets when setting initial private key | *1b71070405
wireguard: queueing: use saner cpu selection wrapping | *ea21392224
netfilter: nf_tables: prevent OOB access in nft_byteorder_eval | *4ae2e50133
netfilter: nf_tables: do not ignore genmask when looking up chain by id | *8289d422f5
netfilter: conntrack: Avoid nf_ct_helper_hash uses after free | *be6478f5cc
netfilter: nf_tables: fix scheduling-while-atomic splat | *a07e415be3
netfilter: nf_tables: unbind non-anonymous set if rule construction fails | *a136b7942a
netfilter: nf_tables: drop map element references from preparation phase | *21cf0d66ef
netfilter: nftables: rename set element data activation/deactivation functions | *237f37f7b9
netfilter: nf_tables: reject unbound chain set before commit phase | *0205dd16ed
netfilter: nf_tables: reject unbound anonymous set before commit phase | *34d09fe49f
netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain | *d53c295c1f
netfilter: nf_tables: fix chain binding transaction logic | *8180fc2fad
netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE | *e546e6ebb1
netfilter: nf_tables: add rescheduling points during loop detection walks | *3f51f1157f
netfilter: nf_tables: use net_generic infra for transaction data | *01248dd651
sh: pgtable-3level: Fix cast to pointer from integer of different size | *87410743b5
block: add overflow checks for Amiga partition support | *f0aec6c403
selftests/bpf: Add verifier test for PTR_TO_MEM spill | *88bffb61bc
tpm, tpm_tis: Claim locality in interrupt handler | *5bf73af8b3
fanotify: disallow mount/sb marks on kernel internal pseudo fs | *5cb46b80ec
fs: no need to check source | *66a0647cdc
leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename | *5d6fbb6245
ARM: orion5x: fix d2net gpio initialization | *9b0f7940e2
ASoC: mediatek: mt8173: Fix snd_soc_component_initialize error path | *1dac8584be
ASoC: mediatek: mt8173: Fix irq error path | *6819bb0b85
btrfs: fix race when deleting quota root from the dirty cow roots list | *a3fbd156bd
btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile | *59efb86711
fs: Lock moved directories | *c5b5e72df1
fs: Establish locking order for unrelated directories | *4b03f503b7
Revert "f2fs: fix potential corruption when moving a directory" | *2b563acd2d
ext4: Remove ext4 locking of moved directory | *5e7d18a52c
fs: avoid empty option when generating legacy mount string | *988a5d7911
jffs2: reduce stack usage in jffs2_build_xattr_subsystem() | *5fada37511
shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs | *79bef379d5
autofs: use flexible array in ioctl structure | *8bf91a8d48
integrity: Fix possible multiple allocation in integrity_inode_get() | *9658a03f80
um: Use HOST_DIR for mrproper | *a4405f6ee0
bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent | *db9439cef0
bcache: Remove unnecessary NULL point check in node allocations | *bcb295778a
bcache: fixup btree_cache_wait list damage | *dc3287206a
mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used. | *191628e2d9
mmc: mmci: Set PROBE_PREFER_ASYNCHRONOUS | *02c8c2b5f6
mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M | *6f9708e5c1
mmc: core: disable TRIM on Kingston EMMC04G-M627 | *28e649dc99
io_uring: wait interruptibly for request completions on exit | *8482ac2e5a
NFSD: add encoding of op_recall flag for write delegation | *8d36cb6d1a
i2c: qup: Add missing unwind goto in qup_i2c_probe() | *e41a8e4615
ALSA: jack: Fix mutex call in snd_jack_report() | *e71714ad24
i2c: xiic: Don't try to handle more interrupt events after error | *b6eefa7a27
i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process() | *023bd9dc41
apparmor: fix missing error check for rhashtable_insert_fast | *d1c946552a
sh: dma: Fix DMA channel offset calculation | *37750131d2
s390/qeth: Fix vipa deletion | *9f5548e421
net: dsa: tag_sja1105: fix MAC DA patching from meta frames | *2758fb81bb
pptp: Fix fib lookup calls. | *0b08ff091f
net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX | *2434a6715f
xsk: Honor SO_BINDTODEVICE on bind | *b785ba0acc
tcp: annotate data races in __tcp_oow_rate_limited() | *73f512bedf
net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode | *9a9d468fdc
powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y | *f970b05c9b
octeontx2-af: Fix mapping for NIX block from CGX connection | *5ded9e8aa5
f2fs: fix error path handling in truncate_dnode() | *358145cc37
mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 | *32b9c8f789
spi: bcm-qspi: return error if neither hif_mspi nor mspi is available | *1f3643f9cf
net: dsa: vsc73xx: fix MTU configuration | *c377451012
Add MODULE_FIRMWARE() for FIRMWARE_TG357766. | *6d2243ab78
sctp: fix potential deadlock on &net->sctp.addr_wq_lock | *620993d5ee
media: cec: i2c: ch7322: also select REGMAP | *f733a7bfe8
rtc: st-lpc: Release some resources in st_rtc_probe() in case of error | *aa70e5dd72
pwm: sysfs: Do not apply state to already disabled PWMs | *8a0413be8a
pwm: imx-tpm: force 'real_period' to be zero in suspend | *e4845cdea7
phy: tegra: xusb: check return value of devm_kzalloc() | *442e1a98bd
mfd: stmpe: Only disable the regulators if they are enabled | *724448d602
KVM: s390: vsie: fix the length of APCB bitmap | *c5e2f6f2bb
mfd: stmfx: Nullify stmfx->vdd in case of error | *30ead8b9bf
mfd: stmfx: Fix error path in stmfx_chip_init | *4d24051473
test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation | *5b31ac1d6d
serial: 8250_omap: Use force_suspend and resume for system suspend | *8e00ae25a3
Revert "usb: common: usb-conn-gpio: Set last role to unknown before initial detection" | *a81e1f22e1
mfd: intel-lpss: Add missing check for platform_get_resource | *1dc07edc01
usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe() | *7ade555ac5
usb: common: usb-conn-gpio: Set last role to unknown before initial detection | *0e9e127835
usb: dwc3: qcom: Fix an error handling path in dwc3_qcom_probe() | *a617145208
usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove() | *96898fb476
KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes | *4e8e838fce
media: atomisp: gmin_platform: fix out_len in gmin_get_config_dsm_var() | *b754ea60e6
media: venus: helpers: Fix ALIGN() of non power of two | *02b2266023
mfd: rt5033: Drop rt5033-battery sub-device | *e52019c095
coresight: Fix loss of connection info when a module is unloaded | *018eddcb6b
kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR | *a59f64a835
serial: 8250: lock port for UART_IER access in omap8250_irq() | *8d65d0a2bf
serial: 8250: lock port for stop_rx() in omap8250_irq() | *d66ddb61fa
usb: hide unused usbfs_notify_suspend/resume functions | *56901de563
usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe() | *6538e5d9f7
extcon: Fix kernel doc of property capability fields to avoid warnings | *dac7d7efcb
extcon: Fix kernel doc of property fields to avoid warnings | *2788a3553f
usb: gadget: u_serial: Add null pointer check in gserial_suspend | *74f8606ddf
usb: dwc3: qcom: Fix potential memory leak | *bdce16c1e6
clk: qcom: ipq6018: fix networking resets | *ee3f494cfc
clk: qcom: reset: support resetting multiple bits | *35fd1a213f
clk: qcom: reset: Allow specifying custom reset delay | *d87ef4e857
media: usb: siano: Fix warning due to null work_func_t function pointer | *300388887c
media: videodev2.h: Fix struct v4l2_input tuner index comment | *5f3f4aa673
media: usb: Check az6007_read() return value | *32809afb60
clk: qcom: gcc-ipq6018: Use floor ops for sdcc clocks | *bb81ca33ac
serial: 8250: omap: Fix freeing of resources on failed register | *ed68e8e22e
sh: j2: Use ioremap() to translate device tree address into kernel memory | *a7890637b3
w1: fix loop in w1_fini() | *a27aeae714
w1: w1_therm: fix locking behavior in convert_t | *cd5ec3ee52
SUNRPC: Fix UAF in svc_tcp_listen_data_ready() | *e4a9b3333e
block: change all __u32 annotations to __be32 in affs_hardblocks.h | *54da6c4c14
block: fix signed int overflow in Amiga partition support | *b6a107c520
phy: tegra: xusb: Clear the driver reference in usb-phy dev | *fac7be49f1
usb: dwc3: gadget: Propagate core init errors to UDC during pullup | *8b0a55b592
USB: serial: option: add LARA-R6 01B PIDs | *810e401b34
io_uring: ensure IOPOLL locks around deferred work | *cd5837564f
hwrng: st - keep clock enabled while hwrng is registered | *557e528255
dax: Introduce alloc_dev_dax_id() | *94a85474f5
dax: Fix dax_mapping_release() use after free | *7c9f5a14d9
NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION | *bab0bf5677
ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard | *cb0cdca5c9
modpost: fix off by one in is_executable_section() | *f0350516b9
crypto: marvell/cesa - Fix type mismatch warning | *b540694455
modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24} | *88978ef7fd
modpost: fix section mismatch message for R_ARM_ABS32 | *31195ee328
crypto: nx - fix build warnings when DEBUG_FS is not enabled | *77471e4912
hwrng: virtio - Fix race on data_avail and actual data | *e8f51401d6
hwrng: virtio - always add a pending request | *ffc5ce9c27
hwrng: virtio - don't waste entropy | *d13ea82bfe
hwrng: virtio - don't wait on cleanup | *5f23dae018
hwrng: virtio - add an internal buffer | *aba192bb31
powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary | *7afd0de0cc
powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo | *7289ca7a51
mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t * | *bfad110188
mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t * | *07c19c0ad4
powerpc/powernv/sriov: perform null check on iov before dereferencing iov | *f3c7b95c99
pinctrl: at91-pio4: check return value of devm_kasprintf() | *b7a38fc3f3
perf dwarf-aux: Fix off-by-one in die_get_varname() | *75a3cb1e23
perf script: Fix allocation of evsel->priv related to per-event dump files | *647c6d35cc
perf script: Fixup 'struct evsel_script' method prefix | *958acb479e
kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures | *5533f0eb0a
pinctrl: cherryview: Return correct value if pin in push-pull mode | *4b63caf86e
perf bench: Add missing setlocale() call to allow usage of %'d style formatting | *345ee85216
perf bench: Use unbuffered output when pipe/tee'ing to a file | *f0d2310f6b
PCI: Add pci_clear_master() stub for non-CONFIG_PCI | *b65fe59b2d
PCI: ftpci100: Release the clock resources | *cb389e8edf
PCI: pciehp: Cancel bringup sequence if card is not present | *b9895a4c95
scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() | *7badf4d6f4
PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free | *d27238fc83
pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors | *ac64019e4d
scsi: qedf: Fix NULL dereference in error handling | *8e9907e921
PCI: cadence: Fix Gen2 Link Retraining process | *07be8e60f2
ASoC: imx-audmix: check return value of devm_kasprintf() | *714ba10a6d
ovl: update of dentry revalidate flags after copy up | *47f4d875aa
drivers: meson: secure-pwrc: always enable DMA domain | *5f149d0538
clk: ti: clkctrl: check return value of kasprintf() | *fd9324fa4d
clk: keystone: sci-clk: check return value of kasprintf() | *0b754f9cfd
clk: si5341: free unused memory on probe failure | *dc8d0178d5
clk: si5341: check return value of {devm_}kasprintf() | *dc3eef6480
clk: si5341: return error if one synth clock registration fails | *0401139800
clk: si5341: Add sysfs properties to allow checking/resetting device faults | *fc813d0573
clk: si5341: Allow different output VDD_SEL values | *f64fcd3acf
clk: cdce925: check return value of kasprintf() | *866d4340c6
clk: vc5: check memory returned by kasprintf() | *c67a55f7cc
drm/msm/dp: Free resources after unregistering them | *c3b63584d8
drm/msm/dpu: do not enable color-management if DSPPs are not available | *f923a58221
ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer | *404e9f741a
clk: tegra: tegra124-emc: Fix potential memory leak | *cb047c13bb
clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe() | *294321349b
clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe | *e749bc5a90
RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context | *9341501e2f
RDMA/bnxt_re: wraparound mbox producer index | *968e27fd03
amdgpu: validate offset_in_bo of drm_amdgpu_gem_va | *e070120e6d
drm/radeon: fix possible division-by-zero errors | *a77b80825b
drm/amdkfd: Fix potential deallocation of previously deallocated memory. | *245aa7c023
ARM: dts: BCM5301X: fix duplex-full => full-duplex | *7e2edb84fe
hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272 | *580e9b987b
hwmon: (adm1275) Allow setting sample averaging | *a3c5d148b7
hwmon: (adm1275) enable adm1272 temperature reporting | *4610efa404
hwmon: (gsc-hwmon) fix fan pwm temperature scaling | *6e12311dce
ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx | *badeb7fe24
ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2 | *17cd31487d
arm64: dts: ti: k3-j7200: Fix physical address of pin | *ce6e0434e5
fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe() | *34e1e2f3cf
arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1 | *6817914c67
ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier | *220f86cc19
RDMA/hns: Fix hns_roce_table_get return value | *9196f44239
RDMA/hns: Clean the hardware related code for HEM | *aa495b927f
RDMA/hns: Use refcount_t APIs for HEM | *de1049dd18
RDMA/hns: Fix coding style issues | *cc1b04b699
RDMA: Remove uverbs_ex_cmd_mask values that are linked to functions | *7dcb9ea3ee
IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate | *6cf8f3d690
IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors | *2d38866a99
IB/hfi1: Use bitmap_zalloc() when applicable | *42b6865bf5
soc/fsl/qe: fix usb.c build errors | *9c14d14066
ARM: dts: meson8: correct uart_B and uart_C clock references | *684a2f180e
ASoC: es8316: Do not set rate constraints for unsupported MCLKs | *d883e16c7f
ASoC: es8316: Increment max value for ALC Capture Target Volume control | *105af71974
memory: brcmstb_dpfe: fix testing array offset after use | *ddc74d6ea3
ARM: dts: stm32: Shorten the AV96 HDMI sound card name | *392ee3cc99
arm64: dts: qcom: apq8096: fix fixed regulator name property | *c85a076215
ARM: omap2: fix missing tick_broadcast() prototype | *aec18da741
ARM: ep93xx: fix missing-prototype warnings | *b574cd7e4d
drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H | *02d8b008ff
arm64: dts: qcom: msm8996: correct camss unit address | *6d103b1cc1
arm64: dts: qcom: msm8994: correct SPMI unit address | *160ac75a5a
arm64: dts: qcom: msm8916: correct camss unit address | *e8b131d216
ARM: dts: gta04: Move model property out of pinctrl node | *b0b180a712
RDMA/bnxt_re: Fix to remove an unnecessary log | *446092f136
RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid | *b54b26ac50
RDMA/bnxt_re: Use unique names while registering interrupts | *11bd3882c3
RDMA/bnxt_re: Fix to remove unnecessary return labels | *7080ef46ad
RDMA/bnxt_re: Disable/kill tasklet only if it is enabled | *2a9895df80
arm64: dts: microchip: sparx5: do not use PSCI on reference boards | *726fdf47c1
bus: ti-sysc: Fix dispc quirk masking bool variables | *8ee24ddf45
ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards | *617a4da09d
drm/panel: sharp-ls043t1le01: adjust mode settings | *3c87c98225
drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks` | *39305592dc
Input: adxl34x - do not hardcode interrupt trigger type | *e629efc6d6
ARM: dts: meson8b: correct uart_B and uart_C clock references | *bd46ade714
ARM: dts: BCM5301X: Drop "clock-names" from the SPI node | *20ecae1af5
drm/vram-helper: fix function names in vram helper doc | *46a34e1459
drm/bridge: tc358768: fix THS_TRAILCNT computation | *f2f7d0a4a2
drm/bridge: tc358768: fix TXTAGOCNT computation | *8e47328fe0
drm/bridge: tc358768: fix THS_ZEROCNT computation | *6b9450723b
drm/bridge: tc358768: fix TCLK_TRAILCNT computation | *33abcfbb17
drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation | *43b2d11ccf
drm/bridge: tc358768: fix TCLK_ZEROCNT computation | *46b7417189
drm/bridge: tc358768: fix PLL target frequency | *825b00c685
drm/bridge: tc358768: fix PLL parameters computation | *1b4f23fdf2
drm/bridge: tc358768: always enable HS video mode | *4e0fd4f54b
Input: drv260x - sleep between polling GO bit | *2780d58448
drm/amd/display: Explicitly specify update type per plane info change | *b2213fc60b
radeon: avoid double free in ci_dpm_init() | *472a615e66
netlink: Add __sock_i_ino() for __netlink_diag_dump(). | *d10b380369
ipvlan: Fix return value of ipvlan_queue_xmit() | *5215c00968
netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value. | *9bdcda7aba
netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one | *36e07e8acf
lib/ts_bm: reset initial match offset for every block of text | *96f2c6f272
net: nfc: Fix use-after-free caused by nfc_llcp_find_local | *a3a1550c4d
nfc: llcp: simplify llcp_sock_connect() error paths | *cb1aa7cc56
sfc: fix crash when reading stats while NIC is resetting | *6ccfec84f0
net: axienet: Move reset before 64-bit DMA detection | *bccc7ace12
gtp: Fix use-after-free in __gtp_encap_destroy(). | *4d9cd4b330
selftests: rtnetlink: remove netdevsim device after ipsec offload test | *44db85c6e1
netlink: do not hard code device address lenth in fdb dumps | *cde7b90e05
netlink: fix potential deadlock in netlink_set_err() | *0c9e48428f
net: stmmac: fix double serdes powerdown | *1ba91ffa1a
igc: Fix race condition in PTP tx code | *660d4e73ef
wifi: ath9k: convert msecs to jiffies where needed | *150ca0768b
wifi: cfg80211: rewrite merging of inherited elements | *4e321c18ef
wifi: iwlwifi: pull from TXQs with softirqs disabled | *2715617c2a
rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO | *581401cd3c
wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key() | *6b22c2c649
memstick r592: make memstick_debug_get_tpc_name() static | *6cb477e722
kexec: fix a memory leak in crash_shrink_memory() | *fdb07728d8
watchdog/perf: more properly prevent false positives with turbo modes | *ac23d7f414
watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config | *22da8363e3
wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown | *b2aeb97fd4
wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled | *1044187e72
wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes | *c10c6ea9b3
wifi: ray_cs: Fix an error handling path in ray_probe() | *8825991838
wifi: ray_cs: Drop useless status variable in parse_addr() | *a66e3fd380
wifi: ray_cs: Utilize strnlen() in parse_addr() | *18d71562f7
wifi: wl3501_cs: Fix an error handling path in wl3501_probe() | *b6f793de61
wl3501_cs: use eth_hw_addr_set() | *cbd44a9e1c
net: create netdev->dev_addr assignment helpers | *13cf0e3894
wl3501_cs: Fix misspelling and provide missing documentation | *5512db9bd4
wifi: atmel: Fix an error handling path in atmel_probe() | *86ebbcbdc7
wifi: orinoco: Fix an error handling path in orinoco_cs_probe() | *fb7d78feb5
wifi: orinoco: Fix an error handling path in spectrum_cs_probe() | *8782dc2504
regulator: core: Streamline debugfs operations | *92bcd84941
regulator: core: Fix more error checking for debugfs_create_dir() | *78f390aa0e
bpftool: JIT limited misreported as negative value on aarch64 | *107e849f3c
nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect() | *0be9de2ea0
nfc: constify several pointers to u8, char and sk_buff | *ef7fe1b5c4
libbpf: fix offsetof() and container_of() to work with CO-RE | *b190ced50a
sctp: add bpf_bypass_getsockopt proto callback | *08f61a3491
bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE | *c62e2ac02e
wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan() | *3ae910a375
wifi: wilc1000: fix for absent RSN capabilities WFA testcase | *795ef55030
spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG | *bd3e880dce
samples/bpf: Fix buffer overflow in tcp_basertt | *250efb4d3f
wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx | *0f3f41b475
wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation | *cbd0f41a53
igc: Enable and fix RX hash usage by netstack | *a14cb30726
pstore/ram: Add check for kstrdup | *628709a057
ima: Fix build warnings | *16ec59c03a
evm: Complete description of evm_inode_setattr() | *cba85e1cb7
x86/mm: Fix __swp_entry_to_pte() for Xen PV guests | *365f546de5
perf/ibs: Fix interface via core pmu events | *604d6a5ff7
rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale | *d414e24d15
rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup() | *ecc5e6dbc2
rcuscale: Move shutdown from wait_event() to wait_event_idle() | *b62c816bdb
rcuscale: Always log error message | *8cd9917c13
rcuscale: Console output claims too few grace periods | *456f783b83
thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe() | *bacc49b2d5
cpufreq: intel_pstate: Fix energy_performance_preference for passive | *a8bfe52755
ARM: 9303/1: kprobes: avoid missing-declaration warnings | *a50b75c13d
powercap: RAPL: Fix CONFIG_IOSF_MBI dependency | *23f6efd226
perf/arm-cmn: Fix DTC reset | *b69868d50d
PM: domains: fix integer overflow issues in genpd_parse_state() | *ebdff09865
clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe | *a2f83a4c7c
tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode(). | *f1be1ed32d
posix-timers: Prevent RT livelock in itimer_delete() | *b315d57da4
irqchip/jcore-aic: Fix missing allocation of IRQ descriptors | *495cee0e14
irqchip/jcore-aic: Kill use of irq_create_strict_mappings() | *9d1cccdad0
md/raid10: fix io loss while replacement replace rdev | *2990e2ece1
md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request | *b1d8f38310
md/raid10: fix wrong setting of max_corr_read_errors | *b3a0bc4a01
md/raid10: fix overflow of md/safe_mode_delay | *39fa14e824
md/raid10: check slab-out-of-bounds in md_bitmap_get_counter | *8563b58a43
blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost | *3db97cc79b
x86/resctrl: Only show tasks' pid in current pid namespace | *1a82005f3f
fs: pipe: reveal missing function protoypes | *f70407e8e0
nubus: Partially revert proc_create_single_data() conversion | *0336c8f072
drm/amdgpu: Validate VM ioctl flags. | *c484b65f93
scripts/tags.sh: Resolve gtags empty index generation | *649104c834
Revert "thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe" | *02a4c4e225
HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651. | *9598a647ec
HID: wacom: Use ktime_t rather than int when dealing with timestamps | *2bf70b88cc
fbdev: imsttfb: Fix use after free bug in imsttfb_probe | *5b813734a0
video: imsttfb: check for ioremap() failures | *02fbf62df9
can: isotp: isotp_sendmsg(): fix return error fix on TX path | *8667f71131
x86/smp: Use dedicated cache-line for mwait_play_dead() | *1d0fe3fb5d
media: atomisp: fix "variable dereferenced before check 'asd'" * |9710ae86ef
Merge branch 'android12-5.10' into branch 'android12-5.10-lts' * |db023c4bb0
Merge 5.10.187 into android12-5.10-lts |\| | *140d69b4e4
Linux 5.10.187 | *93df00f9d4
x86/cpu/amd: Add a Zenbleed fix | *191b8f9b0e
x86/cpu/amd: Move the errata checking functionality up | *113ce5ed59
x86/microcode/AMD: Load late on both threads too * |44da38b39c
ANDROID: GKI: fix up sysctl_vals ABI change. * |c9606079a5
Revert "gpio: Allow per-parent interrupt data" * |fc3985cbee
Revert "gpiolib: Fix GPIO chip IRQ initialization restriction" * |02a1b32243
Merge 5.10.186 into android12-5.10-lts |/ *381518b4a9
Linux 5.10.186 *29917a20be
bpf/btf: Accept function names that contain dots *8b7454dd98
netfilter: nf_tables: hold mutex on netns pre_exit path *9e8d927cfa
netfilter: nf_tables: validate registers coming from userspace. *f19a4818a9
netfilter: nftables: statify nft_parse_register() *42997367cb
i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle *5a257f3553
x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys *d8efc77f23
drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl *485fe16508
drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl *0b0fdc43b2
drm/exynos: vidi: fix a wrong error return *32134e7a0f
ARM: dts: Fix erroneous ADS touchscreen polarities *79cf5657be
s390/purgatory: disable branch profiling *a819de62ec
ASoC: nau8824: Add quirk to active-high jack-detect *fa08753c2d
ASoC: simple-card: Add missing of_node_put() in case of error *9138ed7e2b
spi: lpspi: disable lpspi module irq in DMA mode *97b6c4c1d1
s390/cio: unregister device when the only path is gone *fe949c1662
Input: soc_button_array - add invalid acpi_index DMI quirk handling *eaf1fa9452
usb: gadget: udc: fix NULL dereference in remove() *7d1a0733a5
nfcsim.c: Fix error checking for debugfs_create_dir *dc357c0787
media: cec: core: don't set last_initiator if tx in progress *c13573032b
arm64: Add missing Set/Way CMO encodings *49a2b18f49
HID: wacom: Add error check to wacom_parse_and_register() *2b43198de0
scsi: target: iscsi: Prevent login threads from racing between each other *75aa3f255c
gpiolib: Fix GPIO chip IRQ initialization restriction *304802e5b0
gpio: Allow per-parent interrupt data *bc75968b49
sch_netem: acquire qdisc lock in netem_change() *caddeadd0d
Revert "net: phy: dp83867: perform soft reset and retain established link" *5702afa2c3
netfilter: nfnetlink_osf: fix module autoload *3d5c09c782
netfilter: nf_tables: disallow element updates of bound anonymous sets *2a90da8e0d
netfilter: nft_set_pipapo: .walk does not deal with generations *792bfe26a6
be2net: Extend xmit workaround to BE3 chip *cebb5cee09
net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch *7a1ae00005
ipvs: align inner_mac_header for encapsulation *f2547bc716
mmc: usdhi60rol0: fix deferred probing *4a99e35c5a
mmc: sh_mmcif: fix deferred probing *c2278de138
mmc: sdhci-acpi: fix deferred probing *f6e176ef89
mmc: owl: fix deferred probing *f29d0ab0e6
mmc: omap_hsmmc: fix deferred probing *65d9318e3d
mmc: omap: fix deferred probing *9ad3c21fb6
mmc: mvsdio: fix deferred probing *9b0417fd40
mmc: mtk-sd: fix deferred probing *ced13bc50e
net: qca_spi: Avoid high load if QCA7000 is not available *b1b9c81e29
xfrm: Linearize the skb after offloading if needed. *31cd0d4a44
selftests: net: fcnal-test: check if FIPS mode is enabled *2af75a36af
selftests: net: vrf-xfrm-tests: change authentication and encryption algos *07fbbddae5
xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets *562800447f
bpf: Fix verifier id tracking of scalars on spill *3b0a96db67
bpf: track immediate values written to stack by BPF_ST instruction *bff7824db6
xfrm: Ensure policies always checked on XFRM-I input path *01af67ed83
xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c *cdaa6e1105
xfrm: Treat already-verified secpath entries as optional *47be2931c4
ieee802154: hwsim: Fix possible memory leaks *051d642133
memfd: check for non-NULL file_seals in memfd_create() syscall *1ac6e9ee84
sysctl: move some boundary constants from sysctl.c to sysctl_vals *e1aa3fe3e2
mm/pagealloc: sysctl: change watermark_scale_factor max limit to 30% *ad10dd2113
x86/mm: Avoid using set_pgd() outside of real PGD pages *4de2093674
nilfs2: prevent general protection fault in nilfs_clear_dirty_page() *3845c38417
io_uring/net: disable partial retries for recvmsg with cmsg *826ee9fa36
io_uring/net: clear msg_controllen on partial sendmsg retry *5fdea4468f
io_uring/net: save msghdr->msg_control for retries *5a7101d8fa
writeback: fix dereferencing NULL mapping->host on writeback_page_template *f00cd687c2
regmap: spi-avmm: Fix regmap_bus max_raw_write *bc35f93e4b
regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK *5938470f9c
ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN *2e454015ca
mmc: mmci: stm32: fix max busy timeout calculation *1be288fd3b
mmc: meson-gx: remove redundant mmc_request_done() call from irq context *1b97630cd9
mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916 *63608437a8
cgroup: Do not corrupt task iteration when rebinding subsystem *988d06f5eb
PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic *8f2d5ebdfe
PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev *8b74846769
Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally" *79ceb758e3
PCI: hv: Fix a race condition bug in hv_pci_query_relations() *8b8c9812c0
Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs *b435298349
nilfs2: fix buffer corruption due to concurrent device reads *524a2c0bcf
selftests: mptcp: join: skip check if MIB counter not supported *e508d9cef8
selftests: mptcp: pm nl: remove hardcoded default limits *4c4ca42418
selftests: mptcp: lib: skip if not below kernel version *6d20cfbc57
selftests: mptcp: lib: skip if missing symbol *3cc7935d32
tick/common: Align tick period during sched_timer setup *db4ab0c97a
tracing: Add tracing_reset_all_online_cpus_unlocked() function *9ced730490
net/sched: Refactor qdisc_graft() for ingress and clsact Qdiscs *b1b42fff8a
drm/amd/display: fix the system hang while disable PSR Change-Id: I0c8675eb9b259cf7631e968dd66c31d3e16d31e9 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Signed-off-by: Todd Kjos <tkjos@google.com>
This commit is contained in:
commit
3cf9365660
@ -510,17 +510,18 @@ Description: information about CPUs heterogeneity.
|
||||
cpu_capacity: capacity of cpu#.
|
||||
|
||||
What: /sys/devices/system/cpu/vulnerabilities
|
||||
/sys/devices/system/cpu/vulnerabilities/meltdown
|
||||
/sys/devices/system/cpu/vulnerabilities/spectre_v1
|
||||
/sys/devices/system/cpu/vulnerabilities/spectre_v2
|
||||
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
|
||||
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
|
||||
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
|
||||
/sys/devices/system/cpu/vulnerabilities/l1tf
|
||||
/sys/devices/system/cpu/vulnerabilities/mds
|
||||
/sys/devices/system/cpu/vulnerabilities/srbds
|
||||
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
|
||||
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
|
||||
/sys/devices/system/cpu/vulnerabilities/meltdown
|
||||
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
|
||||
/sys/devices/system/cpu/vulnerabilities/retbleed
|
||||
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
|
||||
/sys/devices/system/cpu/vulnerabilities/spectre_v1
|
||||
/sys/devices/system/cpu/vulnerabilities/spectre_v2
|
||||
/sys/devices/system/cpu/vulnerabilities/srbds
|
||||
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
|
||||
Date: January 2018
|
||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||
Description: Information about CPU vulnerabilities
|
||||
|
109
Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
Normal file
109
Documentation/admin-guide/hw-vuln/gather_data_sampling.rst
Normal file
@ -0,0 +1,109 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
GDS - Gather Data Sampling
|
||||
==========================
|
||||
|
||||
Gather Data Sampling is a hardware vulnerability which allows unprivileged
|
||||
speculative access to data which was previously stored in vector registers.
|
||||
|
||||
Problem
|
||||
-------
|
||||
When a gather instruction performs loads from memory, different data elements
|
||||
are merged into the destination vector register. However, when a gather
|
||||
instruction that is transiently executed encounters a fault, stale data from
|
||||
architectural or internal vector registers may get transiently forwarded to the
|
||||
destination vector register instead. This will allow a malicious attacker to
|
||||
infer stale data using typical side channel techniques like cache timing
|
||||
attacks. GDS is a purely sampling-based attack.
|
||||
|
||||
The attacker uses gather instructions to infer the stale vector register data.
|
||||
The victim does not need to do anything special other than use the vector
|
||||
registers. The victim does not need to use gather instructions to be
|
||||
vulnerable.
|
||||
|
||||
Because the buffers are shared between Hyper-Threads cross Hyper-Thread attacks
|
||||
are possible.
|
||||
|
||||
Attack scenarios
|
||||
----------------
|
||||
Without mitigation, GDS can infer stale data across virtually all
|
||||
permission boundaries:
|
||||
|
||||
Non-enclaves can infer SGX enclave data
|
||||
Userspace can infer kernel data
|
||||
Guests can infer data from hosts
|
||||
Guest can infer guest from other guests
|
||||
Users can infer data from other users
|
||||
|
||||
Because of this, it is important to ensure that the mitigation stays enabled in
|
||||
lower-privilege contexts like guests and when running outside SGX enclaves.
|
||||
|
||||
The hardware enforces the mitigation for SGX. Likewise, VMMs should ensure
|
||||
that guests are not allowed to disable the GDS mitigation. If a host erred and
|
||||
allowed this, a guest could theoretically disable GDS mitigation, mount an
|
||||
attack, and re-enable it.
|
||||
|
||||
Mitigation mechanism
|
||||
--------------------
|
||||
This issue is mitigated in microcode. The microcode defines the following new
|
||||
bits:
|
||||
|
||||
================================ === ============================
|
||||
IA32_ARCH_CAPABILITIES[GDS_CTRL] R/O Enumerates GDS vulnerability
|
||||
and mitigation support.
|
||||
IA32_ARCH_CAPABILITIES[GDS_NO] R/O Processor is not vulnerable.
|
||||
IA32_MCU_OPT_CTRL[GDS_MITG_DIS] R/W Disables the mitigation
|
||||
0 by default.
|
||||
IA32_MCU_OPT_CTRL[GDS_MITG_LOCK] R/W Locks GDS_MITG_DIS=0. Writes
|
||||
to GDS_MITG_DIS are ignored
|
||||
Can't be cleared once set.
|
||||
================================ === ============================
|
||||
|
||||
GDS can also be mitigated on systems that don't have updated microcode by
|
||||
disabling AVX. This can be done by setting gather_data_sampling="force" or
|
||||
"clearcpuid=avx" on the kernel command-line.
|
||||
|
||||
If used, these options will disable AVX use by turning off XSAVE YMM support.
|
||||
However, the processor will still enumerate AVX support. Userspace that
|
||||
does not follow proper AVX enumeration to check both AVX *and* XSAVE YMM
|
||||
support will break.
|
||||
|
||||
Mitigation control on the kernel command line
|
||||
---------------------------------------------
|
||||
The mitigation can be disabled by setting "gather_data_sampling=off" or
|
||||
"mitigations=off" on the kernel command line. Not specifying either will default
|
||||
to the mitigation being enabled. Specifying "gather_data_sampling=force" will
|
||||
use the microcode mitigation when available or disable AVX on affected systems
|
||||
where the microcode hasn't been updated to include the mitigation.
|
||||
|
||||
GDS System Information
|
||||
------------------------
|
||||
The kernel provides vulnerability status information through sysfs. For
|
||||
GDS this can be accessed by the following sysfs file:
|
||||
|
||||
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
|
||||
|
||||
The possible values contained in this file are:
|
||||
|
||||
============================== =============================================
|
||||
Not affected Processor not vulnerable.
|
||||
Vulnerable Processor vulnerable and mitigation disabled.
|
||||
Vulnerable: No microcode Processor vulnerable and microcode is missing
|
||||
mitigation.
|
||||
Mitigation: AVX disabled,
|
||||
no microcode Processor is vulnerable and microcode is missing
|
||||
mitigation. AVX disabled as mitigation.
|
||||
Mitigation: Microcode Processor is vulnerable and mitigation is in
|
||||
effect.
|
||||
Mitigation: Microcode (locked) Processor is vulnerable and mitigation is in
|
||||
effect and cannot be disabled.
|
||||
Unknown: Dependent on
|
||||
hypervisor status Running on a virtual guest processor that is
|
||||
affected but with no way to know if host
|
||||
processor is mitigated or vulnerable.
|
||||
============================== =============================================
|
||||
|
||||
GDS Default mitigation
|
||||
----------------------
|
||||
The updated microcode will enable the mitigation by default. The kernel's
|
||||
default action is to leave the mitigation enabled.
|
@ -16,3 +16,5 @@ are configurable at compile, boot or run time.
|
||||
multihit.rst
|
||||
special-register-buffer-data-sampling.rst
|
||||
processor_mmio_stale_data.rst
|
||||
gather_data_sampling.rst
|
||||
srso
|
||||
|
133
Documentation/admin-guide/hw-vuln/srso.rst
Normal file
133
Documentation/admin-guide/hw-vuln/srso.rst
Normal file
@ -0,0 +1,133 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
Speculative Return Stack Overflow (SRSO)
|
||||
========================================
|
||||
|
||||
This is a mitigation for the speculative return stack overflow (SRSO)
|
||||
vulnerability found on AMD processors. The mechanism is by now the well
|
||||
known scenario of poisoning CPU functional units - the Branch Target
|
||||
Buffer (BTB) and Return Address Predictor (RAP) in this case - and then
|
||||
tricking the elevated privilege domain (the kernel) into leaking
|
||||
sensitive data.
|
||||
|
||||
AMD CPUs predict RET instructions using a Return Address Predictor (aka
|
||||
Return Address Stack/Return Stack Buffer). In some cases, a non-architectural
|
||||
CALL instruction (i.e., an instruction predicted to be a CALL but is
|
||||
not actually a CALL) can create an entry in the RAP which may be used
|
||||
to predict the target of a subsequent RET instruction.
|
||||
|
||||
The specific circumstances that lead to this varies by microarchitecture
|
||||
but the concern is that an attacker can mis-train the CPU BTB to predict
|
||||
non-architectural CALL instructions in kernel space and use this to
|
||||
control the speculative target of a subsequent kernel RET, potentially
|
||||
leading to information disclosure via a speculative side-channel.
|
||||
|
||||
The issue is tracked under CVE-2023-20569.
|
||||
|
||||
Affected processors
|
||||
-------------------
|
||||
|
||||
AMD Zen, generations 1-4. That is, all families 0x17 and 0x19. Older
|
||||
processors have not been investigated.
|
||||
|
||||
System information and options
|
||||
------------------------------
|
||||
|
||||
First of all, it is required that the latest microcode be loaded for
|
||||
mitigations to be effective.
|
||||
|
||||
The sysfs file showing SRSO mitigation status is:
|
||||
|
||||
/sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
|
||||
|
||||
The possible values in this file are:
|
||||
|
||||
- 'Not affected' The processor is not vulnerable
|
||||
|
||||
- 'Vulnerable: no microcode' The processor is vulnerable, no
|
||||
microcode extending IBPB functionality
|
||||
to address the vulnerability has been
|
||||
applied.
|
||||
|
||||
- 'Mitigation: microcode' Extended IBPB functionality microcode
|
||||
patch has been applied. It does not
|
||||
address User->Kernel and Guest->Host
|
||||
transitions protection but it does
|
||||
address User->User and VM->VM attack
|
||||
vectors.
|
||||
|
||||
(spec_rstack_overflow=microcode)
|
||||
|
||||
- 'Mitigation: safe RET' Software-only mitigation. It complements
|
||||
the extended IBPB microcode patch
|
||||
functionality by addressing User->Kernel
|
||||
and Guest->Host transitions protection.
|
||||
|
||||
Selected by default or by
|
||||
spec_rstack_overflow=safe-ret
|
||||
|
||||
- 'Mitigation: IBPB' Similar protection as "safe RET" above
|
||||
but employs an IBPB barrier on privilege
|
||||
domain crossings (User->Kernel,
|
||||
Guest->Host).
|
||||
|
||||
(spec_rstack_overflow=ibpb)
|
||||
|
||||
- 'Mitigation: IBPB on VMEXIT' Mitigation addressing the cloud provider
|
||||
scenario - the Guest->Host transitions
|
||||
only.
|
||||
|
||||
(spec_rstack_overflow=ibpb-vmexit)
|
||||
|
||||
In order to exploit vulnerability, an attacker needs to:
|
||||
|
||||
- gain local access on the machine
|
||||
|
||||
- break kASLR
|
||||
|
||||
- find gadgets in the running kernel in order to use them in the exploit
|
||||
|
||||
- potentially create and pin an additional workload on the sibling
|
||||
thread, depending on the microarchitecture (not necessary on fam 0x19)
|
||||
|
||||
- run the exploit
|
||||
|
||||
Considering the performance implications of each mitigation type, the
|
||||
default one is 'Mitigation: safe RET' which should take care of most
|
||||
attack vectors, including the local User->Kernel one.
|
||||
|
||||
As always, the user is advised to keep her/his system up-to-date by
|
||||
applying software updates regularly.
|
||||
|
||||
The default setting will be reevaluated when needed and especially when
|
||||
new attack vectors appear.
|
||||
|
||||
As one can surmise, 'Mitigation: safe RET' does come at the cost of some
|
||||
performance depending on the workload. If one trusts her/his userspace
|
||||
and does not want to suffer the performance impact, one can always
|
||||
disable the mitigation with spec_rstack_overflow=off.
|
||||
|
||||
Similarly, 'Mitigation: IBPB' is another full mitigation type employing
|
||||
an indrect branch prediction barrier after having applied the required
|
||||
microcode patch for one's system. This mitigation comes also at
|
||||
a performance cost.
|
||||
|
||||
Mitigation: safe RET
|
||||
--------------------
|
||||
|
||||
The mitigation works by ensuring all RET instructions speculate to
|
||||
a controlled location, similar to how speculation is controlled in the
|
||||
retpoline sequence. To accomplish this, the __x86_return_thunk forces
|
||||
the CPU to mispredict every function return using a 'safe return'
|
||||
sequence.
|
||||
|
||||
To ensure the safety of this mitigation, the kernel must ensure that the
|
||||
safe return sequence is itself free from attacker interference. In Zen3
|
||||
and Zen4, this is accomplished by creating a BTB alias between the
|
||||
untraining function srso_untrain_ret_alias() and the safe return
|
||||
function srso_safe_ret_alias() which results in evicting a potentially
|
||||
poisoned BTB entry and using that safe one for all function returns.
|
||||
|
||||
In older Zen1 and Zen2, this is accomplished using a reinterpretation
|
||||
technique similar to Retbleed one: srso_untrain_ret() and
|
||||
srso_safe_ret().
|
@ -1484,6 +1484,26 @@
|
||||
Format: off | on
|
||||
default: on
|
||||
|
||||
gather_data_sampling=
|
||||
[X86,INTEL] Control the Gather Data Sampling (GDS)
|
||||
mitigation.
|
||||
|
||||
Gather Data Sampling is a hardware vulnerability which
|
||||
allows unprivileged speculative access to data which was
|
||||
previously stored in vector registers.
|
||||
|
||||
This issue is mitigated by default in updated microcode.
|
||||
The mitigation may have a performance impact but can be
|
||||
disabled. On systems without the microcode mitigation
|
||||
disabling AVX serves as a mitigation.
|
||||
|
||||
force: Disable AVX to mitigate systems without
|
||||
microcode mitigation. No effect if the microcode
|
||||
mitigation is present. Known to cause crashes in
|
||||
userspace with buggy AVX enumeration.
|
||||
|
||||
off: Disable GDS mitigation.
|
||||
|
||||
gcov_persist= [GCOV] When non-zero (default), profiling data for
|
||||
kernel modules is saved and remains accessible via
|
||||
debugfs, even when the module is unloaded/reloaded.
|
||||
@ -2949,22 +2969,23 @@
|
||||
Disable all optional CPU mitigations. This
|
||||
improves system performance, but it may also
|
||||
expose users to several CPU vulnerabilities.
|
||||
Equivalent to: nopti [X86,PPC]
|
||||
Equivalent to: gather_data_sampling=off [X86]
|
||||
kpti=0 [ARM64]
|
||||
nospectre_v1 [X86,PPC]
|
||||
nobp=0 [S390]
|
||||
nospectre_v2 [X86,PPC,S390,ARM64]
|
||||
spectre_v2_user=off [X86]
|
||||
spec_store_bypass_disable=off [X86,PPC]
|
||||
ssbd=force-off [ARM64]
|
||||
kvm.nx_huge_pages=off [X86]
|
||||
l1tf=off [X86]
|
||||
mds=off [X86]
|
||||
tsx_async_abort=off [X86]
|
||||
kvm.nx_huge_pages=off [X86]
|
||||
mmio_stale_data=off [X86]
|
||||
no_entry_flush [PPC]
|
||||
no_uaccess_flush [PPC]
|
||||
mmio_stale_data=off [X86]
|
||||
nobp=0 [S390]
|
||||
nopti [X86,PPC]
|
||||
nospectre_v1 [X86,PPC]
|
||||
nospectre_v2 [X86,PPC,S390,ARM64]
|
||||
retbleed=off [X86]
|
||||
spec_store_bypass_disable=off [X86,PPC]
|
||||
spectre_v2_user=off [X86]
|
||||
ssbd=force-off [ARM64]
|
||||
tsx_async_abort=off [X86]
|
||||
|
||||
Exceptions:
|
||||
This does not have any effect on
|
||||
@ -5222,6 +5243,17 @@
|
||||
Not specifying this option is equivalent to
|
||||
spectre_v2_user=auto.
|
||||
|
||||
spec_rstack_overflow=
|
||||
[X86] Control RAS overflow mitigation on AMD Zen CPUs
|
||||
|
||||
off - Disable mitigation
|
||||
microcode - Enable microcode mitigation only
|
||||
safe-ret - Enable sw-only safe RET mitigation (default)
|
||||
ibpb - Enable mitigation by issuing IBPB on
|
||||
kernel entry
|
||||
ibpb-vmexit - Issue IBPB only on VMEXIT
|
||||
(cloud-specific mitigation)
|
||||
|
||||
spec_store_bypass_disable=
|
||||
[HW] Control Speculative Store Bypass (SSB) Disable mitigation
|
||||
(Speculative Store Bypass vulnerability)
|
||||
|
@ -970,7 +970,7 @@ how much memory needs to be free before kswapd goes back to sleep.
|
||||
|
||||
The unit is in fractions of 10,000. The default value of 10 means the
|
||||
distances between watermarks are 0.1% of the available memory in the
|
||||
node/system. The maximum value is 1000, or 10% of memory.
|
||||
node/system. The maximum value is 3000, or 30% of memory.
|
||||
|
||||
A high rate of threads entering direct reclaim (allocstall) or kswapd
|
||||
going to sleep prematurely (kswapd_low_wmark_hit_quickly) can indicate
|
||||
|
@ -196,7 +196,7 @@ information and return operation results::
|
||||
struct args_ismountpoint ismountpoint;
|
||||
};
|
||||
|
||||
char path[0];
|
||||
char path[];
|
||||
};
|
||||
|
||||
The ioctlfd field is a mount point file descriptor of an autofs mount
|
||||
|
@ -467,7 +467,7 @@ Each ioctl is passed a pointer to an `autofs_dev_ioctl` structure::
|
||||
struct args_ismountpoint ismountpoint;
|
||||
};
|
||||
|
||||
char path[0];
|
||||
char path[];
|
||||
};
|
||||
|
||||
For the **OPEN_MOUNT** and **IS_MOUNTPOINT** commands, the target
|
||||
|
@ -22,12 +22,11 @@ exclusive.
|
||||
3) object removal. Locking rules: caller locks parent, finds victim,
|
||||
locks victim and calls the method. Locks are exclusive.
|
||||
|
||||
4) rename() that is _not_ cross-directory. Locking rules: caller locks
|
||||
the parent and finds source and target. In case of exchange (with
|
||||
RENAME_EXCHANGE in flags argument) lock both. In any case,
|
||||
if the target already exists, lock it. If the source is a non-directory,
|
||||
lock it. If we need to lock both, lock them in inode pointer order.
|
||||
Then call the method. All locks are exclusive.
|
||||
4) rename() that is _not_ cross-directory. Locking rules: caller locks the
|
||||
parent and finds source and target. We lock both (provided they exist). If we
|
||||
need to lock two inodes of different type (dir vs non-dir), we lock directory
|
||||
first. If we need to lock two inodes of the same type, lock them in inode
|
||||
pointer order. Then call the method. All locks are exclusive.
|
||||
NB: we might get away with locking the source (and target in exchange
|
||||
case) shared.
|
||||
|
||||
@ -44,15 +43,17 @@ All locks are exclusive.
|
||||
rules:
|
||||
|
||||
* lock the filesystem
|
||||
* lock parents in "ancestors first" order.
|
||||
* lock parents in "ancestors first" order. If one is not ancestor of
|
||||
the other, lock them in inode pointer order.
|
||||
* find source and target.
|
||||
* if old parent is equal to or is a descendent of target
|
||||
fail with -ENOTEMPTY
|
||||
* if new parent is equal to or is a descendent of source
|
||||
fail with -ELOOP
|
||||
* If it's an exchange, lock both the source and the target.
|
||||
* If the target exists, lock it. If the source is a non-directory,
|
||||
lock it. If we need to lock both, do so in inode pointer order.
|
||||
* Lock both the source and the target provided they exist. If we
|
||||
need to lock two inodes of different type (dir vs non-dir), we lock
|
||||
the directory first. If we need to lock two inodes of the same type,
|
||||
lock them in inode pointer order.
|
||||
* call the method.
|
||||
|
||||
All ->i_rwsem are taken exclusive. Again, we might get away with locking
|
||||
@ -66,8 +67,9 @@ If no directory is its own ancestor, the scheme above is deadlock-free.
|
||||
|
||||
Proof:
|
||||
|
||||
First of all, at any moment we have a partial ordering of the
|
||||
objects - A < B iff A is an ancestor of B.
|
||||
First of all, at any moment we have a linear ordering of the
|
||||
objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
|
||||
of A and ptr(A) < ptr(B)).
|
||||
|
||||
That ordering can change. However, the following is true:
|
||||
|
||||
|
@ -433,6 +433,15 @@ start N bytes into the buffer leaving the first N bytes for the
|
||||
application to use. The final option is the flags field, but it will
|
||||
be dealt with in separate sections for each UMEM flag.
|
||||
|
||||
SO_BINDTODEVICE setsockopt
|
||||
--------------------------
|
||||
|
||||
This is a generic SOL_SOCKET option that can be used to tie AF_XDP
|
||||
socket to a particular network interface. It is useful when a socket
|
||||
is created by a privileged process and passed to a non-privileged one.
|
||||
Once the option is set, kernel will refuse attempts to bind that socket
|
||||
to a different interface. Updating the value requires CAP_NET_RAW.
|
||||
|
||||
XDP_STATISTICS getsockopt
|
||||
-------------------------
|
||||
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL = 185
|
||||
SUBLEVEL = 189
|
||||
EXTRAVERSION =
|
||||
NAME = Dare mighty things
|
||||
|
||||
|
@ -290,6 +290,9 @@ config ARCH_HAS_DMA_SET_UNCACHED
|
||||
config ARCH_HAS_DMA_CLEAR_UNCACHED
|
||||
bool
|
||||
|
||||
config ARCH_HAS_CPU_FINALIZE_INIT
|
||||
bool
|
||||
|
||||
# Select if arch init_task must go in the __init_task_data section
|
||||
config ARCH_TASK_STRUCT_ON_STACK
|
||||
bool
|
||||
|
@ -1,20 +0,0 @@
|
||||
/*
|
||||
* include/asm-alpha/bugs.h
|
||||
*
|
||||
* Copyright (C) 1994 Linus Torvalds
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*/
|
||||
|
||||
/*
|
||||
* I don't know of any alpha bugs yet.. Nice chip
|
||||
*/
|
||||
|
||||
static void check_bugs(void)
|
||||
{
|
||||
}
|
@ -241,8 +241,10 @@ pmd_page_vaddr(pmd_t pmd)
|
||||
#define pud_page(pud) (mem_map + ((pud_val(pud) & _PFN_MASK) >> 32))
|
||||
#endif
|
||||
|
||||
extern inline unsigned long pud_page_vaddr(pud_t pgd)
|
||||
{ return PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT)); }
|
||||
extern inline pmd_t *pud_pgtable(pud_t pgd)
|
||||
{
|
||||
return (pmd_t *)(PAGE_OFFSET + ((pud_val(pgd) & _PFN_MASK) >> (32-PAGE_SHIFT)));
|
||||
}
|
||||
|
||||
extern inline int pte_none(pte_t pte) { return !pte_val(pte); }
|
||||
extern inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_VALID; }
|
||||
@ -292,7 +294,7 @@ extern inline pte_t pte_mkyoung(pte_t pte) { pte_val(pte) |= __ACCESS_BITS; retu
|
||||
/* Find an entry in the second-level page table.. */
|
||||
extern inline pmd_t * pmd_offset(pud_t * dir, unsigned long address)
|
||||
{
|
||||
pmd_t *ret = (pmd_t *) pud_page_vaddr(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1));
|
||||
pmd_t *ret = pud_pgtable(*dir) + ((address >> PMD_SHIFT) & (PTRS_PER_PAGE - 1));
|
||||
smp_rmb(); /* see above */
|
||||
return ret;
|
||||
}
|
||||
|
@ -8,6 +8,10 @@
|
||||
|
||||
#include <asm/dwarf.h>
|
||||
|
||||
#define ASM_NL ` /* use '`' to mark new line in macro */
|
||||
#define __ALIGN .align 4
|
||||
#define __ALIGN_STR __stringify(__ALIGN)
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
.macro ST2 e, o, off
|
||||
@ -28,10 +32,6 @@
|
||||
#endif
|
||||
.endm
|
||||
|
||||
#define ASM_NL ` /* use '`' to mark new line in macro */
|
||||
#define __ALIGN .align 4
|
||||
#define __ALIGN_STR __stringify(__ALIGN)
|
||||
|
||||
/* annotation for data we want in DCCM - if enabled in .config */
|
||||
.macro ARCFP_DATA nm
|
||||
#ifdef CONFIG_ARC_HAS_DCCM
|
||||
|
@ -4,6 +4,7 @@ config ARM
|
||||
default y
|
||||
select ARCH_32BIT_OFF_T
|
||||
select ARCH_HAS_BINFMT_FLAT
|
||||
select ARCH_HAS_CPU_FINALIZE_INIT if MMU
|
||||
select ARCH_HAS_DEBUG_VIRTUAL if MMU
|
||||
select ARCH_HAS_DEVMEM_IS_ALLOWED
|
||||
select ARCH_HAS_DMA_WRITE_COMBINE if !ARM_DMA_MEM_BUFFERABLE
|
||||
|
@ -527,7 +527,7 @@ touchscreen@1 {
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <31 0>;
|
||||
pendown-gpio = <&gpio1 31 0>;
|
||||
pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
|
||||
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
|
@ -156,7 +156,7 @@ tsc2046@2 {
|
||||
compatible = "ti,ads7843";
|
||||
interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
|
||||
spi-max-frequency = <3000000>;
|
||||
pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ti,x-min = /bits/ 16 <150>;
|
||||
ti,x-max = /bits/ 16 <3830>;
|
||||
|
@ -128,7 +128,7 @@ port@5 {
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
duplex-full;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -212,7 +212,7 @@ port@5 {
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
duplex-full;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -532,7 +532,6 @@ spi@18029200 {
|
||||
"spi_lr_session_done",
|
||||
"spi_lr_overread";
|
||||
clocks = <&iprocmed>;
|
||||
clock-names = "iprocmed";
|
||||
num-cs = <2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -64,7 +64,7 @@ ads7846@0 {
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <7 0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
pendown-gpio = <&gpio2 7 0>;
|
||||
pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
|
||||
vcc-supply = <®_3p3v>;
|
||||
ti,x-min = /bits/ 16 <0>;
|
||||
ti,x-max = /bits/ 16 <4095>;
|
||||
|
@ -198,7 +198,7 @@ tsc2046@0 {
|
||||
pinctrl-0 = <&pinctrl_tsc2046_pendown>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <29 0>;
|
||||
pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
|
||||
touchscreen-max-pressure = <255>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
@ -49,7 +49,7 @@ audio_clock: audio_clock {
|
||||
lcd_backlight: backlight {
|
||||
compatible = "pwm-backlight";
|
||||
|
||||
pwms = <&pwm3 0 5000000 0>;
|
||||
pwms = <&pwm3 0 5000000>;
|
||||
brightness-levels = <0 4 8 16 32 64 128 255>;
|
||||
default-brightness-level = <7>;
|
||||
enable-gpios = <&gpio5 14 GPIO_ACTIVE_HIGH>;
|
||||
|
@ -611,13 +611,13 @@ &uart_A {
|
||||
|
||||
&uart_B {
|
||||
compatible = "amlogic,meson8-uart";
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
|
||||
clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
|
||||
&uart_C {
|
||||
compatible = "amlogic,meson8-uart";
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
|
||||
clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
|
||||
|
@ -599,13 +599,13 @@ &uart_A {
|
||||
|
||||
&uart_B {
|
||||
compatible = "amlogic,meson8b-uart";
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
|
||||
clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
|
||||
&uart_C {
|
||||
compatible = "amlogic,meson8b-uart";
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
|
||||
clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
|
||||
|
@ -227,7 +227,7 @@ ads7846@0 {
|
||||
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <25 0>; /* gpio_57 */
|
||||
pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
ti,x-max = /bits/ 16 <0x0fff>;
|
||||
|
@ -54,7 +54,7 @@ ads7846@0 {
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <27 0>; /* gpio_27 */
|
||||
pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
ti,x-max = /bits/ 16 <0x0fff>;
|
||||
|
@ -5,9 +5,11 @@
|
||||
|
||||
#include "omap3-gta04a5.dts"
|
||||
|
||||
&omap3_pmx_core {
|
||||
/ {
|
||||
model = "Goldelico GTA04A5/Letux 2804 with OneNAND";
|
||||
};
|
||||
|
||||
&omap3_pmx_core {
|
||||
gpmc_pins: pinmux_gpmc_pins {
|
||||
pinctrl-single,pins = <
|
||||
|
||||
|
@ -311,7 +311,7 @@ tsc2046@0 {
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <8 0>; /* boot6 / gpio_8 */
|
||||
spi-max-frequency = <1000000>;
|
||||
pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
|
||||
vcc-supply = <®_vcc3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&tsc2048_pins>;
|
||||
|
@ -149,7 +149,7 @@ ads7846@0 {
|
||||
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupts = <18 0>; /* gpio_114 */
|
||||
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
ti,x-max = /bits/ 16 <0x0fff>;
|
||||
|
@ -160,7 +160,7 @@ ads7846@0 {
|
||||
|
||||
interrupt-parent = <&gpio4>;
|
||||
interrupts = <18 0>; /* gpio_114 */
|
||||
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
ti,x-max = /bits/ 16 <0x0fff>;
|
||||
|
@ -651,7 +651,7 @@ tsc2046@0 {
|
||||
pinctrl-0 = <&penirq_pins>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */
|
||||
pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
|
||||
vcc-supply = <&vaux4>;
|
||||
|
||||
ti,x-min = /bits/ 16 <0>;
|
||||
|
@ -354,7 +354,7 @@ ads7846@0 {
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <15 0>; /* gpio1_wk15 */
|
||||
pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
||||
pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
|
||||
|
||||
ti,x-min = /bits/ 16 <0x0>;
|
||||
|
@ -120,10 +120,13 @@ lcd_panel_in: endpoint {
|
||||
|
||||
sound {
|
||||
compatible = "audio-graph-card";
|
||||
routing =
|
||||
"MIC_IN", "Capture",
|
||||
"Capture", "Mic Bias",
|
||||
"Playback", "HP_OUT";
|
||||
widgets = "Headphone", "Headphone Jack",
|
||||
"Line", "Line In Jack",
|
||||
"Microphone", "Microphone Jack";
|
||||
routing = "Headphone Jack", "HP_OUT",
|
||||
"LINE_IN", "Line In Jack",
|
||||
"MIC_IN", "Microphone Jack",
|
||||
"Microphone Jack", "Mic Bias";
|
||||
dais = <&sai2a_port &sai2b_port>;
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -88,7 +88,7 @@ sd_switch: regulator-sd_switch {
|
||||
|
||||
sound {
|
||||
compatible = "audio-graph-card";
|
||||
label = "STM32MP1-AV96-HDMI";
|
||||
label = "STM32-AV96-HDMI";
|
||||
dais = <&sai2a_port>;
|
||||
status = "okay";
|
||||
};
|
||||
@ -232,6 +232,12 @@ adv7513_i2s0: endpoint {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dh_mac_eeprom: eeprom@53 {
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x53>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
|
||||
<dc {
|
||||
|
@ -167,12 +167,6 @@ watchdog {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
eeprom@53 {
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x53>;
|
||||
pagesize = <16>;
|
||||
};
|
||||
};
|
||||
|
||||
&iwdg2 {
|
||||
|
@ -406,7 +406,7 @@ &i2s2 {
|
||||
i2s2_port: port {
|
||||
i2s2_endpoint: endpoint {
|
||||
remote-endpoint = <&sii9022_tx_endpoint>;
|
||||
format = "i2s";
|
||||
dai-format = "i2s";
|
||||
mclk-fs = <256>;
|
||||
};
|
||||
};
|
||||
|
@ -1,7 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* arch/arm/include/asm/bugs.h
|
||||
*
|
||||
* Copyright (C) 1995-2003 Russell King
|
||||
*/
|
||||
#ifndef __ASM_BUGS_H
|
||||
@ -10,10 +8,8 @@
|
||||
extern void check_writebuffer_bugs(void);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
extern void check_bugs(void);
|
||||
extern void check_other_bugs(void);
|
||||
#else
|
||||
#define check_bugs() do { } while (0)
|
||||
#define check_other_bugs() do { } while (0)
|
||||
#endif
|
||||
|
||||
|
@ -130,7 +130,7 @@
|
||||
flush_pmd_entry(pudp); \
|
||||
} while (0)
|
||||
|
||||
static inline pmd_t *pud_page_vaddr(pud_t pud)
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return __va(pud_val(pud) & PHYS_MASK & (s32)PAGE_MASK);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include <linux/init.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <asm/bugs.h>
|
||||
#include <asm/proc-fns.h>
|
||||
|
||||
@ -11,7 +12,7 @@ void check_other_bugs(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
void __init check_bugs(void)
|
||||
void __init arch_cpu_finalize_init(void)
|
||||
{
|
||||
check_writebuffer_bugs();
|
||||
check_other_bugs();
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include "soc.h"
|
||||
#include "platform.h"
|
||||
|
||||
/*************************************************************************
|
||||
* Timer handling for EP93xx
|
||||
@ -60,7 +61,7 @@ static u64 notrace ep93xx_read_sched_clock(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
u64 ep93xx_clocksource_read(struct clocksource *c)
|
||||
static u64 ep93xx_clocksource_read(struct clocksource *c)
|
||||
{
|
||||
u64 ret;
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/clockchips.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -63,6 +63,9 @@ static void __init orion5x_dt_init(void)
|
||||
if (of_machine_is_compatible("maxtor,shared-storage-2"))
|
||||
mss2_init();
|
||||
|
||||
if (of_machine_is_compatible("lacie,d2-network"))
|
||||
d2net_init();
|
||||
|
||||
of_platform_default_populate(NULL, orion5x_auxdata_lookup, NULL);
|
||||
}
|
||||
|
||||
|
@ -75,6 +75,12 @@ extern void mss2_init(void);
|
||||
static inline void mss2_init(void) {}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_D2NET_DT
|
||||
void d2net_init(void);
|
||||
#else
|
||||
static inline void d2net_init(void) {}
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* Helpers to access Orion registers
|
||||
****************************************************************************/
|
||||
|
@ -40,7 +40,7 @@ enum probes_insn checker_stack_use_imm_0xx(probes_opcode_t insn,
|
||||
* Different from other insn uses imm8, the real addressing offset of
|
||||
* STRD in T32 encoding should be imm8 * 4. See ARMARM description.
|
||||
*/
|
||||
enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn,
|
||||
static enum probes_insn checker_stack_use_t32strd(probes_opcode_t insn,
|
||||
struct arch_probes_insn *asi,
|
||||
const struct decode_header *h)
|
||||
{
|
||||
|
@ -231,7 +231,7 @@ singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb)
|
||||
* kprobe, and that level is reserved for user kprobe handlers, so we can't
|
||||
* risk encountering a new kprobe in an interrupt handler.
|
||||
*/
|
||||
void __kprobes kprobe_handler(struct pt_regs *regs)
|
||||
static void __kprobes kprobe_handler(struct pt_regs *regs)
|
||||
{
|
||||
struct kprobe *p, *cur;
|
||||
struct kprobe_ctlblk *kcb;
|
||||
|
@ -145,8 +145,6 @@ __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty)
|
||||
}
|
||||
}
|
||||
|
||||
extern void kprobe_handler(struct pt_regs *regs);
|
||||
|
||||
static void
|
||||
optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs)
|
||||
{
|
||||
|
@ -720,7 +720,7 @@ static const char coverage_register_lookup[16] = {
|
||||
[REG_TYPE_NOSPPCX] = COVERAGE_ANY_REG | COVERAGE_SP,
|
||||
};
|
||||
|
||||
unsigned coverage_start_registers(const struct decode_header *h)
|
||||
static unsigned coverage_start_registers(const struct decode_header *h)
|
||||
{
|
||||
unsigned regs = 0;
|
||||
int i;
|
||||
|
@ -454,3 +454,7 @@ void kprobe_thumb32_test_cases(void);
|
||||
#else
|
||||
void kprobe_arm_test_cases(void);
|
||||
#endif
|
||||
|
||||
void __kprobes_test_case_start(void);
|
||||
void __kprobes_test_case_end_16(void);
|
||||
void __kprobes_test_case_end_32(void);
|
||||
|
@ -61,7 +61,7 @@ arm-pmu {
|
||||
interrupt-affinity = <&cpu0>, <&cpu1>;
|
||||
};
|
||||
|
||||
psci {
|
||||
psci: psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
@ -6,6 +6,18 @@
|
||||
/dts-v1/;
|
||||
#include "sparx5.dtsi"
|
||||
|
||||
&psci {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
enable-method = "spin-table";
|
||||
};
|
||||
|
||||
&cpu1 {
|
||||
enable-method = "spin-table";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -26,7 +26,7 @@ chosen {
|
||||
|
||||
v1p05: v1p05-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
reglator-name = "v1p05";
|
||||
regulator-name = "v1p05";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
@ -38,7 +38,7 @@ v1p05: v1p05-regulator {
|
||||
|
||||
v12_poe: v12-poe-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
reglator-name = "v12_poe";
|
||||
regulator-name = "v12_poe";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
|
||||
|
@ -1006,7 +1006,7 @@ dsi_phy0: dsi-phy@1a98300 {
|
||||
};
|
||||
};
|
||||
|
||||
camss: camss@1b00000 {
|
||||
camss: camss@1b0ac00 {
|
||||
compatible = "qcom,msm8916-camss";
|
||||
reg = <0x01b0ac00 0x200>,
|
||||
<0x01b00030 0x4>,
|
||||
|
@ -489,7 +489,7 @@ restart@fc4ab000 {
|
||||
reg = <0xfc4ab000 0x4>;
|
||||
};
|
||||
|
||||
spmi_bus: spmi@fc4c0000 {
|
||||
spmi_bus: spmi@fc4cf000 {
|
||||
compatible = "qcom,spmi-pmic-arb";
|
||||
reg = <0xfc4cf000 0x1000>,
|
||||
<0xfc4cb000 0x1000>,
|
||||
|
@ -956,7 +956,7 @@ ufsphy_lane: lanes@627400 {
|
||||
};
|
||||
};
|
||||
|
||||
camss: camss@a00000 {
|
||||
camss: camss@a34000 {
|
||||
compatible = "qcom,msm8996-camss";
|
||||
reg = <0x00a34000 0x1000>,
|
||||
<0x00a00030 0x4>,
|
||||
|
@ -270,7 +270,7 @@ hscif0_pins: hscif0 {
|
||||
};
|
||||
|
||||
scif1_pins: scif1 {
|
||||
groups = "scif1_data_b", "scif1_ctrl";
|
||||
groups = "scif1_data_b";
|
||||
function = "scif1";
|
||||
};
|
||||
|
||||
@ -330,7 +330,6 @@ rsnd_for_pcm3168a_capture: endpoint {
|
||||
&scif1 {
|
||||
pinctrl-0 = <&scif1_pins>;
|
||||
pinctrl-names = "default";
|
||||
uart-has-rtscts;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -19,25 +19,25 @@ chosen {
|
||||
&wkup_pmx2 {
|
||||
mcu_cpsw_pins_default: mcu-cpsw-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
J721E_WKUP_IOPAD(0x0068, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */
|
||||
J721E_WKUP_IOPAD(0x006c, PIN_INPUT, 0) /* MCU_RGMII1_RX_CTL */
|
||||
J721E_WKUP_IOPAD(0x0070, PIN_OUTPUT, 0) /* MCU_RGMII1_TD3 */
|
||||
J721E_WKUP_IOPAD(0x0074, PIN_OUTPUT, 0) /* MCU_RGMII1_TD2 */
|
||||
J721E_WKUP_IOPAD(0x0078, PIN_OUTPUT, 0) /* MCU_RGMII1_TD1 */
|
||||
J721E_WKUP_IOPAD(0x007c, PIN_OUTPUT, 0) /* MCU_RGMII1_TD0 */
|
||||
J721E_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* MCU_RGMII1_RD3 */
|
||||
J721E_WKUP_IOPAD(0x008c, PIN_INPUT, 0) /* MCU_RGMII1_RD2 */
|
||||
J721E_WKUP_IOPAD(0x0090, PIN_INPUT, 0) /* MCU_RGMII1_RD1 */
|
||||
J721E_WKUP_IOPAD(0x0094, PIN_INPUT, 0) /* MCU_RGMII1_RD0 */
|
||||
J721E_WKUP_IOPAD(0x0080, PIN_OUTPUT, 0) /* MCU_RGMII1_TXC */
|
||||
J721E_WKUP_IOPAD(0x0084, PIN_INPUT, 0) /* MCU_RGMII1_RXC */
|
||||
J721E_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* MCU_RGMII1_TX_CTL */
|
||||
J721E_WKUP_IOPAD(0x0004, PIN_INPUT, 0) /* MCU_RGMII1_RX_CTL */
|
||||
J721E_WKUP_IOPAD(0x0008, PIN_OUTPUT, 0) /* MCU_RGMII1_TD3 */
|
||||
J721E_WKUP_IOPAD(0x000c, PIN_OUTPUT, 0) /* MCU_RGMII1_TD2 */
|
||||
J721E_WKUP_IOPAD(0x0010, PIN_OUTPUT, 0) /* MCU_RGMII1_TD1 */
|
||||
J721E_WKUP_IOPAD(0x0014, PIN_OUTPUT, 0) /* MCU_RGMII1_TD0 */
|
||||
J721E_WKUP_IOPAD(0x0020, PIN_INPUT, 0) /* MCU_RGMII1_RD3 */
|
||||
J721E_WKUP_IOPAD(0x0024, PIN_INPUT, 0) /* MCU_RGMII1_RD2 */
|
||||
J721E_WKUP_IOPAD(0x0028, PIN_INPUT, 0) /* MCU_RGMII1_RD1 */
|
||||
J721E_WKUP_IOPAD(0x002c, PIN_INPUT, 0) /* MCU_RGMII1_RD0 */
|
||||
J721E_WKUP_IOPAD(0x0018, PIN_OUTPUT, 0) /* MCU_RGMII1_TXC */
|
||||
J721E_WKUP_IOPAD(0x001c, PIN_INPUT, 0) /* MCU_RGMII1_RXC */
|
||||
>;
|
||||
};
|
||||
|
||||
mcu_mdio_pins_default: mcu-mdio1-pins-default {
|
||||
pinctrl-single,pins = <
|
||||
J721E_WKUP_IOPAD(0x009c, PIN_OUTPUT, 0) /* (L1) MCU_MDIO0_MDC */
|
||||
J721E_WKUP_IOPAD(0x0098, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */
|
||||
J721E_WKUP_IOPAD(0x0034, PIN_OUTPUT, 0) /* (L1) MCU_MDIO0_MDC */
|
||||
J721E_WKUP_IOPAD(0x0030, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
@ -8,16 +8,11 @@
|
||||
#define __ASM_EXCEPTION_H
|
||||
|
||||
#include <asm/esr.h>
|
||||
#include <asm/kprobes.h>
|
||||
#include <asm/ptrace.h>
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
#define __exception_irq_entry __irq_entry
|
||||
#else
|
||||
#define __exception_irq_entry __kprobes
|
||||
#endif
|
||||
|
||||
static inline u32 disr_to_esr(u64 disr)
|
||||
{
|
||||
|
@ -650,9 +650,9 @@ static inline phys_addr_t pud_page_paddr(pud_t pud)
|
||||
return __pud_to_phys(pud);
|
||||
}
|
||||
|
||||
static inline unsigned long pud_page_vaddr(pud_t pud)
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return (unsigned long)__va(pud_page_paddr(pud));
|
||||
return (pmd_t *)__va(pud_page_paddr(pud));
|
||||
}
|
||||
|
||||
/* Find an entry in the second-level page table. */
|
||||
@ -711,9 +711,9 @@ static inline phys_addr_t p4d_page_paddr(p4d_t p4d)
|
||||
return __p4d_to_phys(p4d);
|
||||
}
|
||||
|
||||
static inline unsigned long p4d_page_vaddr(p4d_t p4d)
|
||||
static inline pud_t *p4d_pgtable(p4d_t p4d)
|
||||
{
|
||||
return (unsigned long)__va(p4d_page_paddr(p4d));
|
||||
return (pud_t *)__va(p4d_page_paddr(p4d));
|
||||
}
|
||||
|
||||
/* Find an entry in the frst-level page table. */
|
||||
|
@ -109,8 +109,14 @@
|
||||
#define SB_BARRIER_INSN __SYS_BARRIER_INSN(0, 7, 31)
|
||||
|
||||
#define SYS_DC_ISW sys_insn(1, 0, 7, 6, 2)
|
||||
#define SYS_DC_IGSW sys_insn(1, 0, 7, 6, 4)
|
||||
#define SYS_DC_IGDSW sys_insn(1, 0, 7, 6, 6)
|
||||
#define SYS_DC_CSW sys_insn(1, 0, 7, 10, 2)
|
||||
#define SYS_DC_CGSW sys_insn(1, 0, 7, 10, 4)
|
||||
#define SYS_DC_CGDSW sys_insn(1, 0, 7, 10, 6)
|
||||
#define SYS_DC_CISW sys_insn(1, 0, 7, 14, 2)
|
||||
#define SYS_DC_CIGSW sys_insn(1, 0, 7, 14, 4)
|
||||
#define SYS_DC_CIGDSW sys_insn(1, 0, 7, 14, 6)
|
||||
|
||||
/*
|
||||
* System registers, organised loosely by encoding but grouped together
|
||||
|
@ -421,7 +421,7 @@ static phys_addr_t pgd_pgtable_alloc(int shift)
|
||||
static void __init create_mapping_noalloc(phys_addr_t phys, unsigned long virt,
|
||||
phys_addr_t size, pgprot_t prot)
|
||||
{
|
||||
if ((virt >= PAGE_END) && (virt < VMALLOC_START)) {
|
||||
if (virt < PAGE_OFFSET) {
|
||||
pr_warn("BUG: not creating mapping for %pa at 0x%016lx - outside kernel range\n",
|
||||
&phys, virt);
|
||||
return;
|
||||
@ -448,7 +448,7 @@ void __init create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys,
|
||||
static void update_mapping_prot(phys_addr_t phys, unsigned long virt,
|
||||
phys_addr_t size, pgprot_t prot)
|
||||
{
|
||||
if ((virt >= PAGE_END) && (virt < VMALLOC_START)) {
|
||||
if (virt < PAGE_OFFSET) {
|
||||
pr_warn("BUG: not updating mapping for %pa at 0x%016lx - outside kernel range\n",
|
||||
&phys, virt);
|
||||
return;
|
||||
|
@ -8,6 +8,7 @@ menu "Processor type and features"
|
||||
|
||||
config IA64
|
||||
bool
|
||||
select ARCH_HAS_CPU_FINALIZE_INIT
|
||||
select ARCH_HAS_DMA_MARK_CLEAN
|
||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||
select ARCH_MIGHT_HAVE_PC_SERIO
|
||||
|
@ -1,20 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*
|
||||
* Based on <asm-alpha/bugs.h>.
|
||||
*
|
||||
* Modified 1998, 1999, 2003
|
||||
* David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co.
|
||||
*/
|
||||
#ifndef _ASM_IA64_BUGS_H
|
||||
#define _ASM_IA64_BUGS_H
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
extern void check_bugs (void);
|
||||
|
||||
#endif /* _ASM_IA64_BUGS_H */
|
@ -279,7 +279,7 @@ extern unsigned long VMALLOC_END;
|
||||
#define pud_bad(pud) (!ia64_phys_addr_valid(pud_val(pud)))
|
||||
#define pud_present(pud) (pud_val(pud) != 0UL)
|
||||
#define pud_clear(pudp) (pud_val(*(pudp)) = 0UL)
|
||||
#define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & _PFN_MASK))
|
||||
#define pud_pgtable(pud) ((pmd_t *) __va(pud_val(pud) & _PFN_MASK))
|
||||
#define pud_page(pud) virt_to_page((pud_val(pud) + PAGE_OFFSET))
|
||||
|
||||
#if CONFIG_PGTABLE_LEVELS == 4
|
||||
@ -287,7 +287,7 @@ extern unsigned long VMALLOC_END;
|
||||
#define p4d_bad(p4d) (!ia64_phys_addr_valid(p4d_val(p4d)))
|
||||
#define p4d_present(p4d) (p4d_val(p4d) != 0UL)
|
||||
#define p4d_clear(p4dp) (p4d_val(*(p4dp)) = 0UL)
|
||||
#define p4d_page_vaddr(p4d) ((unsigned long) __va(p4d_val(p4d) & _PFN_MASK))
|
||||
#define p4d_pgtable(p4d) ((pud_t *) __va(p4d_val(p4d) & _PFN_MASK))
|
||||
#define p4d_page(p4d) virt_to_page((p4d_val(p4d) + PAGE_OFFSET))
|
||||
#endif
|
||||
|
||||
|
@ -1071,8 +1071,7 @@ cpu_init (void)
|
||||
}
|
||||
}
|
||||
|
||||
void __init
|
||||
check_bugs (void)
|
||||
void __init arch_cpu_finalize_init(void)
|
||||
{
|
||||
ia64_patch_mckinley_e9((unsigned long) __start___mckinley_e9_bundles,
|
||||
(unsigned long) __end___mckinley_e9_bundles);
|
||||
|
@ -4,6 +4,7 @@ config M68K
|
||||
default y
|
||||
select ARCH_32BIT_OFF_T
|
||||
select ARCH_HAS_BINFMT_FLAT
|
||||
select ARCH_HAS_CPU_FINALIZE_INIT if MMU
|
||||
select ARCH_HAS_DMA_PREP_COHERENT if HAS_DMA && MMU && !COLDFIRE
|
||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE if HAS_DMA
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS
|
||||
|
@ -1,21 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* include/asm-m68k/bugs.h
|
||||
*
|
||||
* Copyright (C) 1994 Linus Torvalds
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
extern void check_bugs(void); /* in arch/m68k/kernel/setup.c */
|
||||
#else
|
||||
static void check_bugs(void)
|
||||
{
|
||||
}
|
||||
#endif
|
@ -129,7 +129,7 @@ static inline void pud_set(pud_t *pudp, pmd_t *pmdp)
|
||||
|
||||
#define __pte_page(pte) ((unsigned long)__va(pte_val(pte) & PAGE_MASK))
|
||||
#define pmd_page_vaddr(pmd) ((unsigned long)__va(pmd_val(pmd) & _TABLE_MASK))
|
||||
#define pud_page_vaddr(pud) ((unsigned long)__va(pud_val(pud) & _TABLE_MASK))
|
||||
#define pud_pgtable(pud) ((pmd_t *)__va(pud_val(pud) & _TABLE_MASK))
|
||||
|
||||
|
||||
#define pte_none(pte) (!pte_val(pte))
|
||||
|
@ -10,6 +10,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/delay.h>
|
||||
@ -523,7 +524,7 @@ static int __init proc_hardware_init(void)
|
||||
module_init(proc_hardware_init);
|
||||
#endif
|
||||
|
||||
void check_bugs(void)
|
||||
void __init arch_cpu_finalize_init(void)
|
||||
{
|
||||
#if defined(CONFIG_FPU) && !defined(CONFIG_M68KFPU_EMU)
|
||||
if (m68k_fputype == 0) {
|
||||
|
@ -4,6 +4,7 @@ config MIPS
|
||||
default y
|
||||
select ARCH_32BIT_OFF_T if !64BIT
|
||||
select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
|
||||
select ARCH_HAS_CPU_FINALIZE_INIT
|
||||
select ARCH_HAS_FORTIFY_SOURCE
|
||||
select ARCH_HAS_KCOV
|
||||
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA
|
||||
|
@ -1,17 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Copyright (C) 2007 Maciej W. Rozycki
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*/
|
||||
#ifndef _ASM_BUGS_H
|
||||
#define _ASM_BUGS_H
|
||||
|
||||
#include <linux/bug.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/smp.h>
|
||||
|
||||
#include <asm/cpu.h>
|
||||
@ -30,17 +24,6 @@ static inline void check_bugs_early(void)
|
||||
check_bugs64_early();
|
||||
}
|
||||
|
||||
static inline void check_bugs(void)
|
||||
{
|
||||
unsigned int cpu = smp_processor_id();
|
||||
|
||||
cpu_data[cpu].udelay_val = loops_per_jiffy;
|
||||
check_bugs32();
|
||||
|
||||
if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
||||
check_bugs64();
|
||||
}
|
||||
|
||||
static inline int r4k_daddiu_bug(void)
|
||||
{
|
||||
if (!IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
||||
|
@ -210,9 +210,9 @@ static inline void p4d_clear(p4d_t *p4dp)
|
||||
p4d_val(*p4dp) = (unsigned long)invalid_pud_table;
|
||||
}
|
||||
|
||||
static inline unsigned long p4d_page_vaddr(p4d_t p4d)
|
||||
static inline pud_t *p4d_pgtable(p4d_t p4d)
|
||||
{
|
||||
return p4d_val(p4d);
|
||||
return (pud_t *)p4d_val(p4d);
|
||||
}
|
||||
|
||||
#define p4d_phys(p4d) virt_to_phys((void *)p4d_val(p4d))
|
||||
@ -314,9 +314,9 @@ static inline void pud_clear(pud_t *pudp)
|
||||
#endif
|
||||
|
||||
#ifndef __PAGETABLE_PMD_FOLDED
|
||||
static inline unsigned long pud_page_vaddr(pud_t pud)
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return pud_val(pud);
|
||||
return (pmd_t *)pud_val(pud);
|
||||
}
|
||||
#define pud_phys(pud) virt_to_phys((void *)pud_val(pud))
|
||||
#define pud_page(pud) (pfn_to_page(pud_phys(pud) >> PAGE_SHIFT))
|
||||
|
@ -1721,7 +1721,10 @@ static inline void decode_cpucfg(struct cpuinfo_mips *c)
|
||||
|
||||
static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
|
||||
{
|
||||
c->cputype = CPU_LOONGSON64;
|
||||
|
||||
/* All Loongson processors covered here define ExcCode 16 as GSExc. */
|
||||
decode_configs(c);
|
||||
c->options |= MIPS_CPU_GSEXCEX;
|
||||
|
||||
switch (c->processor_id & PRID_IMP_MASK) {
|
||||
@ -1731,7 +1734,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
|
||||
case PRID_REV_LOONGSON2K_R1_1:
|
||||
case PRID_REV_LOONGSON2K_R1_2:
|
||||
case PRID_REV_LOONGSON2K_R1_3:
|
||||
c->cputype = CPU_LOONGSON64;
|
||||
__cpu_name[cpu] = "Loongson-2K";
|
||||
set_elf_platform(cpu, "gs264e");
|
||||
set_isa(c, MIPS_CPU_ISA_M64R2);
|
||||
@ -1744,14 +1746,12 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
|
||||
switch (c->processor_id & PRID_REV_MASK) {
|
||||
case PRID_REV_LOONGSON3A_R2_0:
|
||||
case PRID_REV_LOONGSON3A_R2_1:
|
||||
c->cputype = CPU_LOONGSON64;
|
||||
__cpu_name[cpu] = "ICT Loongson-3";
|
||||
set_elf_platform(cpu, "loongson3a");
|
||||
set_isa(c, MIPS_CPU_ISA_M64R2);
|
||||
break;
|
||||
case PRID_REV_LOONGSON3A_R3_0:
|
||||
case PRID_REV_LOONGSON3A_R3_1:
|
||||
c->cputype = CPU_LOONGSON64;
|
||||
__cpu_name[cpu] = "ICT Loongson-3";
|
||||
set_elf_platform(cpu, "loongson3a");
|
||||
set_isa(c, MIPS_CPU_ISA_M64R2);
|
||||
@ -1771,7 +1771,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
|
||||
c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */
|
||||
break;
|
||||
case PRID_IMP_LOONGSON_64G:
|
||||
c->cputype = CPU_LOONGSON64;
|
||||
__cpu_name[cpu] = "ICT Loongson-3";
|
||||
set_elf_platform(cpu, "loongson3a");
|
||||
set_isa(c, MIPS_CPU_ISA_M64R2);
|
||||
@ -1781,8 +1780,6 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
|
||||
panic("Unknown Loongson Processor ID!");
|
||||
break;
|
||||
}
|
||||
|
||||
decode_configs(c);
|
||||
}
|
||||
#else
|
||||
static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu) { }
|
||||
|
@ -11,6 +11,8 @@
|
||||
* Copyright (C) 2000, 2001, 2002, 2007 Maciej W. Rozycki
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/screen_info.h>
|
||||
@ -829,3 +831,14 @@ static int __init setnocoherentio(char *str)
|
||||
}
|
||||
early_param("nocoherentio", setnocoherentio);
|
||||
#endif
|
||||
|
||||
void __init arch_cpu_finalize_init(void)
|
||||
{
|
||||
unsigned int cpu = smp_processor_id();
|
||||
|
||||
cpu_data[cpu].udelay_val = loops_per_jiffy;
|
||||
check_bugs32();
|
||||
|
||||
if (IS_ENABLED(CONFIG_CPU_R4X00_BUGS64))
|
||||
check_bugs64();
|
||||
}
|
||||
|
@ -1,20 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* include/asm-parisc/bugs.h
|
||||
*
|
||||
* Copyright (C) 1999 Mike Shaver
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
static inline void check_bugs(void)
|
||||
{
|
||||
// identify_cpu(&boot_cpu_data);
|
||||
}
|
@ -330,8 +330,8 @@ static inline void pmd_clear(pmd_t *pmd) {
|
||||
|
||||
|
||||
#if CONFIG_PGTABLE_LEVELS == 3
|
||||
#define pud_page_vaddr(pud) ((unsigned long) __va(pud_address(pud)))
|
||||
#define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud))
|
||||
#define pud_pgtable(pud) ((pmd_t *) __va(pud_address(pud)))
|
||||
#define pud_page(pud) virt_to_page((void *)pud_pgtable(pud))
|
||||
|
||||
/* For 64 bit we have three level tables */
|
||||
|
||||
|
@ -234,7 +234,7 @@ config PPC_EARLY_DEBUG_40x
|
||||
|
||||
config PPC_EARLY_DEBUG_CPM
|
||||
bool "Early serial debugging for Freescale CPM-based serial ports"
|
||||
depends on SERIAL_CPM
|
||||
depends on SERIAL_CPM=y
|
||||
help
|
||||
Select this to enable early debugging for Freescale chips
|
||||
using a CPM-based serial port. This assumes that the bootwrapper
|
||||
|
@ -429,3 +429,11 @@ checkbin:
|
||||
echo -n '*** Please use a different binutils version.' ; \
|
||||
false ; \
|
||||
fi
|
||||
@if test "x${CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT}" = "xy" -a \
|
||||
"x${CONFIG_LD_IS_BFD}" = "xy" -a \
|
||||
"${CONFIG_LD_VERSION}" = "23700" ; then \
|
||||
echo -n '*** binutils 2.37 drops unused section symbols, which recordmcount ' ; \
|
||||
echo 'is unable to handle.' ; \
|
||||
echo '*** Please use a different binutils version.' ; \
|
||||
false ; \
|
||||
fi
|
||||
|
@ -1030,8 +1030,15 @@ extern struct page *p4d_page(p4d_t p4d);
|
||||
/* Pointers in the page table tree are physical addresses */
|
||||
#define __pgtable_ptr_val(ptr) __pa(ptr)
|
||||
|
||||
#define pud_page_vaddr(pud) __va(pud_val(pud) & ~PUD_MASKED_BITS)
|
||||
#define p4d_page_vaddr(p4d) __va(p4d_val(p4d) & ~P4D_MASKED_BITS)
|
||||
static inline pud_t *p4d_pgtable(p4d_t p4d)
|
||||
{
|
||||
return (pud_t *)__va(p4d_val(p4d) & ~P4D_MASKED_BITS);
|
||||
}
|
||||
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return (pmd_t *)__va(pud_val(pud) & ~PUD_MASKED_BITS);
|
||||
}
|
||||
|
||||
#define pte_ERROR(e) \
|
||||
pr_err("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
|
||||
|
@ -1,15 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
#ifndef _ASM_POWERPC_BUGS_H
|
||||
#define _ASM_POWERPC_BUGS_H
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file is included by 'init/main.c' to check for
|
||||
* architecture-dependent bugs.
|
||||
*/
|
||||
|
||||
static inline void check_bugs(void) { }
|
||||
|
||||
#endif /* _ASM_POWERPC_BUGS_H */
|
@ -56,10 +56,14 @@
|
||||
#define p4d_none(p4d) (!p4d_val(p4d))
|
||||
#define p4d_bad(p4d) (p4d_val(p4d) == 0)
|
||||
#define p4d_present(p4d) (p4d_val(p4d) != 0)
|
||||
#define p4d_page_vaddr(p4d) (p4d_val(p4d) & ~P4D_MASKED_BITS)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
static inline pud_t *p4d_pgtable(p4d_t p4d)
|
||||
{
|
||||
return (pud_t *) (p4d_val(p4d) & ~P4D_MASKED_BITS);
|
||||
}
|
||||
|
||||
static inline void p4d_clear(p4d_t *p4dp)
|
||||
{
|
||||
*p4dp = __p4d(0);
|
||||
|
@ -164,7 +164,11 @@ static inline void pud_clear(pud_t *pudp)
|
||||
#define pud_bad(pud) (!is_kernel_addr(pud_val(pud)) \
|
||||
|| (pud_val(pud) & PUD_BAD_BITS))
|
||||
#define pud_present(pud) (pud_val(pud) != 0)
|
||||
#define pud_page_vaddr(pud) (pud_val(pud) & ~PUD_MASKED_BITS)
|
||||
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return (pmd_t *)(pud_val(pud) & ~PUD_MASKED_BITS);
|
||||
}
|
||||
|
||||
extern struct page *pud_page(pud_t pud);
|
||||
|
||||
|
@ -783,9 +783,9 @@ static void free_pud_table(pud_t *pud_start, p4d_t *p4d)
|
||||
}
|
||||
|
||||
static void remove_pte_table(pte_t *pte_start, unsigned long addr,
|
||||
unsigned long end)
|
||||
unsigned long end, bool direct)
|
||||
{
|
||||
unsigned long next;
|
||||
unsigned long next, pages = 0;
|
||||
pte_t *pte;
|
||||
|
||||
pte = pte_start + pte_index(addr);
|
||||
@ -807,13 +807,16 @@ static void remove_pte_table(pte_t *pte_start, unsigned long addr,
|
||||
}
|
||||
|
||||
pte_clear(&init_mm, addr, pte);
|
||||
pages++;
|
||||
}
|
||||
if (direct)
|
||||
update_page_count(mmu_virtual_psize, -pages);
|
||||
}
|
||||
|
||||
static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
|
||||
unsigned long end)
|
||||
unsigned long end, bool direct)
|
||||
{
|
||||
unsigned long next;
|
||||
unsigned long next, pages = 0;
|
||||
pte_t *pte_base;
|
||||
pmd_t *pmd;
|
||||
|
||||
@ -831,19 +834,22 @@ static void __meminit remove_pmd_table(pmd_t *pmd_start, unsigned long addr,
|
||||
continue;
|
||||
}
|
||||
pte_clear(&init_mm, addr, (pte_t *)pmd);
|
||||
pages++;
|
||||
continue;
|
||||
}
|
||||
|
||||
pte_base = (pte_t *)pmd_page_vaddr(*pmd);
|
||||
remove_pte_table(pte_base, addr, next);
|
||||
remove_pte_table(pte_base, addr, next, direct);
|
||||
free_pte_table(pte_base, pmd);
|
||||
}
|
||||
if (direct)
|
||||
update_page_count(MMU_PAGE_2M, -pages);
|
||||
}
|
||||
|
||||
static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
|
||||
unsigned long end)
|
||||
unsigned long end, bool direct)
|
||||
{
|
||||
unsigned long next;
|
||||
unsigned long next, pages = 0;
|
||||
pmd_t *pmd_base;
|
||||
pud_t *pud;
|
||||
|
||||
@ -861,16 +867,20 @@ static void __meminit remove_pud_table(pud_t *pud_start, unsigned long addr,
|
||||
continue;
|
||||
}
|
||||
pte_clear(&init_mm, addr, (pte_t *)pud);
|
||||
pages++;
|
||||
continue;
|
||||
}
|
||||
|
||||
pmd_base = (pmd_t *)pud_page_vaddr(*pud);
|
||||
remove_pmd_table(pmd_base, addr, next);
|
||||
pmd_base = pud_pgtable(*pud);
|
||||
remove_pmd_table(pmd_base, addr, next, direct);
|
||||
free_pmd_table(pmd_base, pud);
|
||||
}
|
||||
if (direct)
|
||||
update_page_count(MMU_PAGE_1G, -pages);
|
||||
}
|
||||
|
||||
static void __meminit remove_pagetable(unsigned long start, unsigned long end)
|
||||
static void __meminit remove_pagetable(unsigned long start, unsigned long end,
|
||||
bool direct)
|
||||
{
|
||||
unsigned long addr, next;
|
||||
pud_t *pud_base;
|
||||
@ -898,8 +908,8 @@ static void __meminit remove_pagetable(unsigned long start, unsigned long end)
|
||||
continue;
|
||||
}
|
||||
|
||||
pud_base = (pud_t *)p4d_page_vaddr(*p4d);
|
||||
remove_pud_table(pud_base, addr, next);
|
||||
pud_base = p4d_pgtable(*p4d);
|
||||
remove_pud_table(pud_base, addr, next, direct);
|
||||
free_pud_table(pud_base, p4d);
|
||||
}
|
||||
|
||||
@ -922,7 +932,7 @@ int __meminit radix__create_section_mapping(unsigned long start,
|
||||
|
||||
int __meminit radix__remove_section_mapping(unsigned long start, unsigned long end)
|
||||
{
|
||||
remove_pagetable(start, end);
|
||||
remove_pagetable(start, end, true);
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_MEMORY_HOTPLUG */
|
||||
@ -958,7 +968,7 @@ int __meminit radix__vmemmap_create_mapping(unsigned long start,
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
void __meminit radix__vmemmap_remove_mapping(unsigned long start, unsigned long page_size)
|
||||
{
|
||||
remove_pagetable(start, start + page_size);
|
||||
remove_pagetable(start, start + page_size, false);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@ -1156,7 +1166,7 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
|
||||
pmd_t *pmd;
|
||||
int i;
|
||||
|
||||
pmd = (pmd_t *)pud_page_vaddr(*pud);
|
||||
pmd = pud_pgtable(*pud);
|
||||
pud_clear(pud);
|
||||
|
||||
flush_tlb_kernel_range(addr, addr + PUD_SIZE);
|
||||
|
@ -188,7 +188,7 @@ static bool altmap_cross_boundary(struct vmem_altmap *altmap, unsigned long star
|
||||
unsigned long nr_pfn = page_size / sizeof(struct page);
|
||||
unsigned long start_pfn = page_to_pfn((struct page *)start);
|
||||
|
||||
if ((start_pfn + nr_pfn) > altmap->end_pfn)
|
||||
if ((start_pfn + nr_pfn - 1) > altmap->end_pfn)
|
||||
return true;
|
||||
|
||||
if (start_pfn < altmap->base_pfn)
|
||||
|
@ -106,7 +106,7 @@ struct page *p4d_page(p4d_t p4d)
|
||||
VM_WARN_ON(!p4d_huge(p4d));
|
||||
return pte_page(p4d_pte(p4d));
|
||||
}
|
||||
return virt_to_page(p4d_page_vaddr(p4d));
|
||||
return virt_to_page(p4d_pgtable(p4d));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -117,7 +117,7 @@ struct page *pud_page(pud_t pud)
|
||||
VM_WARN_ON(!pud_huge(pud));
|
||||
return pte_page(pud_pte(pud));
|
||||
}
|
||||
return virt_to_page(pud_page_vaddr(pud));
|
||||
return virt_to_page(pud_pgtable(pud));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -600,12 +600,12 @@ static void pnv_pci_sriov_disable(struct pci_dev *pdev)
|
||||
struct pnv_iov_data *iov;
|
||||
|
||||
iov = pnv_iov_get(pdev);
|
||||
num_vfs = iov->num_vfs;
|
||||
base_pe = iov->vf_pe_arr[0].pe_number;
|
||||
|
||||
if (WARN_ON(!iov))
|
||||
return;
|
||||
|
||||
num_vfs = iov->num_vfs;
|
||||
base_pe = iov->vf_pe_arr[0].pe_number;
|
||||
|
||||
/* Release VF PEs */
|
||||
pnv_ioda_release_vf_PE(pdev);
|
||||
|
||||
|
@ -60,9 +60,9 @@ static inline void pud_clear(pud_t *pudp)
|
||||
set_pud(pudp, __pud(0));
|
||||
}
|
||||
|
||||
static inline unsigned long pud_page_vaddr(pud_t pud)
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return (unsigned long)pfn_to_virt(pud_val(pud) >> _PAGE_PFN_SHIFT);
|
||||
return (pmd_t *)pfn_to_virt(pud_val(pud) >> _PAGE_PFN_SHIFT);
|
||||
}
|
||||
|
||||
static inline struct page *pud_page(pud_t pud)
|
||||
|
@ -69,6 +69,7 @@ struct rv_jit_context {
|
||||
struct bpf_prog *prog;
|
||||
u16 *insns; /* RV insns */
|
||||
int ninsns;
|
||||
int prologue_len;
|
||||
int epilogue_offset;
|
||||
int *offset; /* BPF to RV */
|
||||
unsigned long flags;
|
||||
@ -214,8 +215,8 @@ static inline int rv_offset(int insn, int off, struct rv_jit_context *ctx)
|
||||
int from, to;
|
||||
|
||||
off++; /* BPF branch is from PC+1, RV is from PC */
|
||||
from = (insn > 0) ? ctx->offset[insn - 1] : 0;
|
||||
to = (insn + off > 0) ? ctx->offset[insn + off - 1] : 0;
|
||||
from = (insn > 0) ? ctx->offset[insn - 1] : ctx->prologue_len;
|
||||
to = (insn + off > 0) ? ctx->offset[insn + off - 1] : ctx->prologue_len;
|
||||
return ninsns_rvoff(to - from);
|
||||
}
|
||||
|
||||
|
@ -1144,16 +1144,3 @@ void bpf_jit_build_epilogue(struct rv_jit_context *ctx)
|
||||
{
|
||||
__build_epilogue(false, ctx);
|
||||
}
|
||||
|
||||
void *bpf_jit_alloc_exec(unsigned long size)
|
||||
{
|
||||
return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
|
||||
BPF_JIT_REGION_END, GFP_KERNEL,
|
||||
PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
|
||||
__builtin_return_address(0));
|
||||
}
|
||||
|
||||
void bpf_jit_free_exec(void *addr)
|
||||
{
|
||||
return vfree(addr);
|
||||
}
|
||||
|
@ -83,6 +83,12 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
prog = orig_prog;
|
||||
goto out_offset;
|
||||
}
|
||||
|
||||
if (build_body(ctx, extra_pass, NULL)) {
|
||||
prog = orig_prog;
|
||||
goto out_offset;
|
||||
}
|
||||
|
||||
for (i = 0; i < prog->len; i++) {
|
||||
prev_ninsns += 32;
|
||||
ctx->offset[i] = prev_ninsns;
|
||||
@ -91,11 +97,15 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
for (i = 0; i < NR_JIT_ITERATIONS; i++) {
|
||||
pass++;
|
||||
ctx->ninsns = 0;
|
||||
|
||||
bpf_jit_build_prologue(ctx);
|
||||
ctx->prologue_len = ctx->ninsns;
|
||||
|
||||
if (build_body(ctx, extra_pass, ctx->offset)) {
|
||||
prog = orig_prog;
|
||||
goto out_offset;
|
||||
}
|
||||
bpf_jit_build_prologue(ctx);
|
||||
|
||||
ctx->epilogue_offset = ctx->ninsns;
|
||||
bpf_jit_build_epilogue(ctx);
|
||||
|
||||
@ -153,6 +163,10 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
bpf_flush_icache(jit_data->header, ctx->insns + ctx->ninsns);
|
||||
|
||||
if (!prog->is_func || extra_pass) {
|
||||
bpf_jit_binary_lock_ro(jit_data->header);
|
||||
for (i = 0; i < prog->len; i++)
|
||||
ctx->offset[i] = ninsns_rvoff(ctx->offset[i]);
|
||||
bpf_prog_fill_jited_linfo(prog, ctx->offset);
|
||||
out_offset:
|
||||
kfree(ctx->offset);
|
||||
kfree(jit_data);
|
||||
@ -165,3 +179,16 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
|
||||
tmp : orig_prog);
|
||||
return prog;
|
||||
}
|
||||
|
||||
void *bpf_jit_alloc_exec(unsigned long size)
|
||||
{
|
||||
return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,
|
||||
BPF_JIT_REGION_END, GFP_KERNEL,
|
||||
PAGE_KERNEL, 0, NUMA_NO_NODE,
|
||||
__builtin_return_address(0));
|
||||
}
|
||||
|
||||
void bpf_jit_free_exec(void *addr)
|
||||
{
|
||||
return vfree(addr);
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += -ffreestanding
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += -fPIE
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member)
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
|
||||
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
|
||||
|
@ -2005,6 +2005,10 @@ static unsigned long kvm_s390_next_dirty_cmma(struct kvm_memslots *slots,
|
||||
ms = slots->memslots + slotidx;
|
||||
ofs = 0;
|
||||
}
|
||||
|
||||
if (cur_gfn < ms->base_gfn)
|
||||
ofs = 0;
|
||||
|
||||
ofs = find_next_bit(kvm_second_dirty_bitmap(ms), ms->npages, ofs);
|
||||
while ((slotidx > 0) && (ofs >= ms->npages)) {
|
||||
slotidx--;
|
||||
|
@ -168,7 +168,8 @@ static int setup_apcb00(struct kvm_vcpu *vcpu, unsigned long *apcb_s,
|
||||
sizeof(struct kvm_s390_apcb0)))
|
||||
return -EFAULT;
|
||||
|
||||
bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb0));
|
||||
bitmap_and(apcb_s, apcb_s, apcb_h,
|
||||
BITS_PER_BYTE * sizeof(struct kvm_s390_apcb0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -190,7 +191,8 @@ static int setup_apcb11(struct kvm_vcpu *vcpu, unsigned long *apcb_s,
|
||||
sizeof(struct kvm_s390_apcb1)))
|
||||
return -EFAULT;
|
||||
|
||||
bitmap_and(apcb_s, apcb_s, apcb_h, sizeof(struct kvm_s390_apcb1));
|
||||
bitmap_and(apcb_s, apcb_s, apcb_h,
|
||||
BITS_PER_BYTE * sizeof(struct kvm_s390_apcb1));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
|
||||
KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
|
||||
KBUILD_CFLAGS += -c -MD -Os -m64 -msoft-float -fno-common
|
||||
KBUILD_CFLAGS += -fno-stack-protector
|
||||
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
||||
KBUILD_CFLAGS += $(CLANG_FLAGS)
|
||||
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
|
||||
KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
|
||||
|
@ -5,6 +5,7 @@ config SUPERH
|
||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
|
||||
select ARCH_HAS_BINFMT_FLAT if !MMU
|
||||
select ARCH_HAS_CPU_FINALIZE_INIT
|
||||
select ARCH_HAS_GIGANTIC_PAGE
|
||||
select ARCH_HAS_GCOV_PROFILE_ALL
|
||||
select ARCH_HAS_PTE_SPECIAL
|
||||
|
@ -18,6 +18,18 @@
|
||||
#include <cpu/dma-register.h>
|
||||
#include <cpu/dma.h>
|
||||
|
||||
/*
|
||||
* Some of the SoCs feature two DMAC modules. In such a case, the channels are
|
||||
* distributed equally among them.
|
||||
*/
|
||||
#ifdef SH_DMAC_BASE1
|
||||
#define SH_DMAC_NR_MD_CH (CONFIG_NR_ONCHIP_DMA_CHANNELS / 2)
|
||||
#else
|
||||
#define SH_DMAC_NR_MD_CH CONFIG_NR_ONCHIP_DMA_CHANNELS
|
||||
#endif
|
||||
|
||||
#define SH_DMAC_CH_SZ 0x10
|
||||
|
||||
/*
|
||||
* Define the default configuration for dual address memory-memory transfer.
|
||||
* The 0x400 value represents auto-request, external->external.
|
||||
@ -29,7 +41,7 @@ static unsigned long dma_find_base(unsigned int chan)
|
||||
unsigned long base = SH_DMAC_BASE0;
|
||||
|
||||
#ifdef SH_DMAC_BASE1
|
||||
if (chan >= 6)
|
||||
if (chan >= SH_DMAC_NR_MD_CH)
|
||||
base = SH_DMAC_BASE1;
|
||||
#endif
|
||||
|
||||
@ -40,13 +52,13 @@ static unsigned long dma_base_addr(unsigned int chan)
|
||||
{
|
||||
unsigned long base = dma_find_base(chan);
|
||||
|
||||
/* Normalize offset calculation */
|
||||
if (chan >= 9)
|
||||
chan -= 6;
|
||||
if (chan >= 4)
|
||||
base += 0x10;
|
||||
chan = (chan % SH_DMAC_NR_MD_CH) * SH_DMAC_CH_SZ;
|
||||
|
||||
return base + (chan * 0x10);
|
||||
/* DMAOR is placed inside the channel register space. Step over it. */
|
||||
if (chan >= DMAOR)
|
||||
base += SH_DMAC_CH_SZ;
|
||||
|
||||
return base + chan;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SH_DMA_IRQ_MULTI
|
||||
@ -250,12 +262,11 @@ static int sh_dmac_get_dma_residue(struct dma_channel *chan)
|
||||
#define NR_DMAOR 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* DMAOR bases are broken out amongst channel groups. DMAOR0 manages
|
||||
* channels 0 - 5, DMAOR1 6 - 11 (optional).
|
||||
*/
|
||||
#define dmaor_read_reg(n) __raw_readw(dma_find_base((n)*6))
|
||||
#define dmaor_write_reg(n, data) __raw_writew(data, dma_find_base(n)*6)
|
||||
#define dmaor_read_reg(n) __raw_readw(dma_find_base((n) * \
|
||||
SH_DMAC_NR_MD_CH) + DMAOR)
|
||||
#define dmaor_write_reg(n, data) __raw_writew(data, \
|
||||
dma_find_base((n) * \
|
||||
SH_DMAC_NR_MD_CH) + DMAOR)
|
||||
|
||||
static inline int dmaor_reset(int no)
|
||||
{
|
||||
|
@ -1,74 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __ASM_SH_BUGS_H
|
||||
#define __ASM_SH_BUGS_H
|
||||
|
||||
/*
|
||||
* This is included by init/main.c to check for architecture-dependent bugs.
|
||||
*
|
||||
* Needs:
|
||||
* void check_bugs(void);
|
||||
*/
|
||||
|
||||
/*
|
||||
* I don't know of any Super-H bugs yet.
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
extern void select_idle_routine(void);
|
||||
|
||||
static void __init check_bugs(void)
|
||||
{
|
||||
extern unsigned long loops_per_jiffy;
|
||||
char *p = &init_utsname()->machine[2]; /* "sh" */
|
||||
|
||||
select_idle_routine();
|
||||
|
||||
current_cpu_data.loops_per_jiffy = loops_per_jiffy;
|
||||
|
||||
switch (current_cpu_data.family) {
|
||||
case CPU_FAMILY_SH2:
|
||||
*p++ = '2';
|
||||
break;
|
||||
case CPU_FAMILY_SH2A:
|
||||
*p++ = '2';
|
||||
*p++ = 'a';
|
||||
break;
|
||||
case CPU_FAMILY_SH3:
|
||||
*p++ = '3';
|
||||
break;
|
||||
case CPU_FAMILY_SH4:
|
||||
*p++ = '4';
|
||||
break;
|
||||
case CPU_FAMILY_SH4A:
|
||||
*p++ = '4';
|
||||
*p++ = 'a';
|
||||
break;
|
||||
case CPU_FAMILY_SH4AL_DSP:
|
||||
*p++ = '4';
|
||||
*p++ = 'a';
|
||||
*p++ = 'l';
|
||||
*p++ = '-';
|
||||
*p++ = 'd';
|
||||
*p++ = 's';
|
||||
*p++ = 'p';
|
||||
break;
|
||||
case CPU_FAMILY_UNKNOWN:
|
||||
/*
|
||||
* Specifically use CPU_FAMILY_UNKNOWN rather than
|
||||
* default:, so we're able to have the compiler whine
|
||||
* about unhandled enumerations.
|
||||
*/
|
||||
break;
|
||||
}
|
||||
|
||||
printk("CPU: %s\n", get_cpu_subtype(¤t_cpu_data));
|
||||
|
||||
#ifndef __LITTLE_ENDIAN__
|
||||
/* 'eb' means 'Endian Big' */
|
||||
*p++ = 'e';
|
||||
*p++ = 'b';
|
||||
#endif
|
||||
*p = '\0';
|
||||
}
|
||||
#endif /* __ASM_SH_BUGS_H */
|
@ -32,9 +32,9 @@ typedef struct { unsigned long long pmd; } pmd_t;
|
||||
#define pmd_val(x) ((x).pmd)
|
||||
#define __pmd(x) ((pmd_t) { (x) } )
|
||||
|
||||
static inline unsigned long pud_page_vaddr(pud_t pud)
|
||||
static inline pmd_t *pud_pgtable(pud_t pud)
|
||||
{
|
||||
return pud_val(pud);
|
||||
return (pmd_t *)(unsigned long)pud_val(pud);
|
||||
}
|
||||
|
||||
/* only used by the stubbed out hugetlb gup code, should never be called */
|
||||
|
@ -167,6 +167,8 @@ extern unsigned int instruction_size(unsigned int insn);
|
||||
#define instruction_size(insn) (2)
|
||||
#endif
|
||||
|
||||
void select_idle_routine(void);
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#include <asm/processor_32.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user