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

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

It contains the following commits:

b52fb22557 ANDROID: GKI: disable CONFIG_FORTIFY_SOURCE
26b09f181d Merge 5.4.161 into android11-5.4-lts
5c088fba39 Linux 5.4.161
b786cb3236 erofs: fix unsafe pagevec reuse of hooked pclusters
83de35ae27 erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
b37f6da8c3 PCI: Add MSI masking quirk for Nvidia ION AHCI
db1390b60e PCI/MSI: Deal with devices lying about their MSI mask capability
49b55a7792 PCI/MSI: Destroy sysfs before freeing entries
7186be970c parisc/entry: fix trace test in syscall exit path
258c42a8fb fortify: Explicitly disable Clang support
4f9a3cda16 scsi: ufs: Fix tm request when non-fatal error happens
c468f9249d ext4: fix lazy initialization next schedule time computation in more granular unit
307c6f7287 MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL
7be773a028 scsi: ufs: Fix interrupt error message for shared interrupts
e3c97ba4a6 soc/tegra: pmc: Fix imbalanced clock disabling in error code path
ebd1ef6eae Revert "net: sched: update default qdisc visibility after Tx queue cnt changes"
9084a8ecc9 Revert "serial: core: Fix initializing and restoring termios speed"
91a7552bea Merge 5.4.160 into android11-5.4-lts
17efa1a44c Linux 5.4.160
66bd28d6be selftests/bpf: Fix also no-alu32 strobemeta selftest
e7ea088cd0 ath10k: fix invalid dma_addr_t token assignment
20a951afb7 SUNRPC: Partial revert of commit 6f9f17287e78
5b7a0a4f7c PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros
256a1e009b powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload
fe02d37870 s390/cio: make ccw_device_dma_* more robust
8a8d007bae s390/tape: fix timer initialization in tape_std_assign()
5ef14af166 s390/cio: check the subchannel validity for dev_busid
b0989ae51d video: backlight: Drop maximum brightness override for brightness zero
66938ba128 mm, oom: do not trigger out_of_memory from the #PF
d6648b55ed mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
c6f9a5c11a powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC
453b779d2b powerpc/security: Add a helper to query stf_barrier type
84b3fbfd8e powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
7edda4bd9e powerpc/bpf: Validate branch ranges
0347c001c9 powerpc/lib: Add helper to check if offset is within conditional branch range
c4461ca7a8 ovl: fix deadlock in splice write
8d750efc8d 9p/net: fix missing error check in p9_check_errors
aba12bb38b net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE
223985fa1b f2fs: should use GFP_NOFS for directory inodes
af73b240e0 irqchip/sifive-plic: Fixup EOI failed when masked
53014c1c41 parisc: Fix set_fixmap() on PA1.x CPUs
645d6dfdcb parisc: Fix backtrace to always include init funtion names
62c4e0a3d8 ARM: 9156/1: drop cc-option fallbacks for architecture selection
61a5e446bb ARM: 9155/1: fix early early_iounmap()
dc33574246 selftests/net: udpgso_bench_rx: fix port argument
dd3a418ba5 cxgb4: fix eeprom len when diagnostics not implemented
1800c9eecd net/smc: fix sk_refcnt underflow on linkdown and fallback
b2d1b6624b vsock: prevent unnecessary refcnt inc for nonblocking connect
72aca95f95 net: hns3: allow configure ETS bandwidth of all TCs
07b218db54 net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any
18f2809441 bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
180a9b539c arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions
572599cbf1 nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails
c1d5f943bb llc: fix out-of-bound array index in llc_sk_dev_hash()
bdf94057aa perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
23def86bbf zram: off by one in read_block_state()
d26835de40 mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration()
46d695e870 bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed
dce69e0a06 ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses
700602b662 net: vlan: fix a UAF in vlan_dev_real_dev()
98e0ab88f4 net: davinci_emac: Fix interrupt pacing disable
70ecaadb49 xen-pciback: Fix return in pm_ctrl_init()
7f57b9bc8e i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
53ad06ff3b NFSv4: Fix a regression in nfs_set_open_stateid_locked()
c9dcb51ae4 scsi: qla2xxx: Turn off target reset during issue_lip
211f08d1ff scsi: qla2xxx: Fix gnl list corruption
9b180f3c2d ar7: fix kernel builds for compiler test
59e97c74d1 watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT
162a1cfcd5 m68k: set a default value for MEMORY_RESERVE
9770f8c29f signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL)
9e6985190f dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result`
fd1de35901 netfilter: nfnetlink_queue: fix OOB when mac header was cleared
15351d5e8b soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read
be832f781d auxdisplay: ht16k33: Fix frame buffer device blanking
c441943075 auxdisplay: ht16k33: Connect backlight to fbdev
1fa9803de9 auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string
e63507ea43 dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro
04317e7474 mtd: core: don't remove debugfs directory if device is in use
59929f9a57 mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare()
a83aaf1507 fs: orangefs: fix error return code of orangefs_revalidate_lookup()
c79c37c775 NFS: Fix deadlocks in nfs_scan_commit_list()
5a893e0eab opp: Fix return in _opp_add_static_v2()
98ac698216 PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
819925eff0 PCI: aardvark: Don't spam about PIO Response Status
bab1cfec7a drm/plane-helper: fix uninitialized variable reference
4b48c6ede3 pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds
2b2fdb6f48 rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined
bd48bdbfd9 apparmor: fix error check
a7b2947649 power: supply: bq27xxx: Fix kernel crash on IRQ handler register error
3f698d97f7 mips: cm: Convert to bitfield API to fix out-of-bounds access
fb7b73cd94 powerpc/44x/fsp2: add missing of_node_put
d3dd1a057c HID: u2fzero: properly handle timeouts in usb_submit_urb
b216a39b32 HID: u2fzero: clarify error check and length calculations
fae0552d83 serial: xilinx_uartps: Fix race condition causing stuck TX
818e100c2b phy: qcom-qusb2: Fix a memory leak on probe
de43e75917 ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
f00ff5357b ASoC: cs42l42: Correct some register default values
baf5c1225e ARM: dts: stm32: fix SAI sub nodes register range
bb74ce1feb staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC
73aaa6222a RDMA/mlx4: Return missed an error if device doesn't support steering
20dfad97db scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn()
5ead6f4fea power: supply: rt5033_battery: Change voltage values to µV
fdbe8e8a08 usb: gadget: hid: fix error code in do_config()
15355466cd serial: 8250_dw: Drop wrong use of ACPI_PTR()
d8241e7a21 video: fbdev: chipsfb: use memset_io() instead of memset()
e7df004eb1 clk: at91: check pmc node status before registering syscore ops
44a2dcd146 memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe
03fe35ce9a soc/tegra: Fix an error handling path in tegra_powergate_power_up()
543d85602f arm: dts: omap3-gta04a4: accelerometer irq fix
7cf7d9b83d ALSA: hda: Reduce udelay() at SKL+ position reporting
d1cf71d79e JFS: fix memleak in jfs_mount
56911ee537 MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT
ee49b6598c scsi: dc395: Fix error case unwinding
dd49dee254 ARM: dts: at91: tse850: the emac<->phy interface is rmii
1df7102f26 arm64: dts: meson-g12a: Fix the pwm regulator supply properties
681c58f344 RDMA/bnxt_re: Fix query SRQ failure
50eca29537 ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY
863e71a3af arm64: dts: rockchip: Fix GPU register width for RK3328
6694960195 ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc()
d27580c1b0 clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths
9212ebb1c6 RDMA/rxe: Fix wrong port_cap_flags
cf234bc5fb ibmvnic: Process crqs after enabling interrupts
bc40616481 ibmvnic: don't stop queue in xmit
a91c8ee2ed udp6: allow SO_MARK ctrl msg to affect routing
9ff14503f4 selftests/bpf: Fix fclose/pclose mismatch in test_progs
af51aa2b85 crypto: pcrypt - Delay write to padata->info
9be9cb2a2b net: phylink: avoid mvneta warning when setting pause parameters
077410c790 net: amd-xgbe: Toggle PLL settings during rate change
63a3b1af04 drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits
9ca0d10742 wcn36xx: add proper DMA memory barriers in rx path
a3256ae45b libertas: Fix possible memory leak in probe and disconnect
427583b93d libertas_tf: Fix possible memory leak in probe and disconnect
2339ff4162 KVM: s390: Fix handle_sske page fault handling
3f3b4054e2 samples/kretprobes: Fix return value if register_kretprobe() failed
9435b2f9c0 tcp: don't free a FIN sk_buff in tcp_remove_empty_skb()
a8226599cb irq: mips: avoid nested irq_enter()
ae5a244648 s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap()
8fb436d146 libbpf: Fix BTF data layout checks and allow empty BTF
03a818c096 smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi
12ccb57379 drm/msm: Fix potential NULL dereference in DPU SSPP
dc18f08062 clocksource/drivers/timer-ti-dm: Select TIMER_OF
c523474f2a PM: hibernate: fix sparse warnings
0d22f55014 nvme-rdma: fix error code in nvme_rdma_setup_ctrl
67ba6c8e71 phy: micrel: ksz8041nl: do not use power down mode
ae213c059a mwifiex: Send DELBA requests according to spec
3a781e2131 rsi: stop thread firstly in rsi_91x_init() error handling
ad4cd01307 mt76: mt76x02: fix endianness warnings in mt76x02_mac.c
bdbc9311f1 platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning
3446e5ecdf block: ataflop: fix breakage introduced at blk-mq refactoring
2918a29fc8 mmc: mxs-mmc: disable regulator on error and in the remove function
b631c603b5 net: stream: don't purge sk_error_queue in sk_stream_kill_queues()
f27fbff862 drm/msm: uninitialized variable in msm_gem_import()
32ac072c24 ath10k: fix max antenna gain unit
218fb43fff hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
8384c4a7bc hwmon: Fix possible memleak in __hwmon_device_register()
f7fd072039 net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE
9498f5272a memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host()
5f462b38ce memstick: avoid out-of-range warning
3a7525d5d7 mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured
dc73f7cae1 b43: fix a lower bounds test
1b6365fdae b43legacy: fix a lower bounds test
c51ac7fd02 hwrng: mtk - Force runtime pm ops for sleep ops
52d2cdab52 crypto: qat - disregard spurious PFVF interrupts
4d7881430f crypto: qat - detect PFVF collision after ACK
a3d3f9c5dc media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable()
73dd601bec netfilter: nft_dynset: relax superfluous check on set updates
62f6260f70 EDAC/amd64: Handle three rank interleaving mode
f399e650c0 ath9k: Fix potential interrupt storm on queue reset
843ff688eb media: em28xx: Don't use ops->suspend if it is NULL
e577924b70 cpuidle: Fix kobject memory leaks in error paths
18fdbdbecf crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
a993159a2a kprobes: Do not use local variable when creating debugfs file
71411bd79e media: cx23885: Fix snd_card_free call on null card pointer
1c2c8030e7 media: tm6000: Avoid card name truncation
61266f852f media: si470x: Avoid card name truncation
4e65b9ec21 media: radio-wl1273: Avoid card name truncation
8eeec127d5 media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()'
2b9ae7bac9 media: TDA1997x: handle short reads of hdmi info frame.
23b65152a0 media: dvb-usb: fix ununit-value in az6027_rc_query
e2b2d221a4 media: cxd2880-spi: Fix a null pointer dereference on error handling path
f46da0c6af media: em28xx: add missing em28xx_close_extension
14f3d77c77 drm/amdgpu: fix warning for overflow check
465dc8a1b1 ath10k: Fix missing frame timestamp for beacon/probe-resp
7c12c2fe45 net: dsa: rtl8366rb: Fix off-by-one bug
674637270e rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies()
d4cd7a167c crypto: caam - disable pkc for non-E SoCs
555fe5734d Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync
8c68d12f1a wilc1000: fix possible memory leak in cfg_scan_result()
1713b85634 cgroup: Make rebind_subsystems() disable v2 controllers all at once
bd76ec43f1 net: net_namespace: Fix undefined member in key_remove_domain()
3a37742128 virtio-gpu: fix possible memory allocation failure
606c95078a drm/v3d: fix wait for TMU write combiner flush
6a93d8ebb8 rcu: Fix existing exp request check in sync_sched_exp_online_cleanup()
6237a1685c Bluetooth: fix init and cleanup of sco_conn.timeout_work
28c1d96562 selftests/bpf: Fix strobemeta selftest regression
f2c04d46c8 netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state
0c2acfede5 parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling
cbe2872427 parisc/unwind: fix unwinder when CONFIG_64BIT is enabled
a9a411adca task_stack: Fix end_of_stack() for architectures with upwards-growing stack
c06cf3b1d0 parisc: fix warning in flush_tlb_all
7324419233 x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted
ad67a7e2ab spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
a15fc58933 btrfs: do not take the uuid_mutex in btrfs_rm_device
aba1db41dd net: annotate data-race in neigh_output()
2f78cb7ecc vrf: run conntrack only in context of lower/physdev for locally generated packets
5919f02e18 ARM: 9136/1: ARMv7-M uses BE-8, not BE-32
d99f320a1b gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE
9929b3db46 ARM: clang: Do not rely on lr register for stacktrace
681a426e6b smackfs: use __GFP_NOFAIL for smk_cipso_doi()
4752a9c3a0 iwlwifi: mvm: disable RX-diversity in powersave
41e583edb1 selftests: kvm: fix mismatched fclose() after popen()
4411d0d8df PM: hibernate: Get block device exclusively in swsusp_check()
a528d3aac3 nvme: drop scan_lock and always kick requeue list when removing namespaces
209c39b3f5 nvmet-tcp: fix use-after-free when a port is removed
81d11e40fd nvmet: fix use-after-free when a port is removed
1ec1ca2be9 block: remove inaccurate requeue check
bfde056402 mwl8k: Fix use-after-free in mwl8k_fw_state_machine()
e4af3e42ba tracing/cfi: Fix cmp_entries_* functions signature mismatch
caeb6bae75 workqueue: make sysfs of unbound kworker cpumask more clever
58b4e0c075 lib/xz: Validate the value before assigning it to an enum variable
8cdab20660 lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression
eb8f087201 memstick: r592: Fix a UAF bug when removing the driver
2226ad0314 leaking_addresses: Always print a trailing newline
63c3c7b699 ACPI: battery: Accept charges over the design capacity as full
2efb81b22d iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value
d5fb057f23 ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create()
e2c27194fc tracefs: Have tracefs directories not set OTH permission bits by default
ace6e7fe96 net-sysfs: try not to restart the syscall if it will fail eventually
d8d1d35405 media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte()
382e7b6458 media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info
e5f9be4869 media: ipu3-imgu: imgu_fmt: Handle properly try
cdf338e1db ACPICA: Avoid evaluating methods too early during system resume
9ff00d0b1d ipmi: Disable some operations during a panic
4bba26f89e media: rcar-csi2: Add checking to rcsi2_start_receiver()
c08a655ed9 brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet
f64551db52 ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK
31b7848647 media: mceusb: return without resubmitting URB in case of -EPROTO error.
e419469adf media: imx: set a media_device bus_info string
b2b2f91782 media: s5p-mfc: Add checking to s5p_mfc_probe().
6b8ab552e2 media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe()
bc4af8c782 media: uvcvideo: Set unique vdev name based in type
7a646855d6 media: uvcvideo: Return -EIO for control errors
ab7fca0eae media: uvcvideo: Set capability in s_param
bff0833e2b media: stm32: Potential NULL pointer dereference in dcmi_irq_thread()
cede36511c media: netup_unidvb: handle interrupt properly according to the firmware
3fe3d04354 media: mt9p031: Fix corrupted frame after restarting stream
08743f9c48 ath10k: high latency fixes for beacon buffer
fadb4cd750 mwifiex: Properly initialize private structure on interface type changes
7d3e6635c2 mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type
480c240ab6 x86: Increase exception stack sizes
91b9c23b6d smackfs: Fix use-after-free in netlbl_catmap_walk()
31df731c87 net: sched: update default qdisc visibility after Tx queue cnt changes
a82f379378 locking/lockdep: Avoid RCU-induced noinstr fail
f14eca60bf MIPS: lantiq: dma: reset correct number of channel
ca07aff257 MIPS: lantiq: dma: add small delay after reset
e5ea3dca94 platform/x86: wmi: do not fail if disabling fails
b57df4d6fc drm/panel-orientation-quirks: add Valve Steam Deck
67bd269a84 Bluetooth: fix use-after-free error in lock_sock_nested()
d416020f1a Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg()
a52bd11b24 drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6
e5ca76568a drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1
c19cabfa55 drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2)
46a25b7a25 dma-buf: WARN on dmabuf release with pending attachments
1bee9e59c6 USB: chipidea: fix interrupt deadlock
8a643c0f95 USB: iowarrior: fix control-message timeouts
3285811674 USB: serial: keyspan: fix memleak on probe errors
8ce0bc6962 iio: dac: ad5446: Fix ad5622_write() return value
f01e16d324 pinctrl: core: fix possible memory leak in pinctrl_enable()
270541cbc0 quota: correct error number in free_dqentry()
10b808307d quota: check block number when reading the block in quota file
a509a515f3 PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG
0ea58b9bb9 PCI: aardvark: Fix return value of MSI domain .alloc() method
ee9cdca4d6 PCI: aardvark: Fix reporting Data Link Layer Link Active
6f99c7a51e PCI: aardvark: Do not unmask unused interrupts
d964886327 PCI: aardvark: Fix checking for link up via LTSSM state
e0269c0c81 PCI: aardvark: Do not clear status bits of masked interrupts
50b0ce94fb PCI: pci-bridge-emul: Fix emulation of W1C bits
3d995568c9 xen/balloon: add late_initcall_sync() for initial ballooning done
3f6255a91b ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume
6225a31b2e ALSA: mixer: oss: Fix racy access to slots
e9adf72bdb serial: core: Fix initializing and restoring termios speed
b535b63464 powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found
bfefc5d6f9 can: j1939: j1939_can_recv(): ignore messages with invalid source address
94a3f521e3 can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport
8e61c799c8 KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use
654a824816 power: supply: max17042_battery: use VFSOC for capacity when no rsns
11129762e3 power: supply: max17042_battery: Prevent int underflow in set_soc_threshold
625c3ed247 signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT
ec5ef8d4d7 signal: Remove the bogus sigkill_pending in ptrace_stop
28c70d5036 RDMA/qedr: Fix NULL deref for query_qp on the GSI QP
91a29609bd rsi: Fix module dev_oper_mode parameter description
9defe9b1ab rsi: fix rate mask set leading to P2P failure
2f1f06be3e rsi: fix key enabled check causing unwanted encryption for vap_id > 0
1fa1da8a60 rsi: fix occasional initialisation failure with BT coex
398e7e5add wcn36xx: handle connection loss indication
4a67355383 libata: fix checking of DMA state
6f2f91b9df mwifiex: Read a PCI register after writing the TX ring write pointer
3991cdc40f wcn36xx: Fix HT40 capability for 2Ghz band
301d33c954 evm: mark evm_fixmode as __ro_after_init
e1f71a3289 rtl8187: fix control-message timeouts
76d2ce7ca9 PCI: Mark Atheros QCA6174 to avoid bus reset
3110371c7a ath10k: fix division by zero in send path
2b94d10056 ath10k: fix control-message timeout
cfbe74d8b1 ath6kl: fix control-message timeout
1a2fe1c3d8 ath6kl: fix division by zero in send path
78ebff828a mwifiex: fix division by zero in fw download path
08501eb9ff EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell
a147922924 regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property
c9e5a00596 regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled
3baa5886d1 hwmon: (pmbus/lm25066) Add offset coefficients
98bea92379 ia64: kprobes: Fix to pass correct trampoline address to the handler
ddb54bf3b7 btrfs: call btrfs_check_rw_degradable only if there is a missing device
5223324ed1 btrfs: fix lost error handling when replaying directory deletes
c25984fa18 btrfs: clear MISSING device status bit in btrfs_close_one_device
87a87c82f7 net/smc: Correct spelling mistake to TCPF_SYN_RECV
cc14499b9d nfp: bpf: relax prog rejection for mtu check through max_pkt_offset
a62d430841 vmxnet3: do not stop tx queues after netif_device_detach()
17dcecf20c r8169: Add device 10ec:8162 to driver r8169
e84b38e578 nvmet-tcp: fix header digest verification
2804181e1b drm: panel-orientation-quirks: Add quirk for GPD Win3
7273488fd3 watchdog: Fix OMAP watchdog early handling
5ffdddcf28 net: multicast: calculate csum of looped-back and forwarded packets
9420e2496d spi: spl022: fix Microwire full duplex mode
1a667bc329 nvmet-tcp: fix a memory leak when releasing a queue
2f3860ba60 xen/netfront: stop tx queues during live migration
de649ec7ad bpf: Prevent increasing bpf_jit_limit above max
df8665c398 bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT
8dd688ba67 drm: panel-orientation-quirks: Add quirk for Aya Neo 2021
c4282bb805 mmc: winbond: don't build on M68K
05f0a97e2f reset: socfpga: add empty driver allowing consumers to probe
dfa8fb782b ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode
f09014e8be hyperv/vmbus: include linux/bitops.h
054fe50d26 sfc: Don't use netif_info before net_device setup
82005afbb3 cavium: Fix return values of the probe function
9f5fd5aab8 scsi: qla2xxx: Fix unmap of already freed sgl
96183337e9 scsi: qla2xxx: Return -ENOMEM if kzalloc() fails
8e3a0d28ed cavium: Return negative value when pci_alloc_irq_vectors() fails
58608e80d6 x86/irq: Ensure PI wakeup handler is unregistered before module unload
7252cb96e4 x86/cpu: Fix migration safety with X86_BUG_NULL_SEL
e3d4ba338b x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c
ccc4e5e60b fuse: fix page stealing
9505d48721 ALSA: timer: Unconditionally unlink slave instances, too
2c6446168f ALSA: timer: Fix use-after-free problem
246c6a1fe3 ALSA: synth: missing check for possible NULL after the call to kstrdup
ce9f7535ec ALSA: usb-audio: Add registration quirk for JBL Quantum 400
7da6f4c5c2 ALSA: line6: fix control and interrupt message timeouts
4a12e624e5 ALSA: 6fire: fix control and bulk message timeouts
ab3f823af2 ALSA: ua101: fix division by zero at probe
a3bb6e0db7 ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED
40243342d2 ALSA: hda/realtek: Add quirk for ASUS UX550VE
8af6ade7ac ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N
809416fe0a ALSA: hda/realtek: Add quirk for Clevo PC70HS
638b53d67f media: v4l2-ioctl: Fix check_ext_ctrls
8c11269bd6 media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers
bbd62d2fca media: ite-cir: IR receiver stop working after receive overflow
eef6cb3d3c crypto: s5p-sss - Add error handling in s5p_aes_probe()
d7a5d872b4 firmware/psci: fix application of sizeof to pointer
18f0fb57a9 tpm: Check for integer overflow in tpm2_map_response_body()
f38f3da360 parisc: Fix ptrace check on syscall return
acbc2a08ea mmc: dw_mmc: Dont wait for DRTO on Write RSP error
5ee76475f8 scsi: qla2xxx: Fix use after free in eh_abort path
cc5b139488 scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file
617d2fd48d ocfs2: fix data corruption on truncate
c20eb9551c libata: fix read log timeout value
69c2199f49 Input: i8042 - Add quirk for Fujitsu Lifebook T725
17ec1c6b45 Input: elantench - fix misreporting trackpoint coordinates
ce4bec0a54 Input: iforce - fix control-message timeout
db39f49ee7 binder: use cred instead of task for getsecid
fc9c470cd5 binder: use cred instead of task for selinux checks
28a1e470b0 binder: use euid from cred instead of using task
3e87c4996d usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform
3fa7efd1fa xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay
f911d1ad48 Merge 5.4.159 into android11-5.4-lts
5915b0ea67 Linux 5.4.159
abc49cc45d rsi: fix control-message timeout
64e6632ab4 media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init
6c382b6365 staging: rtl8192u: fix control-message timeouts
f66258cb60 staging: r8712u: fix control-message timeout
88a252ff78 comedi: vmk80xx: fix bulk and interrupt message timeouts
1ae4715121 comedi: vmk80xx: fix bulk-buffer overflow
199acd8c11 comedi: vmk80xx: fix transfer-buffer overflows
b0156b7c96 comedi: ni_usb6501: fix NULL-deref in command paths
3efb7af8ac comedi: dt9812: fix DMA buffers on stack
6e80e9314f isofs: Fix out of bound access for corrupted isofs image
adc56dbfc4 printk/console: Allow to disable console output by using console="" or console=null
589ac131b3 binder: don't detect sender/target during buffer cleanup
b60e89b63e usb-storage: Add compatibility quirk flags for iODD 2531/2541
5c3eba2904 usb: musb: Balance list entry in musb_gadget_queue
161571745d usb: gadget: Mark USB_FSL_QE broken on 64-bit
d6013265a7 usb: ehci: handshake CMD_RUN instead of STS_HALT
6d000e1c16 Revert "x86/kvm: fix vcpu-id indexed array sizes"
3197361248 Merge branch 'android11-5.4' into 'android11-5.4-lts'
7cd388bad4 Merge 5.4.158 into android11-5.4-lts
c65356f0f7 Linux 5.4.158
e31d51f8a4 ARM: 9120/1: Revert "amba: make use of -1 IRQs warn"
960b1fdfc3 Revert "drm/ttm: fix memleak in ttm_transfered_destroy"
a73ebe514a sfc: Fix reading non-legacy supported link modes
6789e4b759 Revert "usb: core: hcd: Add support for deferring roothub registration"
049849492b Revert "xhci: Set HCD flag to defer primary roothub registration"
2461f38384 media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt()
21fc2bb836 net: ethernet: microchip: lan743x: Fix skb allocation failure
e02fdd7db4 vrf: Revert "Reset skb conntrack connection..."
1ce287eff9 scsi: core: Put LLD module refcnt after SCSI device is released
553d3c4173 Merge 5.4.157 into android11-5.4-lts
e6de9a8b5b Linux 5.4.157
39fb393e21 perf script: Check session->header.env.arch before using it
472d9354a9 KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu
07e9a4e1ab KVM: s390: clear kicked_mask before sleeping again
5919a07d71 cfg80211: correct bridge/4addr mode check
dba9e632ed net: use netif_is_bridge_port() to check for IFF_BRIDGE_PORT
0f5b4c57dc sctp: add vtag check in sctp_sf_ootb
df52776407 sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
0aa322b5fe sctp: add vtag check in sctp_sf_violation
d6470c2200 sctp: fix the processing for COOKIE_ECHO chunk
5fe74d5e4d sctp: fix the processing for INIT_ACK chunk
5953ee99ba sctp: use init_tag from inithdr for ABORT chunk
5395650d15 phy: phy_start_aneg: Add an unlocked version
c85b696270 phy: phy_ethtool_ksettings_get: Lock the phy for consistency
0dea6379e2 net/tls: Fix flipped sign in async_wait.err assignment
e12b8f3c2b net: nxp: lpc_eth.c: avoid hang when bringing interface down
b232898c1d net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent
92507dc1ef net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
3708aa267d nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST
b1c76f97ad RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string
18a012869f net: Prevent infinite while loop in skb_tx_hash()
6422e84718 net: batman-adv: fix error handling
1cead23c1c regmap: Fix possible double-free in regcache_rbtree_exit()
207e6e93e7 arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node
c29c3295e0 RDMA/mlx5: Set user priority for DCT
13ad93a42c nvme-tcp: fix data digest pointer calculation
b597b0e2e8 nvmet-tcp: fix data digest pointer calculation
d997d4e436 IB/hfi1: Fix abba locking issue with sc_disable()
0f8cdfff06 IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
5f0bfe21c8 tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function
bd99782f3c drm/ttm: fix memleak in ttm_transfered_destroy
d2c64ebcc7 net: lan78xx: fix division by zero in send path
a37c5e70ac cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
590abe5bec mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit
07da44b086 mmc: sdhci: Map more voltage level to SDHCI_POWER_330
0821c5608d mmc: dw_mmc: exynos: fix the finding clock sample value
08328d65cb mmc: cqhci: clear HALT state after CQE enable
55a3870f4a mmc: vub300: fix control-message timeouts
e0cfd5159f net/tls: Fix flipped sign in tls_err_abort() calls
6a18d155d5 Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
9fdcf66ee4 nfc: port100: fix using -ERRNO as command type mask
853f22623d ata: sata_mv: Fix the error handling of mv_chip_id()
6d0b30784f Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"
b7dfc536db usbnet: fix error return code in usbnet_probe()
492140e45d usbnet: sanity check for maxpacket
4ba6c163fe ipv4: use siphash instead of Jenkins in fnhe_hashfun()
3f439c231a ipv6: use siphash in rt6_exception_hash()
1cad781ecf powerpc/bpf: Fix BPF_MOD when imm == 1
ca10ddbbab ARM: 9141/1: only warn about XIP address when not compile testing
40cd329455 ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
2f7647cc13 ARM: 9134/1: remove duplicate memcpy() definition
9f44f66396 ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned
5f1f361447 Merge 5.4.156 into android11-5.4-lts
3a7a77d783 Merge branch 'android11-5.4' into 'android11-5.4-lts'
89b6869b94 Linux 5.4.156
7cdcaa7c76 pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()
a9c4e246f7 ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
a98c81ab17 tracing: Have all levels of checks prevent recursion
b0feaa8376 net: mdiobus: Fix memory leak in __mdiobus_register
0ab35e7074 scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()
9068beaa04 Input: snvs_pwrkey - add clk handling
8de335e819 ALSA: hda: avoid write to STATESTS if controller is in reset
570bc60dcd platform/x86: intel_scu_ipc: Update timeout value in comment
4054b869dc isdn: mISDN: Fix sleeping function called from invalid context
5001160d3e ARM: dts: spear3xx: Fix gmac node
e9d9ffa193 net: stmmac: add support for dwmac 3.40a
044fa2afd6 btrfs: deal with errors when checking if a dir entry exists during log replay
d49a293b94 gcc-plugins/structleak: add makefile var for disabling structleak
e8ef998441 selftests: netfilter: remove stray bash debug line
b7fdebde2c netfilter: Kconfig: use 'default y' instead of 'm' for bool config option
285e9210b1 isdn: cpai: check ctr->cnr to avoid array index out of bound
1f75f8883b nfc: nci: fix the UAF of rf_conn_info object
4f5d1c29cf mm, slub: fix potential memoryleak in kmem_cache_open()
a1ec195a19 mm, slub: fix mismatch between reconstructed freelist depth and cnt
8e25a62e8d powerpc/idle: Don't corrupt back chain when going idle
d0148cfaf8 KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
80bbb0bc3a KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
722e6f6ac8 powerpc64/idle: Fix SP offsets when saving GPRs
d6f451f1f6 audit: fix possible null-pointer dereference in audit_filter_rules
c974f2f92c ASoC: DAPM: Fix missing kctl change notifications
5307a77b71 ALSA: hda/realtek: Add quirk for Clevo PC50HS
50fc52e5ca ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset
0f218ba4c8 vfs: check fd has read access in kernel_read_file_from_fd()
f439d2bcb6 elfcore: correct reference to CONFIG_UML
d3a8357637 ocfs2: mount fails with buffer overflow in strlen
b05caf023b ocfs2: fix data corruption after conversion from inline format
bce53fbee9 ceph: fix handling of "meta" errors
151c72bba1 can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes
0ddf781882 can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
a0e47d2833 can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
7e66cfed66 can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
1248582e47 can: peak_pci: peak_pci_remove(): fix UAF
ea82c2463e can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification
c26dcd1cb8 can: rcar_can: fix suspend/resume
8c5585eae3 net: enetc: fix ethtool counter name for PM0_TERR
c0b0baade9 net: stmmac: Fix E2E delay mechanism
c4b64011e4 net: hns3: disable sriov before unload hclge layer
472acf1582 net: hns3: add limit ets dwrr bandwidth cannot be 0
b1f9380ee2 net: hns3: reset DWRR of unused tc to zero
12bdcbc043 NIOS2: irqflags: rename a redefined register name
599766696f net: dsa: lantiq_gswip: fix register definition
f49ce82f9b lan78xx: select CRC32
83094f8c44 netfilter: ipvs: make global sysctl readonly in non-init netns
ce70ee94dd ASoC: wm8960: Fix clock configuration on slave mode
0f5b08ca22 dma-debug: fix sg checks in debug_dma_map_sg()
50aefa9acc NFSD: Keep existing listeners on portlist error
4a5bf3e729 xtensa: xtfpga: Try software restart before simulating CPU reset
31137288b9 xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF
d946a39bad ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default
e7c4819c0b tee: optee: Fix missing devices unregister during optee_remove
b1e9b4e0f6 net: switchdev: do not propagate bridge updates across bridges
2d22cd0482 parisc: math-emu: Fix fall-through warnings
ff9005a69e Merge branch 'android11-5.4' into 'android11-5.4-lts'
fa6db42758 Merge 5.4.155 into android11-5.4-lts
4f508aa9dd Linux 5.4.155
32d2ce0b94 ionic: don't remove netdev->dev_addr when syncing uc list
abaf8e8b90 r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256
a4f7d2246e qed: Fix missing error code in qed_slowpath_start()
62d96bb68b mqprio: Correct stats in mqprio_dump_class_stats().
fa272e8353 acpi/arm64: fix next_platform_timer() section mismatch error
32ac4ed32b drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling
4620098958 drm/msm/dsi: Fix an error code in msm_dsi_modeset_init()
f302be08e3 drm/msm: Fix null pointer dereference on pointer edp
0d5ef1e875 drm/panel: olimex-lcd-olinuxino: select CRC32
9225d57f51 platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call
ae0993739e mlxsw: thermal: Fix out-of-bounds memory accesses
97e6dcb416 ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators()
b9352ed9b9 pata_legacy: fix a couple uninitialized variable bugs
2bde4aca56 NFC: digital: fix possible memory leak in digital_in_send_sdd_req()
7ab488d722 NFC: digital: fix possible memory leak in digital_tg_listen_mdaa()
69b3a13f0d nfc: fix error handling of nfc_proto_register()
2731eaac19 ethernet: s2io: fix setting mac address during resume
4c2eb80fc9 net: encx24j600: check error in devm_regmap_init_encx24j600
0904e1be2a net: stmmac: fix get_hw_feature() on old hardware
06251ea8d1 net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp
19a01522c5 net: korina: select CRC32
32b57d897e net: arc: select CRC32
2880dc1302 gpio: pca953x: Improve bias setting
d887745395 sctp: account stream padding length for reconf chunk
232c485c6b iio: dac: ti-dac5571: fix an error code in probe()
69696951de iio: ssp_sensors: fix error code in ssp_print_mcu_debug()
10ecff1522 iio: ssp_sensors: add more range checking in ssp_parse_dataframe()
ac0688bcd1 iio: light: opt3001: Fixed timeout error when 0 lux
3c00d93297 iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED
cf4b39907a iio: adc128s052: Fix the error handling path of 'adc128_probe()'
580c09a9ef iio: adc: aspeed: set driver data when adc probe.
1904050cac powerpc/xive: Discard disabled interrupts in get_irqchip_state()
5683ed468f x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically
0594f1d048 nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells
d07571672c EDAC/armada-xp: Fix output of uncorrectable error counter
dba8834bae virtio: write back F_VERSION_1 before validate
1b39a67856 USB: serial: option: add prod. id for Quectel EG91
41e178c138 USB: serial: option: add Telit LE910Cx composition 0x1204
848eac2cb7 USB: serial: option: add Quectel EC200S-CN module support
958e98ca52 USB: serial: qcserial: add EM9191 QDL support
733dcc08e9 Input: xpad - add support for another USB ID of Nacon GC-100
9ab5d539bc usb: musb: dsps: Fix the probe error path
278e483dc7 efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock()
27a847dbc9 efi/cper: use stack buffer for error record decoding
6e35a5e926 cb710: avoid NULL pointer subtraction
e71ce4a81e xhci: Enable trust tx length quirk for Fresco FL11 USB controller
01c2dcb67e xhci: Fix command ring pointer corruption while aborting a command
7ce7d4a46d xhci: guard accesses to ep_state in xhci_endpoint_reset()
783579057c mei: me: add Ice Lake-N device id.
9264bd22d7 x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails
10b77e16b3 watchdog: orion: use 0 for unset heartbeat
9acf1c10f1 btrfs: check for error when looking up inode during dir entry replay
625565fd80 btrfs: deal with errors when adding inode reference during log replay
6e2ac49b21 btrfs: deal with errors when replaying dir entry during log replay
005a07c9ac btrfs: unlock newly allocated extent buffer after error
e9f457f056 csky: Fixup regs.sr broken in ptrace
a6f4ea748a csky: don't let sigreturn play with priveleged bits of status register
98544ca6cb s390: fix strrchr() implementation
5959e22e07 nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^'
2e41b9c846 ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW
90cf96afa3 ALSA: hda/realtek - ALC236 headset MIC recording issue
33627fa4db ALSA: hda/realtek: Add quirk for Clevo X170KM-G
e96079ab1c ALSA: hda/realtek: Complete partial device name to avoid ambiguity
dd3f048315 ALSA: seq: Fix a potential UAF by wrong private_free call order
825786f723 ALSA: usb-audio: Add quirk for VF0770
43d9332526 ovl: simplify file splice
615b28244c Merge 5.4.154 into android11-5.4-lts
ce061ef43f Linux 5.4.154
291a48871e sched: Always inline is_percpu_thread()
3e105ecc4a scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported"
1ff5ee9d39 scsi: ses: Fix unsigned comparison with less than zero
83d857d6b0 drm/amdgpu: fix gart.bo pin_count leak
1843ae8c4b net: sun: SUNVNET_COMMON should depend on INET
6d1d7acb10 mac80211: check return value of rhashtable_init
2aaf3fd5e1 net: prevent user from passing illegal stab size
1e66a472b5 m68k: Handle arrivals of multiple signals correctly
be191c8e68 mac80211: Drop frames from invalid MAC address in ad-hoc mode
fffad5988f netfilter: nf_nat_masquerade: defer conntrack walk to work queue
b3cb063034 netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic
a9d8aa2d3c HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs
8c6680025b netfilter: ip6_tables: zero-initialize fragment offset
744b908a7f HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS
b6bccc978e ext4: correct the error path of ext4_write_inline_data_end()
de4a28b718 net: phy: bcm7xxx: Fixed indirect MMD operations
57f5a5a9ae UPSTREAM: ovl: simplify file splice
65d414cb38 Merge branch 'android11-5.4' into 'android11-5.4-lts'
ffab1c7d7c Merge 5.4.153 into android11-5.4-lts
940a14a7d8 Linux 5.4.153
6a89b1e0c2 x86/Kconfig: Correct reference to MWINCHIP3D
5b3b400741 x86/hpet: Use another crystalball to evaluate HPET usability
367f643191 x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
9e2a9da532 RISC-V: Include clone3() on rv32
a326f9c01c bpf, s390: Fix potential memory leak about jit_data
60bacf259e i2c: acpi: fix resource leak in reconfiguration device addition
b723b34a98 net: prefer socket bound to interface when not in VRF
17063cac40 i40e: Fix freeing of uninitialized misc IRQ vector
0a1fcc981d i40e: fix endless loop under rtnl
d6c0668119 gve: fix gve_get_stats()
d83787c26d rtnetlink: fix if_nlmsg_stats_size() under estimation
0311d97753 gve: Correct available tx qpl check
11cd944bb8 drm/nouveau/debugfs: fix file release memory leak
cb7e651879 video: fbdev: gbefb: Only instantiate device when built for IP32
04f981251e bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
809aa82ac6 netlink: annotate data races around nlk->bound
fd73c2e64b net: sfp: Fix typo in state machine debug string
c951c08a59 net/sched: sch_taprio: properly cancel timer from taprio_destroy()
c2c45102ae net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
8af0c7d3fb ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
ebe58e1c1a arm64: dts: ls1028a: add missing CAN nodes
1b9f0d242a arm64: dts: freescale: Fix SP805 clock-names
27e53e23a3 ptp_pch: Load module automatically if ID matches
a7b441a2e2 powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
c951a3be5e net_sched: fix NULL deref in fifo_set_limit()
414bb4ead1 phy: mdio: fix memory leak
b14f28126c bpf: Fix integer overflow in prealloc_elems_and_freelist()
a3d68a4245 bpf, arm: Fix register clobbering in div/mod implementation
e0c6e864d2 xtensa: call irqchip_init only when CONFIG_USE_OF is selected
d10a2a8f88 xtensa: use CONFIG_USE_OF instead of CONFIG_OF
73711563f5 xtensa: move XCHAL_KIO_* definitions to kmem_layout.h
c82cffe171 arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
14c9c75d48 ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
720a4dceee ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
6b2855ac7e soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
1179cd690a ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
bdc189d6b6 soc: qcom: socinfo: Fixed argument passed to platform_set_data()
1a0fe45501 bpf, mips: Validate conditional branch offsets
7ed0402445 MIPS: BPF: Restore MIPS32 cBPF JIT
4239cd380a ARM: dts: qcom: apq8064: use compatible which contains chipid
30d68bf74d ARM: dts: omap3430-sdp: Fix NAND device node
2abb4077fa xen/balloon: fix cancelled balloon action
42fbcbaa8a nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
f88420197a nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
fab338f33c ovl: fix missing negative dentry check in ovl_rename()
4920aae61b mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
47f7bb3dc2 xen/privcmd: fix error handling in mmap-resource processing
9d93cfdaf8 usb: typec: tcpm: handle SRC_STARTUP state if cc changes
b53aa224ad USB: cdc-acm: fix break reporting
3135935b7f USB: cdc-acm: fix racy tty buffer accesses
7c2392f03f Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
cc109ff104 ANDROID: Different fix for KABI breakage in 5.4.151 in struct sock
17eb597c8b Merge 5.4.152 into android11-5.4-lts
faaca480fd Linux 5.4.152
caff281e20 libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD.
fecbe957ef silence nfscache allocation warnings with kvzalloc
5546e3987d perf/x86: Reset destroy callback on event init failure
2787cde6cb kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
ba58770c14 KVM: do not shrink halt_poll_ns below grow_start
d67e01e5e0 tools/vm/page-types: remove dependency on opt_file for idle page tracking
65c7e3c973 scsi: ses: Retry failed Send/Receive Diagnostic commands
e4e756054d selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn
1f830ab345 selftests: be sure to make khdr before other targets
8b9c1c33e5 usb: dwc2: check return value after calling platform_get_resource()
5d124ee0d2 usb: testusb: Fix for showing the connection speed
350d048cc5 scsi: sd: Free scsi_disk device via put_device()
4f194b5769 ext2: fix sleeping in atomic bugs on error
2d8eb45674 sparc64: fix pci_iounmap() when CONFIG_PCI is not set
61504f62bb xen-netback: correct success/error reporting for the SKB-with-fraglist case
2ecca3b282 net: mdio: introduce a shutdown method to mdio device drivers
4659036941 ANDROID: Fix up KABI breakage in 5.4.151 in struct sock
0454b0c925 Merge 5.4.151 into android11-5.4-lts
31cdcb6d43 Linux 5.4.151
965147067f HID: usbhid: free raw_report buffers in usbhid_stop
6f2f68640b netfilter: ipset: Fix oversized kvmalloc() calls
fe9bb925e7 HID: betop: fix slab-out-of-bounds Write in betop_probe
24f3d26091 crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd()
62c5cacb09 usb: hso: remove the bailout parameter
fe57d53dd9 usb: hso: fix error handling code of hso_create_net_device
d29c7a1a32 hso: fix bailout in error case of probe
1f2b324e82 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
dd336267d8 PCI: Fix pci_host_bridge struct device release/free handling
e81f3b7e71 net: stmmac: don't attach interface until resume finishes
f8ffde0bb9 net: udp: annotate data race around udp_sk(sk)->corkflag
9dbf7e343b HID: u2fzero: ignore incomplete packets without data
d518ea0314 ext4: fix potential infinite loop in ext4_dx_readdir()
59c19fdcde ext4: fix reserved space counter leakage
c4b8db2b47 ext4: fix loff_t overflow in ext4_max_bitmap_size()
3253c87e1e ipack: ipoctal: fix module reference leak
9c802a0574 ipack: ipoctal: fix missing allocation-failure check
3fd682d461 ipack: ipoctal: fix tty-registration error handling
e6a71c173e ipack: ipoctal: fix tty registration race
8657158a3b ipack: ipoctal: fix stack information leak
91d5de0b71 debugfs: debugfs_create_file_size(): use IS_ERR to check for error
98574c91e3 elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
9356e4dceb perf/x86/intel: Update event constraints for ICX
0fcfaa8ed9 af_unix: fix races in sk_peer_pid and sk_peer_cred accesses
694b0cee7f net: sched: flower: protect fl_walk() with rcu
5a31d4e73a net: hns3: do not allow call hns3_nic_net_open repeatedly
87de237b0b scsi: csiostor: Add module softdep on cxgb4
1b6ccfcec6 Revert "block, bfq: honor already-setup queue merges"
753096c38a selftests, bpf: test_lwt_ip_encap: Really disable rp_filter
897d1401d1 e100: fix buffer overrun in e100_get_regs
93372e02f9 e100: fix length calculation in e100_get_regs_len
a2624e0934 net: ipv4: Fix rtnexthop len when RTA_FLOW is present
c37d3287e7 hwmon: (tmp421) fix rounding for negative values
8a07d5aba3 hwmon: (tmp421) report /PVLD condition as fault
ec018021cf sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb
9bee85de2c mac80211-hwsim: fix late beacon hrtimer handling
21c3a84493 mac80211: mesh: fix potentially unaligned access
ab85997465 mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap
87e06c4428 mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug
a6c42ae153 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs
2c30592255 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20
9a571d83ac drm/amd/display: Pass PCI deviceid into DC
3443eb443f x86/kvmclock: Move this_cpu_pvti into kvmclock.h
50149e0866 mac80211: fix use-after-free in CCMP/GCMP RX
956bc3ee31 scsi: ufs: Fix illegal offset in UPIU event trace
44d3c480e4 hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field
200ced5ba7 hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field
6cb01fe630 hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field
504cf969d5 fs-verity: fix signed integer overflow with i_size near S64_MAX
b2fb6ce06c usb: cdns3: fix race condition before setting doorbell
e2370e1935 cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
67c98e0231 cpufreq: schedutil: Use kobject release() method to free sugov_tunables
883f7897a2 tty: Fix out-of-bound vmalloc access in imageblit
ec298edf02 Merge 5.4.150 into android11-5.4-lts
2abce4ec2a Merge 5.4.149 into android11-5.4-lts
5785e5360a Revert "crypto: public_key: fix overflow during implicit conversion"
3a7dc5b4cf Linux 5.4.150
27f8c4402c qnx4: work around gcc false positive warning bug
3a0f951e37 xen/balloon: fix balloon kthread freezing
f80b679381 arm64: dts: marvell: armada-37xx: Extend PCIe MEM space
04783de9c0 thermal/drivers/int340x: Do not set a wrong tcc offset on resume
de1c350680 EDAC/synopsys: Fix wrong value type assignment for edac_mode
8ede848bc9 spi: Fix tegra20 build with CONFIG_PM=n
d193f7dbf4 net: 6pack: Fix tx timeout and slot time
fa56f2c987 alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile
af4a142ab7 arm64: Mark __stack_chk_guard as __ro_after_init
aeb19da46c parisc: Use absolute_pointer() to define PAGE0
8cd34eb616 qnx4: avoid stringop-overread errors
1214ace614 sparc: avoid stringop-overread errors
113a8edfb9 net: i825xx: Use absolute_pointer for memcpy from fixed memory location
2397ea2db2 compiler.h: Introduce absolute_pointer macro
d12ddd843f blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd
9d77988232 sparc32: page align size in arch_dma_alloc
ec49f3f7f6 nvme-multipath: fix ANA state updates when a namespace is not present
29917bbb07 xen/balloon: use a kernel thread instead a workqueue
93937596e0 bpf: Add oversize check before call kvcalloc()
7273cb182f ipv6: delay fib6_sernum increase in fib6_add
7432ecc55f m68k: Double cast io functions to unsigned long
29c70b0d33 net: stmmac: allow CSR clock of 300MHz
1da750d1e2 net: macb: fix use after free on rmmod
ebb8d26d93 blktrace: Fix uaf in blk_trace access after removing by sysfs
2b5befcd40 md: fix a lock order reversal in md_alloc
42d3711c23 irqchip/gic-v3-its: Fix potential VPE leak on error
71f323f605 irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build
1b59625da6 scsi: lpfc: Use correct scnprintf() limit
30d373dc35 scsi: qla2xxx: Restore initiator in dual mode
d140ccb140 cifs: fix a sign extension bug
1c1062c5cf thermal/core: Potential buffer overflow in thermal_build_list_of_policies()
b869901cab fpga: machxo2-spi: Fix missing error code in machxo2_write_complete()
0ebc3e688f fpga: machxo2-spi: Return an error on failure
5bcead7cde tty: synclink_gt: rename a conflicting function name
c5f27aedf6 tty: synclink_gt, drop unneeded forward declarations
1deb94d37a scsi: iscsi: Adjust iface sysfs attr detection
d0f4a2eeeb net/mlx4_en: Don't allow aRFS for encapsulated packets
ae7b957ef0 qed: rdma - don't wait for resources under hw error recovery flow
23716d7153 gpio: uniphier: Fix void functions to remove return value
f7fb7dbdfb net/smc: add missing error check in smc_clc_prfx_set()
363438ed5d bnxt_en: Fix TX timeout when TX ring size is set to the smallest
4c4c305291 enetc: Fix illegal access when reading affinity_hint
cf9138c966 platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR()
a8e8b14819 afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation
acce91ba0d net: hso: fix muxed tty registration
494260e20a serial: mvebu-uart: fix driver's tx_empty callback
2d7c20db72 xhci: Set HCD flag to defer primary roothub registration
381c8ce0ab btrfs: prevent __btrfs_dump_space_info() to underflow its free space
d4ec140e71 erofs: fix up erofs_lookup tracepoint
7751f609ea mcb: fix error handling in mcb_alloc_bus()
406ff5bf72 USB: serial: option: add device id for Foxconn T99W265
4b2cf0faff USB: serial: option: remove duplicate USB device ID
59564b0183 USB: serial: option: add Telit LN920 compositions
5cc674a3f1 USB: serial: mos7840: remove duplicated 0xac24 device ID
20c9fdde30 usb: core: hcd: Add support for deferring roothub registration
a6c7d3c2d1 Re-enable UAS for LaCie Rugged USB3-FW with fk quirk
4dc56951a8 staging: greybus: uart: fix tty use after free
aa2c274c27 binder: make sure fd closes complete
93fa08e9a3 USB: cdc-acm: fix minor-number release
0dc1cfa7b9 USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter
85d3493085 usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c
d4e7647695 xen/x86: fix PV trap handling on secondary processors
8b06b0f17f cifs: fix incorrect check for null pointer in header_assemble
b1f6efa27b usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned()
b8c8060651 usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA
ff275c870e usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave
f013a5001b usb: gadget: r8a66597: fix a loop in set_feature()
aa40438c71 ocfs2: drop acl cache for directories too
e74e2950a0 Linux 5.4.149
3825263486 drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV
409cb0b3d4 rtc: rx8010: select REGMAP_I2C
43832bf763 blk-throttle: fix UAF by deleteing timer in blk_throtl_exit()
c37a34d797 pwm: stm32-lp: Don't modify HW state in .remove() callback
8a29e68ea8 pwm: rockchip: Don't modify HW state in .remove() callback
ed60d2db31 pwm: img: Don't modify HW state in .remove() callback
b16f4acf6b nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group
594addd436 nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group
237ca37ca5 nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group
288c8b5ba5 nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group
dc70f0c8c3 nilfs2: fix NULL pointer in nilfs_##name##_attr_release
9c3ba40488 nilfs2: fix memory leak in nilfs_sysfs_create_device_group
fb4c7d2923 btrfs: fix lockdep warning while mounting sprout fs
3f2d5c11be ceph: lockdep annotations for try_nonblocking_invalidate
3bbb11261a ceph: request Fw caps before updating the mtime in ceph_write_iter
2c89a856fa dmaengine: xilinx_dma: Set DMA mask for coherent APIs
2f3206199d dmaengine: ioat: depends on !UML
644f1e87fe dmaengine: sprd: Add missing MODULE_DEVICE_TABLE
445a3379f6 parisc: Move pci_dev_is_behind_card_dino to where it is used
2f7bfc07e3 drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
a12743d072 thermal/core: Fix thermal_cooling_device_register() prototype
c7b9a866ee Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH
3c1d9b650c net: stmmac: reset Tx desc base address before restarting Tx
729f9d5ee3 phy: avoid unnecessary link-up delay in polling mode
81e6b51709 pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered
b94def8a47 profiling: fix shift-out-of-bounds bugs
7e98111cb2 nilfs2: use refcount_dec_and_lock() to fix potential UAF
5607b1bae1 prctl: allow to setup brk for et_dyn executables
b40301607c 9p/trans_virtio: Remove sysfs file on probe failure
c3b45ea0a3 thermal/drivers/exynos: Fix an error code in exynos_tmu_probe()
e106080303 dmaengine: acpi: Avoid comparison GSI with Linux vIRQ
93f8a98ad8 um: virtio_uml: fix memory leak on init failures
4cd05e390a staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb()
2f4b67bceb sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
cbd10b1189 sctp: validate chunk size in __rcv_asconf_lookup
6a12918e90 ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE
2f7974cd7b ARM: 9079/1: ftrace: Add MODULE_PLTS support
1b27a03d12 ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
490be340c8 ARM: 9077/1: PLT: Move struct plt_entries definition to header
278df06460 apparmor: remove duplicate macro list_entry_is_head()
f23763ab46 ARM: Qualify enabling of swiotlb_init()
6bfdc3056c s390/pci_mmio: fully validate the VMA before calling follow_pte()
bd292c6873 console: consume APC, DM, DCS
b0c813fbbf KVM: remember position in kvm->vcpus array
5163578e9d PCI/ACPI: Add Ampere Altra SOC MCFG quirk
ec29e33e5c PCI: aardvark: Fix reporting CRS value
3f0e275e43 PCI: pci-bridge-emul: Add PCIe Root Capabilities Register
296895c4f0 PCI: aardvark: Indicate error in 'val' when config read fails
2fcb7b7a1d PCI: pci-bridge-emul: Fix big-endian support
c4f92aff87 Merge 5.4.148 into android11-5.4-lts
07e5f23d3f Linux 5.4.148
54ac8339ae s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant
a5fc48000b s390/bpf: Fix optimizing out zero-extensions
f7f1bac898 net: renesas: sh_eth: Fix freeing wrong tx descriptor
3d32ce5472 ip_gre: validate csum_start only on pull
f9b308f730 qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom
93f54354cc fq_codel: reject silly quantum parameters
d448b240b1 netfilter: socket: icmp6: fix use-after-scope
b79204169d net: dsa: b53: Fix calculating number of switch ports
d5c0f016ae perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64}
114bf5776f ARC: export clear_user_page() for modules
9b63c27d6b mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()'
14e0fdc43d PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n
810f9b6f0a KVM: arm64: Handle PSCI resets before userspace touches vCPU state
5f289dcf0b mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set
e1746c27c3 PCI: Fix pci_dev_str_match_path() alloc while atomic bug
beaf65f0fe mfd: axp20x: Update AXP288 volatile ranges
4a6c7c818b NTB: perf: Fix an error code in perf_setup_inbuf()
5a16141949 NTB: Fix an error code in ntb_msit_probe()
0980697969 ethtool: Fix an error code in cxgb2.c
f336aa92b4 PCI: ibmphp: Fix double unmap of io_mem
0f9550c4f4 block, bfq: honor already-setup queue merges
b61a99dda3 net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920
79b584d859 Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6
cf4168c4e0 PCI: Add ACS quirks for Cavium multi-function devices
b3435cd968 tracing/probes: Reject events which have the same name of existing one
32280649f0 mfd: Don't use irq_create_mapping() to resolve a mapping
e904621ae0 fuse: fix use after free in fuse_read_interrupt()
a1eaaa6b7d PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms
47c4490617 mfd: db8500-prcmu: Adjust map to reality
88834a6253 dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation
8656566821 mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range()
d291cca2c4 net: hns3: fix the timing issue of VF clearing interrupt sources
65bcb8f73a net: hns3: disable mac in flr process
d8fe64c351 net: hns3: change affinity_mask to numa node range
dede0381da net: hns3: pad the short tunnel frame before sending to hardware
4bf2c9605d KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers
235f782d5e ibmvnic: check failover_pending in login response
d3939844eb dt-bindings: arm: Fix Toradex compatible typo
c642afd17a qed: Handle management FW error
9ebbb8b964 tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()
baf4504771 net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
498e765b85 net/af_unix: fix a data-race in unix_dgram_poll
e7332a1ac1 vhost_net: fix OoB on sendmsg() failure.
172749c879 events: Reuse value read using READ_ONCE instead of re-reading it
cd78d9c996 net/mlx5: Fix potential sleeping in atomic context
48e79555c2 net/mlx5: FWTrace, cancel work on alloc pd error flow
4655f8a5af perf machine: Initialize srcline string member in add_location struct
6808e70a77 tipc: increase timeout in tipc_sk_enqueue()
678787dcfe r6040: Restore MDIO clock frequency after MAC reset
efe35db948 net/l2tp: Fix reference count leak in l2tp_udp_recv_core
5ab04a4ffe dccp: don't duplicate ccid when cloning dccp sock
6c4b7a87ba ptp: dp83640: don't define PAGE0
faf9d46542 net-caif: avoid user-triggerable WARN_ON(1)
79ab38864d tipc: fix an use-after-free issue in tipc_recvmsg
08f33350ed x86/mm: Fix kern_addr_valid() to cope with existing but not present entries
fde4caf6fe s390/sclp: fix Secure-IPL facility detection
15b674b1e5 drm/etnaviv: add missing MMU context put when reaping MMU mapping
b2ec1e6f1d drm/etnaviv: reference MMU context when setting up hardware state
5827dbac41 drm/etnaviv: fix MMU context leak on GPU reset
5e67b38435 drm/etnaviv: exec and MMU state is lost when resetting the GPU
7068030d5e drm/etnaviv: keep MMU context across runtime suspend/resume
a7970d4f00 drm/etnaviv: stop abusing mmu_context as FE running marker
ee52ccecfe drm/etnaviv: put submit prev MMU context when it exists
a9bacefda0 drm/etnaviv: return context from etnaviv_iommu_context_get
b56b6c51a9 drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10
c221eb008a PCI: Add AMD GPU multi-function power dependencies
d180a373a0 PM: base: power: don't try to use non-existing RTC for storing data
484fbe9cc0 arm64/sve: Use correct size when reinitialising SVE state
2f72542033 bnx2x: Fix enabling network interfaces without VFs
66c88a4793 xen: reset legacy rtc flag for PV domU
c7fab1f536 btrfs: fix upper limit for max_inline for page size 64K
b9cc70e3dc drm/panfrost: Clamp lock region to Bifrost minimum
9a6c885489 drm/panfrost: Use u64 for size in lock_region
6c635129bf drm/panfrost: Simplify lock_region calculation
825ba38dfd drm/amdgpu: Fix BUG_ON assert
d7a936da63 drm/msi/mdp4: populate priv->kms in mdp4_kms_init
90358cb02a net: dsa: lantiq_gswip: fix maximum frame length
c1f12f440c lib/test_stackinit: Fix static initializer test
3c232895b8 platform/chrome: cros_ec_proto: Send command again when timeout occurs
0569920e43 memcg: enable accounting for pids in nested pid namespaces
d0ddb80bbf mm,vmscan: fix divide by zero in get_scan_count
22b11dbbf9 mm/hugetlb: initialize hugetlb_usage in mm_init
1dc6df795c s390/pv: fix the forcing of the swiotlb
f3b57cf090 cpufreq: powernv: Fix init_chip_info initialization in numa=off
b5eb54c4a9 scsi: qla2xxx: Sync queue idx with queue_pair_map idx
f499a9e9ed scsi: qla2xxx: Changes to support kdump kernel
cfa4591328 scsi: BusLogic: Fix missing pr_cont() use
a701ae9a0d ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
1a2f728b03 parisc: fix crash with signals and alloca
76bebc93e1 net: w5100: check return value after calling platform_get_resource()
3179dd79db fix array-index-out-of-bounds in taprio_change
ef9a7867b2 net: fix NULL pointer reference in cipso_v4_doi_free
88a4ed85e8 ath9k: fix sleeping in atomic context
99b950d55e ath9k: fix OOB read ar9300_eeprom_restore_internal
5f70ea4a5c parport: remove non-zero check on count
c30ea33b03 net/mlx5: DR, Enable QP retransmission
c9095f788d iwlwifi: mvm: fix access to BSS elements
f950996d64 iwlwifi: mvm: avoid static queue number aliasing
2db5ae5b28 iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
3da13a1e2a drm/amdkfd: Account for SH/SE count when setting up cu masks.
2af60889c8 ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
98381f840f ASoC: rockchip: i2s: Fix regmap_ops hang
a1c7bc02e1 usbip:vhci_hcd USB port can get stuck in the disabled state
4f6095b0c9 usbip: give back URBs for unsent unlink requests during cleanup
9a4a680529 usb: musb: musb_dsps: request_irq() after initializing musb
d24381e5a7 Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"
aa40cf19bf cifs: fix wrong release in sess_alloc_buffer() failed path
39111cbb7b mmc: core: Return correct emmc response in case of ioctl error
26f55b60f2 selftests/bpf: Enlarge select() timeout for test_maps
48f5a5f027 mmc: rtsx_pci: Fix long reads when clock is prescaled
4e773c5553 mmc: sdhci-of-arasan: Check return value of non-void funtions
a73bbfabfe of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
2fdf7d38ee ASoC: Intel: Skylake: Fix passing loadable flag for module
f6ff4d5609 ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
736f60bd48 btrfs: tree-log: check btrfs_lookup_data_extent return value
53a72858bc m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
3710cff57d drm/exynos: Always initialize mapping in exynos_drm_register_dma()
727c973ffe lockd: lockd server-side shouldn't set fl_ops
a18cfd715e usb: chipidea: host: fix port index underflow and UBSAN complains
8deedce385 gfs2: Don't call dlm after protocol is unmounted
50cf8f1b6c staging: rts5208: Fix get_ms_information() heap buffer size
8dfd785ae1 rpc: fix gss_svc_init cleanup on failure
0bc818e023 tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
2918eca497 serial: sh-sci: fix break handling for sysrq
d02a1c5fd7 opp: Don't print an error if required-opps is missing
d772d993b0 Bluetooth: Fix handling of LE Enhanced Connection Complete
fb8593e8ed nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
072660f6c6 arm64: dts: ls1046a: fix eeprom entries
08825a784e arm64: tegra: Fix compatible string for Tegra132 CPUs
a6b69a76c3 ARM: tegra: tamonten: Fix UART pad setting
a66049c5ff mac80211: Fix monitor MTU limit so that A-MSDUs get through
1e2842fb7e drm/display: fix possible null-pointer dereference in dcn10_set_clock()
cf82fe45be gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port()
bbaa21da55 net/mlx5: Fix variable type to match 64bit
0d563020b8 Bluetooth: avoid circular locks in sco_sock_connect
37d7ae2b05 Bluetooth: schedule SCO timeouts with delayed_work
c408efcb8a selftests/bpf: Fix xdp_tx.c prog section name
350e7501ee drm/msm: mdp4: drop vblank get/put from prepare/complete_commit
e545080477 net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
ed3400f22b arm64: dts: qcom: sdm660: use reg value for memory node
52f8a30730 ARM: dts: imx53-ppd: Fix ACHC entry
e15afa6747 media: tegra-cec: Handle errors of clk_prepare_enable()
53d02b0409 media: TDA1997x: fix tda1997x_query_dv_timings() return value
71de2779e5 media: v4l2-dv-timings.c: fix wrong condition in two for-loops
d785cef384 media: imx258: Limit the max analogue gain to 480
33bd83fe3f media: imx258: Rectify mismatch of VTS value
8d179746b3 ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output
37414bd6ec arm64: tegra: Fix Tegra194 PCIe EP compatible string
5a24034ad8 bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
b6cee35839 workqueue: Fix possible memory leaks in wq_numa_init()
9b4f0170e0 Bluetooth: skip invalid hci_sync_conn_complete_evt
7b1718666f ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
76cbc142a5 samples: bpf: Fix tracex7 error raised on the missing argument
917eb0bbb8 staging: ks7010: Fix the initialization of the 'sleep_status' structure
44fd61a8bd serial: 8250_pci: make setup_port() parameters explicitly unsigned
4beadefea8 hvsi: don't panic on tty_register_driver failure
af0bd97b9d xtensa: ISS: don't panic in rs_init
5418023f81 serial: 8250: Define RX trigger levels for OxSemi 950 devices
b050848bba s390: make PCI mio support a machine flag
0dd8da8ad0 s390/jump_label: print real address in a case of a jump label bug
91b4d44c7c flow_dissector: Fix out-of-bounds warnings
8076709052 ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
faf0749c90 video: fbdev: riva: Error out if 'pixclock' equals zero
ae0d210aa7 video: fbdev: kyro: Error out if 'pixclock' equals zero
98551f0a7b video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
9dff06c505 bpf/tests: Do not PASS tests without actually testing the result
58831317c9 bpf/tests: Fix copy-and-paste error in double word test
a23430e79e drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
9baa552b2f drm/amd/display: Fix timer_per_pixel unit error
6c78ee1aec tty: serial: jsm: hold port lock when reporting modem line changes
7993ee1733 staging: board: Fix uninitialized spinlock when attaching genpd
995567ded0 usb: gadget: composite: Allow bMaxPower=0 if self-powered
44bbd4e636 USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
7b96de5c30 usb: gadget: u_ether: fix a potential null pointer dereference
e1480bcb40 usb: host: fotg210: fix the actual_length of an iso packet
33109bdf2c usb: host: fotg210: fix the endpoint's transactional opportunities calculation
b190fdb93a igc: Check if num of q_vectors is smaller than max before array access
f4bf2fdfe3 drm: avoid blocking in drm_clients_info's rcu section
a1d12196c3 Smack: Fix wrong semantics in smk_access_entry()
c454b1a215 netlink: Deal with ESRCH error in nlmsg_notify()
5adbbb27bb video: fbdev: kyro: fix a DoS bug by restricting user input
4ee6cc0f52 ARM: dts: qcom: apq8064: correct clock names
b9707a9504 iavf: fix locking of critical sections
35429d3aa3 iavf: do not override the adapter state in the watchdog task
ab03f15c1d iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
0de0c16739 tipc: keep the skb in rcv queue until the whole data is read
fe14f10c07 PCI: Use pci_update_current_state() in pci_enable_device_flags()
7d35690974 crypto: mxs-dcp - Use sg_mapping_iter to copy data
80bec14b4e media: dib8000: rewrite the init prbs logic
4cab14bcff ASoC: atmel: ATMEL drivers don't need HAS_DMA
4a7c6e9159 drm/amdgpu: Fix amdgpu_ras_eeprom_init()
d766826eee userfaultfd: prevent concurrent API initialization
7bf2913a5b kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
0ac2ecb915 MIPS: Malta: fix alignment of the devicetree buffer
debdff9600 f2fs: fix to unmap pages from userspace process in punch_hole()
1c28c23dc8 f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
1ca5b00782 f2fs: fix to account missing .skipped_gc_rwsem
ec5cab3798 KVM: PPC: Fix clearing never mapped TCEs in realmode
e46ce5a8ab clk: at91: clk-generated: Limit the requested rate to our range
557f6445e3 clk: at91: clk-generated: pass the id of changeable parent at registration
d93a37889e clk: at91: sam9x60: Don't use audio PLL
57188e2cac fscache: Fix cookie key hashing
e2e3758a2c platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call
ba5d4dc003 KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live
a02309beb2 HID: i2c-hid: Fix Elan touchpad regression
f934961bf4 scsi: target: avoid per-loop XCOPY buffer allocations
389946024f powerpc/config: Renable MTD_PHYSMAP_OF
db16408d52 scsi: qedf: Fix error codes in qedf_alloc_global_queues()
5e56c8d843 scsi: qedi: Fix error codes in qedi_alloc_global_queues()
a90ef02f01 scsi: smartpqi: Fix an error code in pqi_get_raid_map()
3365d41c04 pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
ef476b8d5a scsi: fdomain: Fix error return code in fdomain_probe()
9ee7b45edd SUNRPC: Fix potential memory corruption
be09cbd6a3 dma-debug: fix debugfs initialization order
9315497b17 openrisc: don't printk() unconditionally
f56ee9af23 f2fs: reduce the scope of setting fsck tag when de->name_len is zero
2a2afb6d26 f2fs: show f2fs instance in printk_ratelimited
25ed049891 RDMA/efa: Remove double QP type assignment
b8bb4b2839 powerpc/stacktrace: Include linux/delay.h
02889ac588 vfio: Use config not menuconfig for VFIO_NOIOMMU
b900cc4816 pinctrl: samsung: Fix pinctrl bank pin count
e69c283621 docs: Fix infiniband uverbs minor number
fb42b9801e RDMA/iwcm: Release resources if iw_cm module initialization fails
7930b1f98d IB/hfi1: Adjust pkey entry in index 0
2b1addd585 scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
a02982545e f2fs: quota: fix potential deadlock
bd74d6de0b HID: input: do not report stylus battery state as "full"
0656eb5e7e PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
2b58db229e PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response
0f39f8429c PCI: aardvark: Fix checking for PIO status
d810fa6f5f PCI: xilinx-nwl: Enable the clock through CCF
d43ad02ad3 PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
3aa6d023c6 PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
4d2bc69df9 PCI/portdrv: Enable Bandwidth Notification only if port supports it
0445da50b7 ARM: 9105/1: atags_to_fdt: don't warn about stack size
8ec08f1431 libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
7cfbf391e8 dmaengine: imx-sdma: remove duplicated sdma_load_context
788122c99d Revert "dmaengine: imx-sdma: refine to load context only once"
86e1abcd14 media: rc-loopback: return number of emitters rather than error
9d91046f6b media: uvc: don't do DMA on stack
1ccb1fa41f VMCI: fix NULL pointer dereference when unmapping queue pair
80d1675903 dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
a6d4ac3f86 power: supply: max17042: handle fails of reading status register
668370dd4c block: bfq: fix bfq_set_next_ioprio_data()
cfdd25cd42 crypto: public_key: fix overflow during implicit conversion
3411b481ed arm64: head: avoid over-mapping in map_memory
991b64b89b soc: aspeed: p2a-ctrl: Fix boundary check for mmap
2712f29c44 soc: aspeed: lpc-ctrl: Fix boundary check for mmap
24c245de17 soc: qcom: aoss: Fix the out of bound usage of cooling_devs
603dbb1fa2 pinctrl: ingenic: Fix incorrect pull up/down info
eda59ca42f pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
d4acec5e94 tools/thermal/tmon: Add cross compiling support
8a964aa6ed 9p/xen: Fix end of loop tests for list_for_each_entry
7d81fcc203 include/linux/list.h: add a macro to test if entry is pointing to the head
4bc0d1b535 xen: fix setting of max_pfn in shared_info
27f3b7f5c6 powerpc/perf/hv-gpci: Fix counter value parsing
7e9e6d0e07 PCI/MSI: Skip masking MSI-X on Xen PV
2edc06fa38 blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
8da22cc41a blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
cd7b39e7c4 btrfs: reset replace target device to allocation state on close
8554095328 btrfs: wake up async_delalloc_pages waiters after submit
d609c63a71 rtc: tps65910: Correct driver module alias
4076dc42c4 Merge branch 'android11-5.4' into 'android11-5.4-lts'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Idd628e993b6566952e119bfe31f4c8fe87d818a8
This commit is contained in:
Greg Kroah-Hartman
2021-11-24 14:46:49 +01:00
998 changed files with 9365 additions and 4105 deletions

View File

@@ -3002,10 +3002,10 @@
65 = /dev/infiniband/issm1 Second InfiniBand IsSM device
...
127 = /dev/infiniband/issm63 63rd InfiniBand IsSM device
128 = /dev/infiniband/uverbs0 First InfiniBand verbs device
129 = /dev/infiniband/uverbs1 Second InfiniBand verbs device
192 = /dev/infiniband/uverbs0 First InfiniBand verbs device
193 = /dev/infiniband/uverbs1 Second InfiniBand verbs device
...
159 = /dev/infiniband/uverbs31 31st InfiniBand verbs device
223 = /dev/infiniband/uverbs31 31st InfiniBand verbs device
232 char Biometric Devices
0 = /dev/biometric/sensor0/fingerprint first fingerprint sensor on first device

View File

@@ -5486,6 +5486,13 @@
as generic guest with no PV drivers. Currently support
XEN HVM, KVM, HYPER_V and VMWARE guest.
xen.balloon_boot_timeout= [XEN]
The time (in seconds) to wait before giving up to boot
in case initial ballooning fails to free enough memory.
Applies only when running as HVM or PVH guest and
started with less memory configured than allowed at
max. Default is 180.
xen.event_eoi_delay= [XEN]
How long to delay EOI handling in case of event
storms (jiffies). Default is 10.

View File

@@ -49,7 +49,7 @@ properties:
- const: toradex,apalis_t30
- const: nvidia,tegra30
- items:
- const: toradex,apalis_t30-eval-v1.1
- const: toradex,apalis_t30-v1.1-eval
- const: toradex,apalis_t30-eval
- const: toradex,apalis_t30-v1.1
- const: toradex,apalis_t30

View File

@@ -122,7 +122,7 @@ on various other factors also like;
so the device should have enough free bytes available its OOB/Spare
area to accommodate ECC for entire page. In general following expression
helps in determining if given device can accommodate ECC syndrome:
"2 + (PAGESIZE / 512) * ECC_BYTES" >= OOBSIZE"
"2 + (PAGESIZE / 512) * ECC_BYTES" <= OOBSIZE"
where
OOBSIZE number of bytes in OOB/spare area
PAGESIZE number of bytes in main-area of device page

View File

@@ -13,6 +13,14 @@ common regulator binding documented in:
Required properties of the main device node (the parent!):
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
[1] If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
property is specified, then all the eight voltage values for the
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
Optional properties of the main device node (the parent!):
- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
units for buck2 when changing voltage using gpio dvs. Refer to [1] below
for additional information.
@@ -25,26 +33,13 @@ Required properties of the main device node (the parent!):
units for buck4 when changing voltage using gpio dvs. Refer to [1] below
for additional information.
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
property should specify atleast one voltage level (which would be a
safe operating voltage).
If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
property is specified, then all the eight voltage values for the
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
Optional properties of the main device node (the parent!):
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
Additional properties required if either of the optional properties are used:
- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
- s5m8767,pmic-buck-default-dvs-idx: Default voltage setting selected from
the possible 8 options selectable by the dvs gpios. The value of this
property should be between 0 and 7. If not specified or if out of range, the
default value of this property is set to 0.

View File

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

View File

@@ -61,7 +61,7 @@ extern inline void set_hae(unsigned long new_hae)
* Change virtual addresses to physical addresses and vv.
*/
#ifdef USE_48_BIT_KSEG
static inline unsigned long virt_to_phys(void *address)
static inline unsigned long virt_to_phys(volatile void *address)
{
return (unsigned long)address - IDENT_ADDR;
}
@@ -71,7 +71,7 @@ static inline void * phys_to_virt(unsigned long address)
return (void *) (address + IDENT_ADDR);
}
#else
static inline unsigned long virt_to_phys(void *address)
static inline unsigned long virt_to_phys(volatile void *address)
{
unsigned long phys = (unsigned long)address;
@@ -107,7 +107,7 @@ static inline void * phys_to_virt(unsigned long address)
extern unsigned long __direct_map_base;
extern unsigned long __direct_map_size;
static inline unsigned long __deprecated virt_to_bus(void *address)
static inline unsigned long __deprecated virt_to_bus(volatile void *address)
{
unsigned long phys = virt_to_phys(address);
unsigned long bus = phys + __direct_map_base;

View File

@@ -1123,7 +1123,7 @@ void clear_user_page(void *to, unsigned long u_vaddr, struct page *page)
clear_page(to);
clear_bit(PG_dc_clean, &page->flags);
}
EXPORT_SYMBOL(clear_user_page);
/**********************************************************************
* Explicit Cache flush request from user space via syscall

View File

@@ -85,6 +85,7 @@ config ARM
select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG
select HAVE_FUNCTION_TRACER if !XIP_KERNEL && (CC_IS_GCC || CLANG_VERSION >= 100000)
select HAVE_FUTEX_CMPXCHG if FUTEX
select HAVE_GCC_PLUGINS
select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
select HAVE_IDE if PCI || ISA || PCMCIA

View File

@@ -66,15 +66,15 @@ KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
# Note that GCC does not numerically define an architecture version
# macro, but instead defines a whole series of macros which makes
# testing for a specific architecture or later rather impossible.
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m
arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 -march=armv7-a
arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 -march=armv6
# Only override the compiler option if ARMv6. The ARMv6K extensions are
# always available in ARMv7
ifeq ($(CONFIG_CPU_32v6),y)
arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 -march=armv6k
endif
arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 -march=armv5te
arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t
arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4
arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3m
@@ -88,7 +88,7 @@ tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi
tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi
tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
tune-$(CONFIG_CPU_ARM946E) =-mtune=arm9e
tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi
@@ -96,11 +96,11 @@ tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi
tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110
tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100
tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale)
tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
tune-$(CONFIG_CPU_XSCALE) =-mtune=xscale
tune-$(CONFIG_CPU_XSC3) =-mtune=xscale
tune-$(CONFIG_CPU_FEROCEON) =-mtune=xscale
tune-$(CONFIG_CPU_V6) =-mtune=arm1136j-s
tune-$(CONFIG_CPU_V6K) =-mtune=arm1136j-s
# Evaluate tune cc-option calls now
tune-y := $(tune-y)

View File

@@ -90,6 +90,8 @@ $(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \
$(addprefix $(obj)/,$(libfdt_hdrs))
ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
OBJS += $(libfdt_objs) atags_to_fdt.o
endif

View File

@@ -47,7 +47,10 @@ extern char * strchrnul(const char *, int);
#endif
#ifdef CONFIG_KERNEL_XZ
/* Prevent KASAN override of string helpers in decompressor */
#undef memmove
#define memmove memmove
#undef memcpy
#define memcpy memcpy
#include "../../../../lib/decompress_unxz.c"
#endif

View File

@@ -69,7 +69,6 @@
isc: isc@f0008000 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
status = "okay";
};
qspi1: spi@f0024000 {

View File

@@ -262,7 +262,7 @@
&macb1 {
status = "okay";
phy-mode = "rgmii";
phy-mode = "rmii";
#address-cells = <1>;
#size-cells = <0>;

View File

@@ -56,6 +56,7 @@
panel {
compatible = "edt,etm0700g0dh6";
pinctrl-0 = <&pinctrl_display_gpio>;
pinctrl-names = "default";
enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
port {
@@ -76,8 +77,7 @@
regulator-name = "vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
enable-active-high;
gpio = <&gpio1 2 0>;
};
};

View File

@@ -70,6 +70,12 @@
clock-frequency = <11289600>;
};
achc_24M: achc-clock {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
};
sgtlsound: sound {
compatible = "fsl,imx53-cpuvo-sgtl5000",
"fsl,imx-audio-sgtl5000";
@@ -287,16 +293,13 @@
&gpio4 12 GPIO_ACTIVE_LOW>;
status = "okay";
spidev0: spi@0 {
compatible = "ge,achc";
reg = <0>;
spi-max-frequency = <1000000>;
};
spidev1: spi@1 {
compatible = "ge,achc";
reg = <1>;
spi-max-frequency = <1000000>;
spidev0: spi@1 {
compatible = "ge,achc", "nxp,kinetis-k20";
reg = <1>, <0>;
vdd-supply = <&reg_3v3>;
vdda-supply = <&reg_3v3>;
clocks = <&achc_24M>;
reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
};
gpioxra0: gpio@2 {

View File

@@ -515,7 +515,7 @@
compatible = "bosch,bma180";
reg = <0x41>;
pinctrl-names = "default";
pintcrl-0 = <&bma180_pins>;
pinctrl-0 = <&bma180_pins>;
interrupt-parent = <&gpio4>;
interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */
};

View File

@@ -101,7 +101,7 @@
nand@1,0 {
compatible = "ti,omap2-nand";
reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
reg = <1 0 4>; /* CS1, offset 0, IO size 4 */
interrupt-parent = <&gpmc>;
interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
<1 IRQ_TYPE_NONE>; /* termcount */

View File

@@ -198,7 +198,7 @@
clock-frequency = <19200000>;
};
pxo_board {
pxo_board: pxo_board {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
@@ -1147,7 +1147,7 @@
};
gpu: adreno-3xx@4300000 {
compatible = "qcom,adreno-3xx";
compatible = "qcom,adreno-320.2", "qcom,adreno";
reg = <0x04300000 0x20000>;
reg-names = "kgsl_3d0_reg_memory";
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
@@ -1162,7 +1162,6 @@
<&mmcc GFX3D_AHB_CLK>,
<&mmcc GFX3D_AXI_CLK>,
<&mmcc MMSS_IMEM_AHB_CLK>;
qcom,chipid = <0x03020002>;
iommus = <&gfx3d 0
&gfx3d 1
@@ -1261,9 +1260,9 @@
<&mmcc DSI1_BYTE_CLK>,
<&mmcc DSI_PIXEL_CLK>,
<&mmcc DSI1_ESC_CLK>;
clock-names = "iface_clk", "bus_clk", "core_mmss_clk",
"src_clk", "byte_clk", "pixel_clk",
"core_clk";
clock-names = "iface", "bus", "core_mmss",
"src", "byte", "pixel",
"core";
assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
<&mmcc DSI1_ESC_SRC>,
@@ -1305,7 +1304,7 @@
reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator";
clock-names = "iface_clk", "ref";
clocks = <&mmcc DSI_M_AHB_CLK>,
<&cxo_board>;
<&pxo_board>;
};

View File

@@ -1213,8 +1213,8 @@
#phy-cells = <0>;
qcom,dsi-phy-index = <0>;
clocks = <&mmcc MDSS_AHB_CLK>;
clock-names = "iface";
clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
clock-names = "iface", "ref";
};
};
};

View File

@@ -47,7 +47,7 @@
};
gmac: eth@e0800000 {
compatible = "st,spear600-gmac";
compatible = "snps,dwmac-3.40a";
reg = <0xe0800000 0x8000>;
interrupts = <23 22>;
interrupt-names = "macirq", "eth_wake_irq";

View File

@@ -773,7 +773,7 @@
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-a";
reg = <0x4 0x1c>;
reg = <0x4 0x20>;
clocks = <&rcc SAI1_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 87 0x400 0x01>;
@@ -783,7 +783,7 @@
sai1b: audio-controller@4400a024 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-b";
reg = <0x24 0x1c>;
reg = <0x24 0x20>;
clocks = <&rcc SAI1_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 88 0x400 0x01>;
@@ -804,7 +804,7 @@
sai2a: audio-controller@4400b004 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-a";
reg = <0x4 0x1c>;
reg = <0x4 0x20>;
clocks = <&rcc SAI2_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 89 0x400 0x01>;
@@ -814,7 +814,7 @@
sai2b: audio-controller@4400b024 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-b";
reg = <0x24 0x1c>;
reg = <0x24 0x20>;
clocks = <&rcc SAI2_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 90 0x400 0x01>;
@@ -835,7 +835,7 @@
sai3a: audio-controller@4400c004 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-a";
reg = <0x04 0x1c>;
reg = <0x04 0x20>;
clocks = <&rcc SAI3_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 113 0x400 0x01>;
@@ -845,7 +845,7 @@
sai3b: audio-controller@4400c024 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-b";
reg = <0x24 0x1c>;
reg = <0x24 0x20>;
clocks = <&rcc SAI3_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 114 0x400 0x01>;
@@ -1191,7 +1191,7 @@
sai4a: audio-controller@50027004 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-a";
reg = <0x04 0x1c>;
reg = <0x04 0x20>;
clocks = <&rcc SAI4_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 99 0x400 0x01>;
@@ -1201,7 +1201,7 @@
sai4b: audio-controller@50027024 {
#sound-dai-cells = <0>;
compatible = "st,stm32-sai-sub-b";
reg = <0x24 0x1c>;
reg = <0x24 0x20>;
clocks = <&rcc SAI4_K>;
clock-names = "sai_ck";
dmas = <&dmamux1 100 0x400 0x01>;

View File

@@ -112,7 +112,7 @@
pinctrl-names = "default";
pinctrl-0 = <&gmac_rgmii_pins>;
phy-handle = <&phy1>;
phy-mode = "rgmii";
phy-mode = "rgmii-id";
status = "okay";
};

View File

@@ -185,8 +185,9 @@
nvidia,pins = "ata", "atb", "atc", "atd", "ate",
"cdev1", "cdev2", "dap1", "dtb", "gma",
"gmb", "gmc", "gmd", "gme", "gpu7",
"gpv", "i2cp", "pta", "rm", "slxa",
"slxk", "spia", "spib", "uac";
"gpv", "i2cp", "irrx", "irtx", "pta",
"rm", "slxa", "slxk", "spia", "spib",
"uac";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
@@ -211,7 +212,7 @@
conf_ddc {
nvidia,pins = "ddc", "dta", "dtd", "kbca",
"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
"sdc";
"sdc", "uad", "uca";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
};
@@ -221,10 +222,9 @@
"lvp0", "owc", "sdb";
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};
conf_irrx {
nvidia,pins = "irrx", "irtx", "sdd", "spic",
"spie", "spih", "uaa", "uab", "uad",
"uca", "ucb";
conf_sdd {
nvidia,pins = "sdd", "spic", "spie", "spih",
"uaa", "uab", "ucb";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
};

View File

@@ -16,6 +16,9 @@ extern void __gnu_mcount_nc(void);
#ifdef CONFIG_DYNAMIC_FTRACE
struct dyn_arch_ftrace {
#ifdef CONFIG_ARM_MODULE_PLTS
struct module *mod;
#endif
};
static inline unsigned long ftrace_call_adjust(unsigned long addr)

View File

@@ -13,18 +13,18 @@ arm_gen_nop(void)
}
unsigned long
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn);
static inline unsigned long
arm_gen_branch(unsigned long pc, unsigned long addr)
{
return __arm_gen_branch(pc, addr, false);
return __arm_gen_branch(pc, addr, false, true);
}
static inline unsigned long
arm_gen_branch_link(unsigned long pc, unsigned long addr)
arm_gen_branch_link(unsigned long pc, unsigned long addr, bool warn)
{
return __arm_gen_branch(pc, addr, true);
return __arm_gen_branch(pc, addr, true, warn);
}
#endif

View File

@@ -19,8 +19,18 @@ enum {
};
#endif
#define PLT_ENT_STRIDE L1_CACHE_BYTES
#define PLT_ENT_COUNT (PLT_ENT_STRIDE / sizeof(u32))
#define PLT_ENT_SIZE (sizeof(struct plt_entries) / PLT_ENT_COUNT)
struct plt_entries {
u32 ldr[PLT_ENT_COUNT];
u32 lit[PLT_ENT_COUNT];
};
struct mod_plt_sec {
struct elf32_shdr *plt;
struct plt_entries *plt_ent;
int plt_count;
};

View File

@@ -71,9 +71,10 @@ int ftrace_arch_code_modify_post_process(void)
return 0;
}
static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr,
bool warn)
{
return arm_gen_branch_link(pc, addr);
return arm_gen_branch_link(pc, addr, warn);
}
static int ftrace_modify_code(unsigned long pc, unsigned long old,
@@ -112,14 +113,14 @@ int ftrace_update_ftrace_func(ftrace_func_t func)
int ret;
pc = (unsigned long)&ftrace_call;
new = ftrace_call_replace(pc, (unsigned long)func);
new = ftrace_call_replace(pc, (unsigned long)func, true);
ret = ftrace_modify_code(pc, 0, new, false);
#ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS
if (!ret) {
pc = (unsigned long)&ftrace_regs_call;
new = ftrace_call_replace(pc, (unsigned long)func);
new = ftrace_call_replace(pc, (unsigned long)func, true);
ret = ftrace_modify_code(pc, 0, new, false);
}
@@ -132,10 +133,22 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
{
unsigned long new, old;
unsigned long ip = rec->ip;
unsigned long aaddr = adjust_address(rec, addr);
struct module *mod = NULL;
#ifdef CONFIG_ARM_MODULE_PLTS
mod = rec->arch.mod;
#endif
old = ftrace_nop_replace(rec);
new = ftrace_call_replace(ip, adjust_address(rec, addr));
new = ftrace_call_replace(ip, aaddr, !mod);
#ifdef CONFIG_ARM_MODULE_PLTS
if (!new && mod) {
aaddr = get_module_plt(mod, ip, aaddr);
new = ftrace_call_replace(ip, aaddr, true);
}
#endif
return ftrace_modify_code(rec->ip, old, new, true);
}
@@ -148,9 +161,9 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
unsigned long new, old;
unsigned long ip = rec->ip;
old = ftrace_call_replace(ip, adjust_address(rec, old_addr));
old = ftrace_call_replace(ip, adjust_address(rec, old_addr), true);
new = ftrace_call_replace(ip, adjust_address(rec, addr));
new = ftrace_call_replace(ip, adjust_address(rec, addr), true);
return ftrace_modify_code(rec->ip, old, new, true);
}
@@ -160,12 +173,29 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
int ftrace_make_nop(struct module *mod,
struct dyn_ftrace *rec, unsigned long addr)
{
unsigned long aaddr = adjust_address(rec, addr);
unsigned long ip = rec->ip;
unsigned long old;
unsigned long new;
int ret;
old = ftrace_call_replace(ip, adjust_address(rec, addr));
#ifdef CONFIG_ARM_MODULE_PLTS
/* mod is only supplied during module loading */
if (!mod)
mod = rec->arch.mod;
else
rec->arch.mod = mod;
#endif
old = ftrace_call_replace(ip, aaddr,
!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || !mod);
#ifdef CONFIG_ARM_MODULE_PLTS
if (!old && mod) {
aaddr = get_module_plt(mod, ip, aaddr);
old = ftrace_call_replace(ip, aaddr, true);
}
#endif
new = ftrace_nop_replace(rec);
ret = ftrace_modify_code(ip, old, new, true);

View File

@@ -3,8 +3,9 @@
#include <linux/kernel.h>
#include <asm/opcodes.h>
static unsigned long
__arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
static unsigned long __arm_gen_branch_thumb2(unsigned long pc,
unsigned long addr, bool link,
bool warn)
{
unsigned long s, j1, j2, i1, i2, imm10, imm11;
unsigned long first, second;
@@ -12,7 +13,7 @@ __arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
offset = (long)addr - (long)(pc + 4);
if (offset < -16777216 || offset > 16777214) {
WARN_ON_ONCE(1);
WARN_ON_ONCE(warn);
return 0;
}
@@ -33,8 +34,8 @@ __arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
return __opcode_thumb32_compose(first, second);
}
static unsigned long
__arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
static unsigned long __arm_gen_branch_arm(unsigned long pc, unsigned long addr,
bool link, bool warn)
{
unsigned long opcode = 0xea000000;
long offset;
@@ -44,7 +45,7 @@ __arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
offset = (long)addr - (long)(pc + 8);
if (unlikely(offset < -33554432 || offset > 33554428)) {
WARN_ON_ONCE(1);
WARN_ON_ONCE(warn);
return 0;
}
@@ -54,10 +55,10 @@ __arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
}
unsigned long
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link)
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn)
{
if (IS_ENABLED(CONFIG_THUMB2_KERNEL))
return __arm_gen_branch_thumb2(pc, addr, link);
return __arm_gen_branch_thumb2(pc, addr, link, warn);
else
return __arm_gen_branch_arm(pc, addr, link);
return __arm_gen_branch_arm(pc, addr, link, warn);
}

View File

@@ -4,6 +4,7 @@
*/
#include <linux/elf.h>
#include <linux/ftrace.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sort.h>
@@ -11,10 +12,6 @@
#include <asm/cache.h>
#include <asm/opcodes.h>
#define PLT_ENT_STRIDE L1_CACHE_BYTES
#define PLT_ENT_COUNT (PLT_ENT_STRIDE / sizeof(u32))
#define PLT_ENT_SIZE (sizeof(struct plt_entries) / PLT_ENT_COUNT)
#ifdef CONFIG_THUMB2_KERNEL
#define PLT_ENT_LDR __opcode_to_mem_thumb32(0xf8dff000 | \
(PLT_ENT_STRIDE - 4))
@@ -23,9 +20,11 @@
(PLT_ENT_STRIDE - 8))
#endif
struct plt_entries {
u32 ldr[PLT_ENT_COUNT];
u32 lit[PLT_ENT_COUNT];
static const u32 fixed_plts[] = {
#ifdef CONFIG_DYNAMIC_FTRACE
FTRACE_ADDR,
MCOUNT_ADDR,
#endif
};
static bool in_init(const struct module *mod, unsigned long loc)
@@ -33,14 +32,40 @@ static bool in_init(const struct module *mod, unsigned long loc)
return loc - (u32)mod->init_layout.base < mod->init_layout.size;
}
static void prealloc_fixed(struct mod_plt_sec *pltsec, struct plt_entries *plt)
{
int i;
if (!ARRAY_SIZE(fixed_plts) || pltsec->plt_count)
return;
pltsec->plt_count = ARRAY_SIZE(fixed_plts);
for (i = 0; i < ARRAY_SIZE(plt->ldr); ++i)
plt->ldr[i] = PLT_ENT_LDR;
BUILD_BUG_ON(sizeof(fixed_plts) > sizeof(plt->lit));
memcpy(plt->lit, fixed_plts, sizeof(fixed_plts));
}
u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
{
struct mod_plt_sec *pltsec = !in_init(mod, loc) ? &mod->arch.core :
&mod->arch.init;
struct plt_entries *plt;
int idx;
struct plt_entries *plt = (struct plt_entries *)pltsec->plt->sh_addr;
int idx = 0;
/* cache the address, ELF header is available only during module load */
if (!pltsec->plt_ent)
pltsec->plt_ent = (struct plt_entries *)pltsec->plt->sh_addr;
plt = pltsec->plt_ent;
prealloc_fixed(pltsec, plt);
for (idx = 0; idx < ARRAY_SIZE(fixed_plts); ++idx)
if (plt->lit[idx] == val)
return (u32)&plt->ldr[idx];
idx = 0;
/*
* Look for an existing entry pointing to 'val'. Given that the
* relocations are sorted, this will be the last entry we allocated.
@@ -188,8 +213,8 @@ static unsigned int count_plts(const Elf32_Sym *syms, Elf32_Addr base,
int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,
char *secstrings, struct module *mod)
{
unsigned long core_plts = 0;
unsigned long init_plts = 0;
unsigned long core_plts = ARRAY_SIZE(fixed_plts);
unsigned long init_plts = ARRAY_SIZE(fixed_plts);
Elf32_Shdr *s, *sechdrs_end = sechdrs + ehdr->e_shnum;
Elf32_Sym *syms = NULL;
@@ -244,6 +269,7 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,
mod->arch.core.plt->sh_size = round_up(core_plts * PLT_ENT_SIZE,
sizeof(struct plt_entries));
mod->arch.core.plt_count = 0;
mod->arch.core.plt_ent = NULL;
mod->arch.init.plt->sh_type = SHT_NOBITS;
mod->arch.init.plt->sh_flags = SHF_EXECINSTR | SHF_ALLOC;
@@ -251,6 +277,7 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,
mod->arch.init.plt->sh_size = round_up(init_plts * PLT_ENT_SIZE,
sizeof(struct plt_entries));
mod->arch.init.plt_count = 0;
mod->arch.init.plt_ent = NULL;
pr_debug("%s: plt=%x, init.plt=%x\n", __func__,
mod->arch.core.plt->sh_size, mod->arch.init.plt->sh_size);

View File

@@ -54,8 +54,7 @@ int notrace unwind_frame(struct stackframe *frame)
frame->sp = frame->fp;
frame->fp = *(unsigned long *)(fp);
frame->pc = frame->lr;
frame->lr = *(unsigned long *)(fp + 4);
frame->pc = *(unsigned long *)(fp + 4);
#else
/* check current frame pointer is within bounds */
if (fp < low + 12 || fp > high - 4)

View File

@@ -180,7 +180,7 @@ ASSERT(__hyp_idmap_text_end - (__hyp_idmap_text_start & PAGE_MASK) <= PAGE_SIZE,
ASSERT((_end - __bss_start) >= 12288, ".bss too small for CONFIG_XIP_DEFLATED_DATA")
#endif
#ifdef CONFIG_ARM_MPU
#if defined(CONFIG_ARM_MPU) && !defined(CONFIG_COMPILE_TEST)
/*
* Due to PMSAv7 restriction on base address and size we have to
* enforce minimal alignment restrictions. It was seen that weaker

View File

@@ -9,6 +9,7 @@
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/genalloc.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
#include <linux/of.h>
@@ -618,6 +619,7 @@ static void __init imx6_pm_common_init(const struct imx6_pm_socdata
static void imx6_pm_stby_poweroff(void)
{
gic_cpu_if_down(0);
imx6_set_lpm(STOP_POWER_OFF);
imx6q_suspend_finish(0);

View File

@@ -3656,6 +3656,8 @@ int omap_hwmod_init_module(struct device *dev,
oh->flags |= HWMOD_SWSUP_SIDLE_ACT;
if (data->cfg->quirks & SYSC_QUIRK_SWSUP_MSTANDBY)
oh->flags |= HWMOD_SWSUP_MSTANDBY;
if (data->cfg->quirks & SYSC_QUIRK_CLKDM_NOAUTO)
oh->flags |= HWMOD_CLKDM_NOAUTO;
error = omap_hwmod_check_module(dev, oh, data, sysc_fields,
rev_offs, sysc_offs, syss_offs,

View File

@@ -752,7 +752,7 @@ config CPU_BIG_ENDIAN
config CPU_ENDIAN_BE8
bool
depends on CPU_BIG_ENDIAN
default CPU_V6 || CPU_V6K || CPU_V7
default CPU_V6 || CPU_V6K || CPU_V7 || CPU_V7M
help
Support for the BE-8 (big-endian) mode on ARMv6 and ARMv7 processors.

View File

@@ -469,7 +469,11 @@ static void __init free_highpages(void)
void __init mem_init(void)
{
#ifdef CONFIG_ARM_LPAE
swiotlb_init(1);
if (swiotlb_force == SWIOTLB_FORCE ||
max_pfn > arm_dma_pfn_limit)
swiotlb_init(1);
else
swiotlb_force = SWIOTLB_NO_FORCE;
#endif
set_max_mapnr(pfn_to_page(max_pfn) - mem_map);

View File

@@ -415,9 +415,9 @@ void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot)
FIXADDR_END);
BUG_ON(idx >= __end_of_fixed_addresses);
/* we only support device mappings until pgprot_kernel has been set */
/* We support only device mappings before pgprot_kernel is set. */
if (WARN_ON(pgprot_val(prot) != pgprot_val(FIXMAP_PAGE_IO) &&
pgprot_val(pgprot_kernel) == 0))
pgprot_val(prot) && pgprot_val(pgprot_kernel) == 0))
return;
if (pgprot_val(prot))

View File

@@ -342,6 +342,7 @@ ENTRY(\name\()_cache_fns)
.macro define_tlb_functions name:req, flags_up:req, flags_smp
.type \name\()_tlb_fns, #object
.align 2
ENTRY(\name\()_tlb_fns)
.long \name\()_flush_user_tlb_range
.long \name\()_flush_kern_tlb_range

View File

@@ -36,6 +36,10 @@
* +-----+
* |RSVD | JIT scratchpad
* current ARM_SP => +-----+ <= (BPF_FP - STACK_SIZE + SCRATCH_SIZE)
* | ... | caller-saved registers
* +-----+
* | ... | arguments passed on stack
* ARM_SP during call => +-----|
* | |
* | ... | Function call stack
* | |
@@ -63,6 +67,12 @@
*
* When popping registers off the stack at the end of a BPF function, we
* reference them via the current ARM_FP register.
*
* Some eBPF operations are implemented via a call to a helper function.
* Such calls are "invisible" in the eBPF code, so it is up to the calling
* program to preserve any caller-saved ARM registers during the call. The
* JIT emits code to push and pop those registers onto the stack, immediately
* above the callee stack frame.
*/
#define CALLEE_MASK (1 << ARM_R4 | 1 << ARM_R5 | 1 << ARM_R6 | \
1 << ARM_R7 | 1 << ARM_R8 | 1 << ARM_R9 | \
@@ -70,6 +80,8 @@
#define CALLEE_PUSH_MASK (CALLEE_MASK | 1 << ARM_LR)
#define CALLEE_POP_MASK (CALLEE_MASK | 1 << ARM_PC)
#define CALLER_MASK (1 << ARM_R0 | 1 << ARM_R1 | 1 << ARM_R2 | 1 << ARM_R3)
enum {
/* Stack layout - these are offsets from (top of stack - 4) */
BPF_R2_HI,
@@ -464,6 +476,7 @@ static inline int epilogue_offset(const struct jit_ctx *ctx)
static inline void emit_udivmod(u8 rd, u8 rm, u8 rn, struct jit_ctx *ctx, u8 op)
{
const int exclude_mask = BIT(ARM_R0) | BIT(ARM_R1);
const s8 *tmp = bpf2a32[TMP_REG_1];
#if __LINUX_ARM_ARCH__ == 7
@@ -495,11 +508,17 @@ static inline void emit_udivmod(u8 rd, u8 rm, u8 rn, struct jit_ctx *ctx, u8 op)
emit(ARM_MOV_R(ARM_R0, rm), ctx);
}
/* Push caller-saved registers on stack */
emit(ARM_PUSH(CALLER_MASK & ~exclude_mask), ctx);
/* Call appropriate function */
emit_mov_i(ARM_IP, op == BPF_DIV ?
(u32)jit_udiv32 : (u32)jit_mod32, ctx);
emit_blx_r(ARM_IP, ctx);
/* Restore caller-saved registers from stack */
emit(ARM_POP(CALLER_MASK & ~exclude_mask), ctx);
/* Save return value */
if (rd != ARM_R0)
emit(ARM_MOV_R(rd, ARM_R0), ctx);

View File

@@ -534,7 +534,7 @@ static struct undef_hook kprobes_arm_break_hook = {
#endif /* !CONFIG_THUMB2_KERNEL */
int __init arch_init_kprobes()
int __init arch_init_kprobes(void)
{
arm_probes_decode_init();
#ifdef CONFIG_THUMB2_KERNEL

View File

@@ -114,7 +114,7 @@
pinctrl-0 = <&emac_rgmii_pins>;
phy-supply = <&reg_gmac_3v3>;
phy-handle = <&ext_rgmii_phy>;
phy-mode = "rgmii";
phy-mode = "rgmii-id";
status = "okay";
};

View File

@@ -139,7 +139,7 @@
regulator-min-microvolt = <721000>;
regulator-max-microvolt = <1022000>;
vin-supply = <&dc_in>;
pwm-supply = <&dc_in>;
pwms = <&pwm_AO_cd 1 1250 0>;
pwm-dutycycle-range = <100 0>;

View File

@@ -139,7 +139,7 @@
regulator-min-microvolt = <721000>;
regulator-max-microvolt = <1022000>;
vin-supply = <&main_12v>;
pwm-supply = <&main_12v>;
pwms = <&pwm_AO_cd 1 1250 0>;
pwm-dutycycle-range = <100 0>;

View File

@@ -139,7 +139,7 @@
regulator-min-microvolt = <721000>;
regulator-max-microvolt = <1022000>;
vin-supply = <&dc_in>;
pwm-supply = <&dc_in>;
pwms = <&pwm_AO_cd 1 1250 0>;
pwm-dutycycle-range = <100 0>;

View File

@@ -287,6 +287,24 @@
status = "disabled";
};
can0: can@2180000 {
compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan";
reg = <0x0 0x2180000 0x0 0x10000>;
interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sysclk>, <&clockgen 4 1>;
clock-names = "ipg", "per";
status = "disabled";
};
can1: can@2190000 {
compatible = "fsl,ls1028ar1-flexcan", "fsl,lx2160ar1-flexcan";
reg = <0x0 0x2190000 0x0 0x10000>;
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&sysclk>, <&clockgen 4 1>;
clock-names = "ipg", "per";
status = "disabled";
};
duart0: serial@21c0500 {
compatible = "fsl,ns16550", "ns16550a";
reg = <0x00 0x21c0500 0x0 0x100>;
@@ -496,14 +514,14 @@
compatible = "arm,sp805", "arm,primecell";
reg = <0x0 0xc000000 0x0 0x1000>;
clocks = <&clockgen 4 15>, <&clockgen 4 15>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster1_core1_watchdog: watchdog@c010000 {
compatible = "arm,sp805", "arm,primecell";
reg = <0x0 0xc010000 0x0 0x1000>;
clocks = <&clockgen 4 15>, <&clockgen 4 15>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
sai1: audio-controller@f100000 {

View File

@@ -83,15 +83,9 @@
};
eeprom@52 {
compatible = "atmel,24c512";
compatible = "onnn,cat24c04", "atmel,24c04";
reg = <0x52>;
};
eeprom@53 {
compatible = "atmel,24c512";
reg = <0x53>;
};
};
};
};

View File

@@ -58,14 +58,9 @@
};
eeprom@52 {
compatible = "atmel,24c512";
compatible = "onnn,cat24c05", "atmel,24c04";
reg = <0x52>;
};
eeprom@53 {
compatible = "atmel,24c512";
reg = <0x53>;
};
};
&i2c3 {

View File

@@ -640,56 +640,56 @@
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc000000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster1_core1_watchdog: wdt@c010000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc010000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster1_core2_watchdog: wdt@c020000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc020000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster1_core3_watchdog: wdt@c030000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc030000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core0_watchdog: wdt@c100000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc100000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core1_watchdog: wdt@c110000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc110000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core2_watchdog: wdt@c120000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc120000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core3_watchdog: wdt@c130000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc130000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
fsl_mc: fsl-mc@80c000000 {

View File

@@ -230,56 +230,56 @@
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc000000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster1_core1_watchdog: wdt@c010000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc010000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core0_watchdog: wdt@c100000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc100000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster2_core1_watchdog: wdt@c110000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc110000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster3_core0_watchdog: wdt@c200000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc200000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster3_core1_watchdog: wdt@c210000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc210000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster4_core0_watchdog: wdt@c300000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc300000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
cluster4_core1_watchdog: wdt@c310000 {
compatible = "arm,sp805-wdt", "arm,primecell";
reg = <0x0 0xc310000 0x0 0x1000>;
clocks = <&clockgen 4 3>, <&clockgen 4 3>;
clock-names = "apb_pclk", "wdog_clk";
clock-names = "wdog_clk", "apb_pclk";
};
crypto: crypto@8000000 {

View File

@@ -138,6 +138,23 @@
max-link-speed = <2>;
reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
phys = <&comphy1 0>;
/*
* U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
* contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
* 2 size cells and also expects that the second range starts at 16 MB offset. If these
* conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
* space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
* for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
* This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
* U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
* https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
* https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
* https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
*/
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x81000000 0 0xe8000000 0 0xe8000000 0 0x01000000 /* Port 0 IO */
0x82000000 0 0xe9000000 0 0xe9000000 0 0x07000000>; /* Port 0 MEM */
/* enabled by U-Boot if PCIe module is present */
status = "disabled";

View File

@@ -487,8 +487,15 @@
#interrupt-cells = <1>;
msi-parent = <&pcie0>;
msi-controller;
ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x1000000 /* Port 0 MEM */
0x81000000 0 0xe9000000 0 0xe9000000 0 0x10000>; /* Port 0 IO*/
/*
* The 128 MiB address range [0xe8000000-0xf0000000] is
* dedicated for PCIe and can be assigned to 8 windows
* with size a power of two. Use one 64 KiB window for
* IO at the end and the remaining seven windows
* (totaling 127 MiB) for MEM.
*/
ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x07f00000 /* Port 0 MEM */
0x81000000 0 0xefff0000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc 0>,
<0 0 0 2 &pcie_intc 1>,

View File

@@ -1082,13 +1082,13 @@
cpu@0 {
device_type = "cpu";
compatible = "nvidia,denver";
compatible = "nvidia,tegra132-denver";
reg = <0>;
};
cpu@1 {
device_type = "cpu";
compatible = "nvidia,denver";
compatible = "nvidia,tegra132-denver";
reg = <1>;
};
};

View File

@@ -1434,7 +1434,7 @@
};
pcie_ep@14160000 {
compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
compatible = "nvidia,tegra194-pcie-ep";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>;
reg = <0x00 0x14160000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x36040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
@@ -1466,7 +1466,7 @@
};
pcie_ep@14180000 {
compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
compatible = "nvidia,tegra194-pcie-ep";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>;
reg = <0x00 0x14180000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x38040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */
@@ -1498,7 +1498,7 @@
};
pcie_ep@141a0000 {
compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep";
compatible = "nvidia,tegra194-pcie-ep";
power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>;
reg = <0x00 0x141a0000 0x0 0x00020000 /* appl registers (128K) */
0x00 0x3a040000 0x0 0x00040000 /* iATU_DMA reg space (256K) */

View File

@@ -20,7 +20,7 @@
stdout-path = "serial0";
};
memory {
memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0x0 0x20000000>;
};

View File

@@ -17,7 +17,7 @@
#size-cells = <0>;
pon: power-on@800 {
compatible = "qcom,pm8916-pon";
compatible = "qcom,pm8998-pon";
reg = <0x0800>;
pwrkey {
compatible = "qcom,pm8941-pwrkey";

View File

@@ -555,7 +555,7 @@
gpu: gpu@ff300000 {
compatible = "rockchip,rk3328-mali", "arm,mali-450";
reg = <0x0 0xff300000 0x0 0x40000>;
reg = <0x0 0xff300000 0x0 0x30000>;
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,

View File

@@ -552,7 +552,6 @@ CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY_FALLBACK is not set
CONFIG_FORTIFY_SOURCE=y
CONFIG_STATIC_USERMODEHELPER=y
CONFIG_STATIC_USERMODEHELPER_PATH=""
CONFIG_SECURITY_SELINUX=y

View File

@@ -65,8 +65,8 @@
#define EARLY_KASLR (0)
#endif
#define EARLY_ENTRIES(vstart, vend, shift) (((vend) >> (shift)) \
- ((vstart) >> (shift)) + 1 + EARLY_KASLR)
#define EARLY_ENTRIES(vstart, vend, shift) \
((((vend) - 1) >> (shift)) - ((vstart) >> (shift)) + 1 + EARLY_KASLR)
#define EARLY_PGDS(vstart, vend) (EARLY_ENTRIES(vstart, vend, PGDIR_SHIFT))

View File

@@ -54,9 +54,15 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
* page table entry, taking care of 52-bit addresses.
*/
#ifdef CONFIG_ARM64_PA_BITS_52
#define __pte_to_phys(pte) \
((pte_val(pte) & PTE_ADDR_LOW) | ((pte_val(pte) & PTE_ADDR_HIGH) << 36))
#define __phys_to_pte_val(phys) (((phys) | ((phys) >> 36)) & PTE_ADDR_MASK)
static inline phys_addr_t __pte_to_phys(pte_t pte)
{
return (pte_val(pte) & PTE_ADDR_LOW) |
((pte_val(pte) & PTE_ADDR_HIGH) << 36);
}
static inline pteval_t __phys_to_pte_val(phys_addr_t phys)
{
return (phys | (phys >> 36)) & PTE_ADDR_MASK;
}
#else
#define __pte_to_phys(pte) (pte_val(pte) & PTE_ADDR_MASK)
#define __phys_to_pte_val(phys) (phys)

View File

@@ -43,7 +43,7 @@ static void ci_leaf_init(struct cacheinfo *this_leaf,
this_leaf->type = type;
}
static int __init_cache_level(unsigned int cpu)
int init_cache_level(unsigned int cpu)
{
unsigned int ctype, level, leaves, fw_level;
struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
@@ -78,7 +78,7 @@ static int __init_cache_level(unsigned int cpu)
return 0;
}
static int __populate_cache_leaves(unsigned int cpu)
int populate_cache_leaves(unsigned int cpu)
{
unsigned int level, idx;
enum cache_type type;
@@ -97,6 +97,3 @@ static int __populate_cache_leaves(unsigned int cpu)
}
return 0;
}
DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)

View File

@@ -498,7 +498,7 @@ size_t sve_state_size(struct task_struct const *task)
void sve_alloc(struct task_struct *task)
{
if (task->thread.sve_state) {
memset(task->thread.sve_state, 0, sve_state_size(current));
memset(task->thread.sve_state, 0, sve_state_size(task));
return;
}

View File

@@ -195,7 +195,7 @@ ENDPROC(preserve_boot_args)
* to be composed of multiple pages. (This effectively scales the end index).
*
* vstart: virtual address of start of range
* vend: virtual address of end of range
* vend: virtual address of end of range - we map [vstart, vend]
* shift: shift used to transform virtual address into index
* ptrs: number of entries in page table
* istart: index in table corresponding to vstart
@@ -232,17 +232,18 @@ ENDPROC(preserve_boot_args)
*
* tbl: location of page table
* rtbl: address to be used for first level page table entry (typically tbl + PAGE_SIZE)
* vstart: start address to map
* vend: end address to map - we map [vstart, vend]
* vstart: virtual address of start of range
* vend: virtual address of end of range - we map [vstart, vend - 1]
* flags: flags to use to map last level entries
* phys: physical address corresponding to vstart - physical memory is contiguous
* pgds: the number of pgd entries
*
* Temporaries: istart, iend, tmp, count, sv - these need to be different registers
* Preserves: vstart, vend, flags
* Corrupts: tbl, rtbl, istart, iend, tmp, count, sv
* Preserves: vstart, flags
* Corrupts: tbl, rtbl, vend, istart, iend, tmp, count, sv
*/
.macro map_memory, tbl, rtbl, vstart, vend, flags, phys, pgds, istart, iend, tmp, count, sv
sub \vend, \vend, #1
add \rtbl, \tbl, #PAGE_SIZE
mov \sv, \rtbl
mov \count, #0

View File

@@ -59,7 +59,7 @@
#if defined(CONFIG_STACKPROTECTOR) && !defined(CONFIG_STACKPROTECTOR_PER_TASK)
#include <linux/stackprotector.h>
unsigned long __stack_chk_guard __read_mostly;
unsigned long __stack_chk_guard __ro_after_init;
EXPORT_SYMBOL(__stack_chk_guard);
#endif

View File

@@ -996,6 +996,11 @@ out:
return prog;
}
u64 bpf_jit_alloc_exec_limit(void)
{
return BPF_JIT_REGION_SIZE;
}
void *bpf_jit_alloc_exec(unsigned long size)
{
return __vmalloc_node_range(size, PAGE_SIZE, BPF_JIT_REGION_START,

View File

@@ -96,7 +96,8 @@ static int gpr_set(struct task_struct *target,
if (ret)
return ret;
regs.sr = task_pt_regs(target)->sr;
/* BIT(0) of regs.sr is Condition Code/Carry bit */
regs.sr = (regs.sr & BIT(0)) | (task_pt_regs(target)->sr & ~BIT(0));
#ifdef CONFIG_CPU_HAS_HILO
regs.dcsr = task_pt_regs(target)->dcsr;
#endif

View File

@@ -52,10 +52,14 @@ static long restore_sigcontext(struct pt_regs *regs,
struct sigcontext __user *sc)
{
int err = 0;
unsigned long sr = regs->sr;
/* sc_pt_regs is structured the same as the start of pt_regs */
err |= __copy_from_user(regs, &sc->sc_pt_regs, sizeof(struct pt_regs));
/* BIT(0) of regs->sr is Condition Code/Carry bit */
regs->sr = (sr & ~1) | (regs->sr & 1);
/* Restore the floating-point state. */
err |= restore_fpu_state(sc);

View File

@@ -39,7 +39,7 @@ config DISABLE_VHPT
config IA64_DEBUG_CMPXCHG
bool "Turn on compare-and-exchange bug checking (slow!)"
depends on DEBUG_KERNEL
depends on DEBUG_KERNEL && PRINTK
help
Selecting this option turns on bug checking for the IA-64
compare-and-exchange instructions. This is slow! Itaniums

View File

@@ -398,7 +398,8 @@ static void kretprobe_trampoline(void)
int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
{
regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
regs->cr_iip = __kretprobe_trampoline_handler(regs,
dereference_function_descriptor(kretprobe_trampoline), NULL);
/*
* By returning a non-zero value, we are telling
* kprobe_handler() that we don't want the post_handler
@@ -414,7 +415,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
ri->fp = NULL;
/* Replace the return addr with trampoline addr */
regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
regs->b0 = (unsigned long)dereference_function_descriptor(kretprobe_trampoline);
}
/* Check the instruction in the slot is break */
@@ -918,14 +919,14 @@ static struct kprobe trampoline_p = {
int __init arch_init_kprobes(void)
{
trampoline_p.addr =
(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
dereference_function_descriptor(kretprobe_trampoline);
return register_kprobe(&trampoline_p);
}
int __kprobes arch_trampoline_kprobe(struct kprobe *p)
{
if (p->addr ==
(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip)
dereference_function_descriptor(kretprobe_trampoline))
return 1;
return 0;

View File

@@ -63,7 +63,7 @@ source "drivers/zorro/Kconfig"
endif
if !MMU
if COLDFIRE
config ISA_DMA_API
def_bool !M5272

View File

@@ -190,6 +190,7 @@ config INIT_LCD
config MEMORY_RESERVE
int "Memory reservation (MiB)"
depends on (UCSIMM || UCDIMM)
default 0
help
Reserve certain memory regions on 68x328 based boards.

View File

@@ -17,21 +17,21 @@
* two accesses to memory, which may be undesirable for some devices.
*/
#define in_8(addr) \
({ u8 __v = (*(__force volatile u8 *) (addr)); __v; })
({ u8 __v = (*(__force volatile u8 *) (unsigned long)(addr)); __v; })
#define in_be16(addr) \
({ u16 __v = (*(__force volatile u16 *) (addr)); __v; })
({ u16 __v = (*(__force volatile u16 *) (unsigned long)(addr)); __v; })
#define in_be32(addr) \
({ u32 __v = (*(__force volatile u32 *) (addr)); __v; })
({ u32 __v = (*(__force volatile u32 *) (unsigned long)(addr)); __v; })
#define in_le16(addr) \
({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (addr)); __v; })
({ u16 __v = le16_to_cpu(*(__force volatile __le16 *) (unsigned long)(addr)); __v; })
#define in_le32(addr) \
({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (addr)); __v; })
({ u32 __v = le32_to_cpu(*(__force volatile __le32 *) (unsigned long)(addr)); __v; })
#define out_8(addr,b) (void)((*(__force volatile u8 *) (addr)) = (b))
#define out_be16(addr,w) (void)((*(__force volatile u16 *) (addr)) = (w))
#define out_be32(addr,l) (void)((*(__force volatile u32 *) (addr)) = (l))
#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (addr)) = cpu_to_le16(w))
#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (addr)) = cpu_to_le32(l))
#define out_8(addr,b) (void)((*(__force volatile u8 *) (unsigned long)(addr)) = (b))
#define out_be16(addr,w) (void)((*(__force volatile u16 *) (unsigned long)(addr)) = (w))
#define out_be32(addr,l) (void)((*(__force volatile u32 *) (unsigned long)(addr)) = (l))
#define out_le16(addr,w) (void)((*(__force volatile __le16 *) (unsigned long)(addr)) = cpu_to_le16(w))
#define out_le32(addr,l) (void)((*(__force volatile __le32 *) (unsigned long)(addr)) = cpu_to_le32(l))
#define raw_inb in_8
#define raw_inw in_be16

View File

@@ -448,7 +448,7 @@ static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs)
if (CPU_IS_060 ? sc->sc_fpstate[2] : sc->sc_fpstate[0]) {
fpu_version = sc->sc_fpstate[0];
if (CPU_IS_020_OR_030 &&
if (CPU_IS_020_OR_030 && !regs->stkadj &&
regs->vector >= (VEC_FPBRUC * 4) &&
regs->vector <= (VEC_FPNAN * 4)) {
/* Clear pending exception in 68882 idle frame */
@@ -511,7 +511,7 @@ static inline int rt_save_fpu_state(struct ucontext __user *uc, struct pt_regs *
if (!(CPU_IS_060 || CPU_IS_COLDFIRE))
context_size = fpstate[1];
fpu_version = fpstate[0];
if (CPU_IS_020_OR_030 &&
if (CPU_IS_020_OR_030 && !regs->stkadj &&
regs->vector >= (VEC_FPBRUC * 4) &&
regs->vector <= (VEC_FPNAN * 4)) {
/* Clear pending exception in 68882 idle frame */
@@ -829,18 +829,24 @@ badframe:
return 0;
}
static inline struct pt_regs *rte_regs(struct pt_regs *regs)
{
return (void *)regs + regs->stkadj;
}
static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs,
unsigned long mask)
{
struct pt_regs *tregs = rte_regs(regs);
sc->sc_mask = mask;
sc->sc_usp = rdusp();
sc->sc_d0 = regs->d0;
sc->sc_d1 = regs->d1;
sc->sc_a0 = regs->a0;
sc->sc_a1 = regs->a1;
sc->sc_sr = regs->sr;
sc->sc_pc = regs->pc;
sc->sc_formatvec = regs->format << 12 | regs->vector;
sc->sc_sr = tregs->sr;
sc->sc_pc = tregs->pc;
sc->sc_formatvec = tregs->format << 12 | tregs->vector;
save_a5_state(sc, regs);
save_fpu_state(sc, regs);
}
@@ -848,6 +854,7 @@ static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs,
static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *regs)
{
struct switch_stack *sw = (struct switch_stack *)regs - 1;
struct pt_regs *tregs = rte_regs(regs);
greg_t __user *gregs = uc->uc_mcontext.gregs;
int err = 0;
@@ -868,9 +875,9 @@ static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *
err |= __put_user(sw->a5, &gregs[13]);
err |= __put_user(sw->a6, &gregs[14]);
err |= __put_user(rdusp(), &gregs[15]);
err |= __put_user(regs->pc, &gregs[16]);
err |= __put_user(regs->sr, &gregs[17]);
err |= __put_user((regs->format << 12) | regs->vector, &uc->uc_formatvec);
err |= __put_user(tregs->pc, &gregs[16]);
err |= __put_user(tregs->sr, &gregs[17]);
err |= __put_user((tregs->format << 12) | tregs->vector, &uc->uc_formatvec);
err |= rt_save_fpu_state(uc, regs);
return err;
}
@@ -887,13 +894,14 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
struct pt_regs *regs)
{
struct sigframe __user *frame;
int fsize = frame_extra_sizes(regs->format);
struct pt_regs *tregs = rte_regs(regs);
int fsize = frame_extra_sizes(tregs->format);
struct sigcontext context;
int err = 0, sig = ksig->sig;
if (fsize < 0) {
pr_debug("setup_frame: Unknown frame format %#x\n",
regs->format);
tregs->format);
return -EFAULT;
}
@@ -904,7 +912,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
err |= __put_user(sig, &frame->sig);
err |= __put_user(regs->vector, &frame->code);
err |= __put_user(tregs->vector, &frame->code);
err |= __put_user(&frame->sc, &frame->psc);
if (_NSIG_WORDS > 1)
@@ -929,34 +937,28 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
push_cache ((unsigned long) &frame->retcode);
/*
* Set up registers for signal handler. All the state we are about
* to destroy is successfully copied to sigframe.
*/
wrusp ((unsigned long) frame);
regs->pc = (unsigned long) ksig->ka.sa.sa_handler;
adjustformat(regs);
/*
* This is subtle; if we build more than one sigframe, all but the
* first one will see frame format 0 and have fsize == 0, so we won't
* screw stkadj.
*/
if (fsize)
if (fsize) {
regs->stkadj = fsize;
/* Prepare to skip over the extra stuff in the exception frame. */
if (regs->stkadj) {
struct pt_regs *tregs =
(struct pt_regs *)((ulong)regs + regs->stkadj);
tregs = rte_regs(regs);
pr_debug("Performing stackadjust=%04lx\n", regs->stkadj);
/* This must be copied with decreasing addresses to
handle overlaps. */
tregs->vector = 0;
tregs->format = 0;
tregs->pc = regs->pc;
tregs->sr = regs->sr;
}
/*
* Set up registers for signal handler. All the state we are about
* to destroy is successfully copied to sigframe.
*/
wrusp ((unsigned long) frame);
tregs->pc = (unsigned long) ksig->ka.sa.sa_handler;
adjustformat(regs);
return 0;
}
@@ -964,7 +966,8 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
struct pt_regs *regs)
{
struct rt_sigframe __user *frame;
int fsize = frame_extra_sizes(regs->format);
struct pt_regs *tregs = rte_regs(regs);
int fsize = frame_extra_sizes(tregs->format);
int err = 0, sig = ksig->sig;
if (fsize < 0) {
@@ -1013,34 +1016,27 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
push_cache ((unsigned long) &frame->retcode);
/*
* Set up registers for signal handler. All the state we are about
* to destroy is successfully copied to sigframe.
*/
wrusp ((unsigned long) frame);
regs->pc = (unsigned long) ksig->ka.sa.sa_handler;
adjustformat(regs);
/*
* This is subtle; if we build more than one sigframe, all but the
* first one will see frame format 0 and have fsize == 0, so we won't
* screw stkadj.
*/
if (fsize)
if (fsize) {
regs->stkadj = fsize;
/* Prepare to skip over the extra stuff in the exception frame. */
if (regs->stkadj) {
struct pt_regs *tregs =
(struct pt_regs *)((ulong)regs + regs->stkadj);
tregs = rte_regs(regs);
pr_debug("Performing stackadjust=%04lx\n", regs->stkadj);
/* This must be copied with decreasing addresses to
handle overlaps. */
tregs->vector = 0;
tregs->format = 0;
tregs->pc = regs->pc;
tregs->sr = regs->sr;
}
/*
* Set up registers for signal handler. All the state we are about
* to destroy is successfully copied to sigframe.
*/
wrusp ((unsigned long) frame);
tregs->pc = (unsigned long) ksig->ka.sa.sa_handler;
adjustformat(regs);
return 0;
}

View File

@@ -46,6 +46,7 @@ config MIPS
select HAVE_ARCH_TRACEHOOK
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
select HAVE_ASM_MODVERSIONS
select HAVE_CBPF_JIT if !64BIT && !CPU_MICROMIPS
select HAVE_EBPF_JIT if 64BIT && !CPU_MICROMIPS && TARGET_ISA_REV >= 2
select HAVE_CONTEXT_TRACKING
select HAVE_COPY_THREAD_TLS
@@ -1392,6 +1393,7 @@ config CPU_LOONGSON3
select WEAK_REORDERING_BEYOND_LLSC
select MIPS_PGD_C0_CONTEXT
select MIPS_L1_CACHE_SHIFT_6
select MIPS_FP_SUPPORT
select GPIOLIB
select SWIOTLB
help

View File

@@ -239,6 +239,7 @@ static inline unsigned long __cmpxchg64(volatile void *ptr,
" .set " MIPS_ISA_ARCH_LEVEL " \n"
/* Load 64 bits from ptr */
"1: lld %L0, %3 # __cmpxchg64 \n"
" .set pop \n"
/*
* Split the 64 bit value we loaded into the 2 registers that hold the
* ret variable.
@@ -266,6 +267,8 @@ static inline unsigned long __cmpxchg64(volatile void *ptr,
" or %L1, %L1, $at \n"
" .set at \n"
# endif
" .set push \n"
" .set " MIPS_ISA_ARCH_LEVEL " \n"
/* Attempt to store new at ptr */
" scd %L1, %2 \n"
/* If we failed, loop! */

View File

@@ -11,6 +11,7 @@
#ifndef __MIPS_ASM_MIPS_CM_H__
#define __MIPS_ASM_MIPS_CM_H__
#include <linux/bitfield.h>
#include <linux/bitops.h>
#include <linux/errno.h>
@@ -153,8 +154,8 @@ GCR_ACCESSOR_RO(32, 0x030, rev)
#define CM_GCR_REV_MINOR GENMASK(7, 0)
#define CM_ENCODE_REV(major, minor) \
(((major) << __ffs(CM_GCR_REV_MAJOR)) | \
((minor) << __ffs(CM_GCR_REV_MINOR)))
(FIELD_PREP(CM_GCR_REV_MAJOR, major) | \
FIELD_PREP(CM_GCR_REV_MINOR, minor))
#define CM_REV_CM2 CM_ENCODE_REV(6, 0)
#define CM_REV_CM2_5 CM_ENCODE_REV(7, 0)
@@ -362,10 +363,10 @@ static inline int mips_cm_revision(void)
static inline unsigned int mips_cm_max_vp_width(void)
{
extern int smp_num_siblings;
uint32_t cfg;
if (mips_cm_revision() >= CM_REV_CM3)
return read_gcr_sys_config2() & CM_GCR_SYS_CONFIG2_MAXVPW;
return FIELD_GET(CM_GCR_SYS_CONFIG2_MAXVPW,
read_gcr_sys_config2());
if (mips_cm_present()) {
/*
@@ -373,8 +374,7 @@ static inline unsigned int mips_cm_max_vp_width(void)
* number of VP(E)s, and if that ever changes then this will
* need revisiting.
*/
cfg = read_gcr_cl_config() & CM_GCR_Cx_CONFIG_PVPE;
return (cfg >> __ffs(CM_GCR_Cx_CONFIG_PVPE)) + 1;
return FIELD_GET(CM_GCR_Cx_CONFIG_PVPE, read_gcr_cl_config()) + 1;
}
if (IS_ENABLED(CONFIG_SMP))

View File

@@ -17,7 +17,7 @@ do { \
leaf++; \
} while (0)
static int __init_cache_level(unsigned int cpu)
int init_cache_level(unsigned int cpu)
{
struct cpuinfo_mips *c = &current_cpu_data;
struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
@@ -69,7 +69,7 @@ static void fill_cpumask_cluster(int cpu, cpumask_t *cpu_map)
cpumask_set_cpu(cpu1, cpu_map);
}
static int __populate_cache_leaves(unsigned int cpu)
int populate_cache_leaves(unsigned int cpu)
{
struct cpuinfo_mips *c = &current_cpu_data;
struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu);
@@ -98,6 +98,3 @@ static int __populate_cache_leaves(unsigned int cpu)
return 0;
}
DEFINE_SMP_CALL_CACHE_FUNCTION(init_cache_level)
DEFINE_SMP_CALL_CACHE_FUNCTION(populate_cache_leaves)

View File

@@ -179,8 +179,7 @@ static void mips_cm_probe_l2sync(void)
phys_addr_t addr;
/* L2-only sync was introduced with CM major revision 6 */
major_rev = (read_gcr_rev() & CM_GCR_REV_MAJOR) >>
__ffs(CM_GCR_REV_MAJOR);
major_rev = FIELD_GET(CM_GCR_REV_MAJOR, read_gcr_rev());
if (major_rev < 6)
return;
@@ -263,13 +262,13 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,
preempt_disable();
if (cm_rev >= CM_REV_CM3) {
val = core << __ffs(CM3_GCR_Cx_OTHER_CORE);
val |= vp << __ffs(CM3_GCR_Cx_OTHER_VP);
val = FIELD_PREP(CM3_GCR_Cx_OTHER_CORE, core) |
FIELD_PREP(CM3_GCR_Cx_OTHER_VP, vp);
if (cm_rev >= CM_REV_CM3_5) {
val |= CM_GCR_Cx_OTHER_CLUSTER_EN;
val |= cluster << __ffs(CM_GCR_Cx_OTHER_CLUSTER);
val |= block << __ffs(CM_GCR_Cx_OTHER_BLOCK);
val |= FIELD_PREP(CM_GCR_Cx_OTHER_CLUSTER, cluster);
val |= FIELD_PREP(CM_GCR_Cx_OTHER_BLOCK, block);
} else {
WARN_ON(cluster != 0);
WARN_ON(block != CM_GCR_Cx_OTHER_BLOCK_LOCAL);
@@ -299,7 +298,7 @@ void mips_cm_lock_other(unsigned int cluster, unsigned int core,
spin_lock_irqsave(&per_cpu(cm_core_lock, curr_core),
per_cpu(cm_core_lock_flags, curr_core));
val = core << __ffs(CM_GCR_Cx_OTHER_CORENUM);
val = FIELD_PREP(CM_GCR_Cx_OTHER_CORENUM, core);
}
write_gcr_cl_other(val);
@@ -343,8 +342,8 @@ void mips_cm_error_report(void)
cm_other = read_gcr_error_mult();
if (revision < CM_REV_CM3) { /* CM2 */
cause = cm_error >> __ffs(CM_GCR_ERROR_CAUSE_ERRTYPE);
ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
cause = FIELD_GET(CM_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
if (!cause)
return;
@@ -386,8 +385,8 @@ void mips_cm_error_report(void)
ulong core_id_bits, vp_id_bits, cmd_bits, cmd_group_bits;
ulong cm3_cca_bits, mcp_bits, cm3_tr_bits, sched_bit;
cause = cm_error >> __ffs64(CM3_GCR_ERROR_CAUSE_ERRTYPE);
ocause = cm_other >> __ffs(CM_GCR_ERROR_MULT_ERR2ND);
cause = FIELD_GET(CM3_GCR_ERROR_CAUSE_ERRTYPE, cm_error);
ocause = FIELD_GET(CM_GCR_ERROR_MULT_ERR2ND, cm_other);
if (!cause)
return;

View File

@@ -29,8 +29,8 @@
#define EX2(a,b) \
9: a,##b; \
.section __ex_table,"a"; \
PTR 9b,bad_stack; \
PTR 9b+4,bad_stack; \
PTR 9b,fault; \
PTR 9b+4,fault; \
.previous
.set mips1

View File

@@ -239,12 +239,3 @@ SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
{
return -ENOSYS;
}
/*
* If we ever come here the user sp is bad. Zap the process right away.
* Due to the bad stack signaling wouldn't work.
*/
asmlinkage void bad_stack(void)
{
do_exit(SIGSEGV);
}

View File

@@ -11,6 +11,7 @@
#include <linux/export.h>
#include <linux/spinlock.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <lantiq_soc.h>
@@ -29,6 +30,7 @@
#define LTQ_DMA_PCTRL 0x44
#define LTQ_DMA_IRNEN 0xf4
#define DMA_ID_CHNR GENMASK(26, 20) /* channel number */
#define DMA_DESCPT BIT(3) /* descriptor complete irq */
#define DMA_TX BIT(8) /* TX channel direction */
#define DMA_CHAN_ON BIT(0) /* channel on / off bit */
@@ -39,7 +41,6 @@
#define DMA_POLL BIT(31) /* turn on channel polling */
#define DMA_CLK_DIV4 BIT(6) /* polling clock divider */
#define DMA_2W_BURST BIT(1) /* 2 word burst length */
#define DMA_MAX_CHANNEL 20 /* the soc has 20 channels */
#define DMA_ETOP_ENDIANNESS (0xf << 8) /* endianness swap etop channels */
#define DMA_WEIGHT (BIT(17) | BIT(16)) /* default channel wheight */
@@ -205,7 +206,7 @@ ltq_dma_init(struct platform_device *pdev)
{
struct clk *clk;
struct resource *res;
unsigned id;
unsigned int id, nchannels;
int i;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -221,21 +222,24 @@ ltq_dma_init(struct platform_device *pdev)
clk_enable(clk);
ltq_dma_w32_mask(0, DMA_RESET, LTQ_DMA_CTRL);
usleep_range(1, 10);
/* disable all interrupts */
ltq_dma_w32(0, LTQ_DMA_IRNEN);
/* reset/configure each channel */
for (i = 0; i < DMA_MAX_CHANNEL; i++) {
id = ltq_dma_r32(LTQ_DMA_ID);
nchannels = ((id & DMA_ID_CHNR) >> 20);
for (i = 0; i < nchannels; i++) {
ltq_dma_w32(i, LTQ_DMA_CS);
ltq_dma_w32(DMA_CHAN_RST, LTQ_DMA_CCTRL);
ltq_dma_w32(DMA_POLL | DMA_CLK_DIV4, LTQ_DMA_CPOLL);
ltq_dma_w32_mask(DMA_CHAN_ON, 0, LTQ_DMA_CCTRL);
}
id = ltq_dma_r32(LTQ_DMA_ID);
dev_info(&pdev->dev,
"Init done - hw rev: %X, ports: %d, channels: %d\n",
id & 0x1f, (id >> 16) & 0xf, id >> 20);
id & 0x1f, (id >> 16) & 0xf, nchannels);
return 0;
}

View File

@@ -22,7 +22,7 @@
#define ROCIT_CONFIG_GEN1_MEMMAP_SHIFT 8
#define ROCIT_CONFIG_GEN1_MEMMAP_MASK (0xf << 8)
static unsigned char fdt_buf[16 << 10] __initdata;
static unsigned char fdt_buf[16 << 10] __initdata __aligned(8);
/* determined physical memory size, not overridden by command line args */
extern unsigned long physical_memsize;

View File

@@ -1,4 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
# MIPS networking code
obj-$(CONFIG_MIPS_CBPF_JIT) += bpf_jit.o bpf_jit_asm.o
obj-$(CONFIG_MIPS_EBPF_JIT) += ebpf_jit.o

1299
arch/mips/net/bpf_jit.c Normal file

File diff suppressed because it is too large Load Diff

285
arch/mips/net/bpf_jit_asm.S Normal file
View File

@@ -0,0 +1,285 @@
/*
* bpf_jib_asm.S: Packet/header access helper functions for MIPS/MIPS64 BPF
* compiler.
*
* Copyright (C) 2015 Imagination Technologies Ltd.
* Author: Markos Chandras <markos.chandras@imgtec.com>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; version 2 of the License.
*/
#include <asm/asm.h>
#include <asm/isa-rev.h>
#include <asm/regdef.h>
#include "bpf_jit.h"
/* ABI
*
* r_skb_hl skb header length
* r_skb_data skb data
* r_off(a1) offset register
* r_A BPF register A
* r_X PF register X
* r_skb(a0) *skb
* r_M *scratch memory
* r_skb_le skb length
* r_s0 Scratch register 0
* r_s1 Scratch register 1
*
* On entry:
* a0: *skb
* a1: offset (imm or imm + X)
*
* All non-BPF-ABI registers are free for use. On return, we only
* care about r_ret. The BPF-ABI registers are assumed to remain
* unmodified during the entire filter operation.
*/
#define skb a0
#define offset a1
#define SKF_LL_OFF (-0x200000) /* Can't include linux/filter.h in assembly */
/* We know better :) so prevent assembler reordering etc */
.set noreorder
#define is_offset_negative(TYPE) \
/* If offset is negative we have more work to do */ \
slti t0, offset, 0; \
bgtz t0, bpf_slow_path_##TYPE##_neg; \
/* Be careful what follows in DS. */
#define is_offset_in_header(SIZE, TYPE) \
/* Reading from header? */ \
addiu $r_s0, $r_skb_hl, -SIZE; \
slt t0, $r_s0, offset; \
bgtz t0, bpf_slow_path_##TYPE; \
LEAF(sk_load_word)
is_offset_negative(word)
FEXPORT(sk_load_word_positive)
is_offset_in_header(4, word)
/* Offset within header boundaries */
PTR_ADDU t1, $r_skb_data, offset
.set reorder
lw $r_A, 0(t1)
.set noreorder
#ifdef CONFIG_CPU_LITTLE_ENDIAN
# if MIPS_ISA_REV >= 2
wsbh t0, $r_A
rotr $r_A, t0, 16
# else
sll t0, $r_A, 24
srl t1, $r_A, 24
srl t2, $r_A, 8
or t0, t0, t1
andi t2, t2, 0xff00
andi t1, $r_A, 0xff00
or t0, t0, t2
sll t1, t1, 8
or $r_A, t0, t1
# endif
#endif
jr $r_ra
move $r_ret, zero
END(sk_load_word)
LEAF(sk_load_half)
is_offset_negative(half)
FEXPORT(sk_load_half_positive)
is_offset_in_header(2, half)
/* Offset within header boundaries */
PTR_ADDU t1, $r_skb_data, offset
lhu $r_A, 0(t1)
#ifdef CONFIG_CPU_LITTLE_ENDIAN
# if MIPS_ISA_REV >= 2
wsbh $r_A, $r_A
# else
sll t0, $r_A, 8
srl t1, $r_A, 8
andi t0, t0, 0xff00
or $r_A, t0, t1
# endif
#endif
jr $r_ra
move $r_ret, zero
END(sk_load_half)
LEAF(sk_load_byte)
is_offset_negative(byte)
FEXPORT(sk_load_byte_positive)
is_offset_in_header(1, byte)
/* Offset within header boundaries */
PTR_ADDU t1, $r_skb_data, offset
lbu $r_A, 0(t1)
jr $r_ra
move $r_ret, zero
END(sk_load_byte)
/*
* call skb_copy_bits:
* (prototype in linux/skbuff.h)
*
* int skb_copy_bits(sk_buff *skb, int offset, void *to, int len)
*
* o32 mandates we leave 4 spaces for argument registers in case
* the callee needs to use them. Even though we don't care about
* the argument registers ourselves, we need to allocate that space
* to remain ABI compliant since the callee may want to use that space.
* We also allocate 2 more spaces for $r_ra and our return register (*to).
*
* n64 is a bit different. The *caller* will allocate the space to preserve
* the arguments. So in 64-bit kernels, we allocate the 4-arg space for no
* good reason but it does not matter that much really.
*
* (void *to) is returned in r_s0
*
*/
#ifdef CONFIG_CPU_LITTLE_ENDIAN
#define DS_OFFSET(SIZE) (4 * SZREG)
#else
#define DS_OFFSET(SIZE) ((4 * SZREG) + (4 - SIZE))
#endif
#define bpf_slow_path_common(SIZE) \
/* Quick check. Are we within reasonable boundaries? */ \
LONG_ADDIU $r_s1, $r_skb_len, -SIZE; \
sltu $r_s0, offset, $r_s1; \
beqz $r_s0, fault; \
/* Load 4th argument in DS */ \
LONG_ADDIU a3, zero, SIZE; \
PTR_ADDIU $r_sp, $r_sp, -(6 * SZREG); \
PTR_LA t0, skb_copy_bits; \
PTR_S $r_ra, (5 * SZREG)($r_sp); \
/* Assign low slot to a2 */ \
PTR_ADDIU a2, $r_sp, DS_OFFSET(SIZE); \
jalr t0; \
/* Reset our destination slot (DS but it's ok) */ \
INT_S zero, (4 * SZREG)($r_sp); \
/* \
* skb_copy_bits returns 0 on success and -EFAULT \
* on error. Our data live in a2. Do not bother with \
* our data if an error has been returned. \
*/ \
/* Restore our frame */ \
PTR_L $r_ra, (5 * SZREG)($r_sp); \
INT_L $r_s0, (4 * SZREG)($r_sp); \
bltz v0, fault; \
PTR_ADDIU $r_sp, $r_sp, 6 * SZREG; \
move $r_ret, zero; \
NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
bpf_slow_path_common(4)
#ifdef CONFIG_CPU_LITTLE_ENDIAN
# if MIPS_ISA_REV >= 2
wsbh t0, $r_s0
jr $r_ra
rotr $r_A, t0, 16
# else
sll t0, $r_s0, 24
srl t1, $r_s0, 24
srl t2, $r_s0, 8
or t0, t0, t1
andi t2, t2, 0xff00
andi t1, $r_s0, 0xff00
or t0, t0, t2
sll t1, t1, 8
jr $r_ra
or $r_A, t0, t1
# endif
#else
jr $r_ra
move $r_A, $r_s0
#endif
END(bpf_slow_path_word)
NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
bpf_slow_path_common(2)
#ifdef CONFIG_CPU_LITTLE_ENDIAN
# if MIPS_ISA_REV >= 2
jr $r_ra
wsbh $r_A, $r_s0
# else
sll t0, $r_s0, 8
andi t1, $r_s0, 0xff00
andi t0, t0, 0xff00
srl t1, t1, 8
jr $r_ra
or $r_A, t0, t1
# endif
#else
jr $r_ra
move $r_A, $r_s0
#endif
END(bpf_slow_path_half)
NESTED(bpf_slow_path_byte, (6 * SZREG), $r_sp)
bpf_slow_path_common(1)
jr $r_ra
move $r_A, $r_s0
END(bpf_slow_path_byte)
/*
* Negative entry points
*/
.macro bpf_is_end_of_data
li t0, SKF_LL_OFF
/* Reading link layer data? */
slt t1, offset, t0
bgtz t1, fault
/* Be careful what follows in DS. */
.endm
/*
* call skb_copy_bits:
* (prototype in linux/filter.h)
*
* void *bpf_internal_load_pointer_neg_helper(const struct sk_buff *skb,
* int k, unsigned int size)
*
* see above (bpf_slow_path_common) for ABI restrictions
*/
#define bpf_negative_common(SIZE) \
PTR_ADDIU $r_sp, $r_sp, -(6 * SZREG); \
PTR_LA t0, bpf_internal_load_pointer_neg_helper; \
PTR_S $r_ra, (5 * SZREG)($r_sp); \
jalr t0; \
li a2, SIZE; \
PTR_L $r_ra, (5 * SZREG)($r_sp); \
/* Check return pointer */ \
beqz v0, fault; \
PTR_ADDIU $r_sp, $r_sp, 6 * SZREG; \
/* Preserve our pointer */ \
move $r_s0, v0; \
/* Set return value */ \
move $r_ret, zero; \
bpf_slow_path_word_neg:
bpf_is_end_of_data
NESTED(sk_load_word_negative, (6 * SZREG), $r_sp)
bpf_negative_common(4)
jr $r_ra
lw $r_A, 0($r_s0)
END(sk_load_word_negative)
bpf_slow_path_half_neg:
bpf_is_end_of_data
NESTED(sk_load_half_negative, (6 * SZREG), $r_sp)
bpf_negative_common(2)
jr $r_ra
lhu $r_A, 0($r_s0)
END(sk_load_half_negative)
bpf_slow_path_byte_neg:
bpf_is_end_of_data
NESTED(sk_load_byte_negative, (6 * SZREG), $r_sp)
bpf_negative_common(1)
jr $r_ra
lbu $r_A, 0($r_s0)
END(sk_load_byte_negative)
fault:
jr $r_ra
addiu $r_ret, zero, 1

View File

@@ -9,7 +9,7 @@
static inline unsigned long arch_local_save_flags(void)
{
return RDCTL(CTL_STATUS);
return RDCTL(CTL_FSTATUS);
}
/*
@@ -18,7 +18,7 @@ static inline unsigned long arch_local_save_flags(void)
*/
static inline void arch_local_irq_restore(unsigned long flags)
{
WRCTL(CTL_STATUS, flags);
WRCTL(CTL_FSTATUS, flags);
}
static inline void arch_local_irq_disable(void)

View File

@@ -11,7 +11,7 @@
#endif
/* control register numbers */
#define CTL_STATUS 0
#define CTL_FSTATUS 0
#define CTL_ESTATUS 1
#define CTL_BSTATUS 2
#define CTL_IENABLE 3

View File

@@ -37,6 +37,7 @@ config NIOS2_DTB_PHYS_ADDR
config NIOS2_DTB_SOURCE_BOOL
bool "Compile and link device tree into kernel image"
depends on !COMPILE_TEST
help
This allows you to specify a dts (device tree source) file
which will be compiled and linked into the kernel image.

View File

@@ -547,6 +547,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
l.bnf 1f // ext irq enabled, all ok.
l.nop
#ifdef CONFIG_PRINTK
l.addi r1,r1,-0x8
l.movhi r3,hi(42f)
l.ori r3,r3,lo(42f)
@@ -560,6 +561,7 @@ EXCEPTION_ENTRY(_external_irq_handler)
.string "\n\rESR interrupt bug: in _external_irq_handler (ESR %x)\n\r"
.align 4
.previous
#endif
l.ori r4,r4,SPR_SR_IEE // fix the bug
// l.sw PT_SR(r1),r4

View File

@@ -181,7 +181,7 @@ extern int npmem_ranges;
#include <asm-generic/getorder.h>
#include <asm/pdc.h>
#define PAGE0 ((struct zeropage *)__PAGE_OFFSET)
#define PAGE0 ((struct zeropage *)absolute_pointer(__PAGE_OFFSET))
/* DEFINITION OF THE ZERO-PAGE (PAG0) */
/* based on work by Jason Eckhardt (jason@equator.com) */

View File

@@ -1841,8 +1841,8 @@ syscall_restore:
LDREG TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1
/* Are we being ptraced? */
ldw TASK_FLAGS(%r1),%r19
ldi _TIF_SYSCALL_TRACE_MASK,%r2
LDREG TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19
ldi _TIF_SINGLESTEP|_TIF_BLOCKSTEP,%r2
and,COND(=) %r19,%r2,%r0
b,n syscall_restore_rfi

View File

@@ -238,6 +238,12 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
#endif
usp = (regs->gr[30] & ~(0x01UL));
#ifdef CONFIG_64BIT
if (is_compat_task()) {
/* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */
usp = (compat_uint_t)usp;
}
#endif
/*FIXME: frame_size parameter is unused, remove it. */
frame = get_sigframe(&ksig->ka, usp, sizeof(*frame));

View File

@@ -29,6 +29,7 @@
#include <linux/bitops.h>
#include <linux/ftrace.h>
#include <linux/cpu.h>
#include <linux/kgdb.h>
#include <linux/atomic.h>
#include <asm/current.h>
@@ -71,7 +72,10 @@ enum ipi_message_type {
IPI_CALL_FUNC,
IPI_CPU_START,
IPI_CPU_STOP,
IPI_CPU_TEST
IPI_CPU_TEST,
#ifdef CONFIG_KGDB
IPI_ENTER_KGDB,
#endif
};
@@ -169,7 +173,12 @@ ipi_interrupt(int irq, void *dev_id)
case IPI_CPU_TEST:
smp_debug(100, KERN_DEBUG "CPU%d is alive!\n", this_cpu);
break;
#ifdef CONFIG_KGDB
case IPI_ENTER_KGDB:
smp_debug(100, KERN_DEBUG "CPU%d ENTER_KGDB\n", this_cpu);
kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
break;
#endif
default:
printk(KERN_CRIT "Unknown IPI num on CPU%d: %lu\n",
this_cpu, which);
@@ -225,6 +234,12 @@ send_IPI_allbutself(enum ipi_message_type op)
}
}
#ifdef CONFIG_KGDB
void kgdb_roundup_cpus(void)
{
send_IPI_allbutself(IPI_ENTER_KGDB);
}
#endif
inline void
smp_send_stop(void) { send_IPI_allbutself(IPI_CPU_STOP); }

View File

@@ -21,6 +21,8 @@
#include <asm/ptrace.h>
#include <asm/unwind.h>
#include <asm/switch_to.h>
#include <asm/sections.h>
/* #define DEBUG 1 */
#ifdef DEBUG
@@ -203,6 +205,11 @@ int __init unwind_init(void)
return 0;
}
static bool pc_is_kernel_fn(unsigned long pc, void *fn)
{
return (unsigned long)dereference_kernel_function_descriptor(fn) == pc;
}
static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int frame_size)
{
/*
@@ -221,7 +228,7 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int
extern void * const _call_on_stack;
#endif /* CONFIG_IRQSTACKS */
if (pc == (unsigned long) &handle_interruption) {
if (pc_is_kernel_fn(pc, handle_interruption)) {
struct pt_regs *regs = (struct pt_regs *)(info->sp - frame_size - PT_SZ_ALGN);
dbg("Unwinding through handle_interruption()\n");
info->prev_sp = regs->gr[30];
@@ -229,13 +236,13 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int
return 1;
}
if (pc == (unsigned long) &ret_from_kernel_thread ||
pc == (unsigned long) &syscall_exit) {
if (pc_is_kernel_fn(pc, ret_from_kernel_thread) ||
pc_is_kernel_fn(pc, syscall_exit)) {
info->prev_sp = info->prev_ip = 0;
return 1;
}
if (pc == (unsigned long) &intr_return) {
if (pc_is_kernel_fn(pc, intr_return)) {
struct pt_regs *regs;
dbg("Found intr_return()\n");
@@ -246,20 +253,20 @@ static int unwind_special(struct unwind_frame_info *info, unsigned long pc, int
return 1;
}
if (pc == (unsigned long) &_switch_to_ret) {
if (pc_is_kernel_fn(pc, _switch_to) ||
pc_is_kernel_fn(pc, _switch_to_ret)) {
info->prev_sp = info->sp - CALLEE_SAVE_FRAME_SIZE;
info->prev_ip = *(unsigned long *)(info->prev_sp - RP_OFFSET);
return 1;
}
#ifdef CONFIG_IRQSTACKS
if (pc == (unsigned long) &_call_on_stack) {
if (pc_is_kernel_fn(pc, _call_on_stack)) {
info->prev_sp = *(unsigned long *)(info->sp - FRAME_SIZE - REG_SZ);
info->prev_ip = *(unsigned long *)(info->sp - FRAME_SIZE - RP_OFFSET);
return 1;
}
#endif
return 0;
}

View File

@@ -56,6 +56,8 @@ SECTIONS
{
. = KERNEL_BINARY_TEXT_START;
_stext = .; /* start of kernel text, includes init code & data */
__init_begin = .;
HEAD_TEXT_SECTION
MLONGCALL_DISCARD(INIT_TEXT_SECTION(8))
@@ -79,7 +81,6 @@ SECTIONS
/* freed after init ends here */
_text = .; /* Text and read-only data */
_stext = .;
MLONGCALL_KEEP(INIT_TEXT_SECTION(8))
.text ALIGN(PAGE_SIZE) : {
TEXT_TEXT

View File

@@ -310,12 +310,15 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
r1 &= ~3;
fpregs[t+3] = fpregs[r1+3];
fpregs[t+2] = fpregs[r1+2];
fallthrough;
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
fpregs[t] = fpregs[r1];
return(NOEXCEPTION);
}
BUG();
case 3: /* FABS */
switch (fmt) {
case 2: /* illegal */
@@ -325,13 +328,16 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
r1 &= ~3;
fpregs[t+3] = fpregs[r1+3];
fpregs[t+2] = fpregs[r1+2];
fallthrough;
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
/* copy and clear sign bit */
fpregs[t] = fpregs[r1] & 0x7fffffff;
return(NOEXCEPTION);
}
BUG();
case 6: /* FNEG */
switch (fmt) {
case 2: /* illegal */
@@ -341,13 +347,16 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
r1 &= ~3;
fpregs[t+3] = fpregs[r1+3];
fpregs[t+2] = fpregs[r1+2];
fallthrough;
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
/* copy and invert sign bit */
fpregs[t] = fpregs[r1] ^ 0x80000000;
return(NOEXCEPTION);
}
BUG();
case 7: /* FNEGABS */
switch (fmt) {
case 2: /* illegal */
@@ -357,13 +366,16 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
r1 &= ~3;
fpregs[t+3] = fpregs[r1+3];
fpregs[t+2] = fpregs[r1+2];
fallthrough;
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
/* copy and set sign bit */
fpregs[t] = fpregs[r1] | 0x80000000;
return(NOEXCEPTION);
}
BUG();
case 4: /* FSQRT */
switch (fmt) {
case 0:
@@ -376,6 +388,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 5: /* FRND */
switch (fmt) {
case 0:
@@ -389,7 +402,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(MAJOR_0C_EXCP);
}
} /* end of switch (subop) */
BUG();
case 1: /* class 1 */
df = extru(ir,fpdfpos,2); /* get dest format */
if ((df & 2) || (fmt & 2)) {
@@ -419,6 +432,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* dbl/dbl */
return(MAJOR_0C_EXCP);
}
BUG();
case 1: /* FCNVXF */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -434,6 +448,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 2: /* FCNVFX */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -449,6 +464,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 3: /* FCNVFXT */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -464,6 +480,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 5: /* FCNVUF (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -479,6 +496,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 6: /* FCNVFU (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -494,6 +512,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 7: /* FCNVFUT (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -509,10 +528,11 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 4: /* undefined */
return(MAJOR_0C_EXCP);
} /* end of switch subop */
BUG();
case 2: /* class 2 */
fpu_type_flags=fpregs[FPU_TYPE_FLAG_POS];
r2 = extru(ir, fpr2pos, 5) * sizeof(double)/sizeof(u_int);
@@ -590,6 +610,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 1: /* FTEST */
switch (fmt) {
case 0:
@@ -609,8 +630,10 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3:
return(MAJOR_0C_EXCP);
}
BUG();
} /* end of switch subop */
} /* end of else for PA1.0 & PA1.1 */
BUG();
case 3: /* class 3 */
r2 = extru(ir,fpr2pos,5) * sizeof(double)/sizeof(u_int);
if (r2 == 0)
@@ -633,6 +656,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 1: /* FSUB */
switch (fmt) {
case 0:
@@ -645,6 +669,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 2: /* FMPY */
switch (fmt) {
case 0:
@@ -657,6 +682,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 3: /* FDIV */
switch (fmt) {
case 0:
@@ -669,6 +695,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
case 4: /* FREM */
switch (fmt) {
case 0:
@@ -681,6 +708,7 @@ decode_0c(u_int ir, u_int class, u_int subop, u_int fpregs[])
case 3: /* quad not implemented */
return(MAJOR_0C_EXCP);
}
BUG();
} /* end of class 3 switch */
} /* end of switch(class) */
@@ -736,10 +764,12 @@ u_int fpregs[];
return(MAJOR_0E_EXCP);
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
fpregs[t] = fpregs[r1];
return(NOEXCEPTION);
}
BUG();
case 3: /* FABS */
switch (fmt) {
case 2:
@@ -747,10 +777,12 @@ u_int fpregs[];
return(MAJOR_0E_EXCP);
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
fpregs[t] = fpregs[r1] & 0x7fffffff;
return(NOEXCEPTION);
}
BUG();
case 6: /* FNEG */
switch (fmt) {
case 2:
@@ -758,10 +790,12 @@ u_int fpregs[];
return(MAJOR_0E_EXCP);
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
fpregs[t] = fpregs[r1] ^ 0x80000000;
return(NOEXCEPTION);
}
BUG();
case 7: /* FNEGABS */
switch (fmt) {
case 2:
@@ -769,10 +803,12 @@ u_int fpregs[];
return(MAJOR_0E_EXCP);
case 1: /* double */
fpregs[t+1] = fpregs[r1+1];
fallthrough;
case 0: /* single */
fpregs[t] = fpregs[r1] | 0x80000000;
return(NOEXCEPTION);
}
BUG();
case 4: /* FSQRT */
switch (fmt) {
case 0:
@@ -785,6 +821,7 @@ u_int fpregs[];
case 3:
return(MAJOR_0E_EXCP);
}
BUG();
case 5: /* FRMD */
switch (fmt) {
case 0:
@@ -798,7 +835,7 @@ u_int fpregs[];
return(MAJOR_0E_EXCP);
}
} /* end of switch (subop */
BUG();
case 1: /* class 1 */
df = extru(ir,fpdfpos,2); /* get dest format */
/*
@@ -826,6 +863,7 @@ u_int fpregs[];
case 3: /* dbl/dbl */
return(MAJOR_0E_EXCP);
}
BUG();
case 1: /* FCNVXF */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -841,6 +879,7 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvxf(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 2: /* FCNVFX */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -856,6 +895,7 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvfx(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 3: /* FCNVFXT */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -871,6 +911,7 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvfxt(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 5: /* FCNVUF (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -886,6 +927,7 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvuf(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 6: /* FCNVFU (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -901,6 +943,7 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvfu(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 7: /* FCNVFUT (PA2.0 only) */
switch(fmt) {
case 0: /* sgl/sgl */
@@ -916,9 +959,11 @@ u_int fpregs[];
return(dbl_to_dbl_fcnvfut(&fpregs[r1],0,
&fpregs[t],status));
}
BUG();
case 4: /* undefined */
return(MAJOR_0C_EXCP);
} /* end of switch subop */
BUG();
case 2: /* class 2 */
/*
* Be careful out there.
@@ -994,6 +1039,7 @@ u_int fpregs[];
}
} /* end of switch subop */
} /* end of else for PA1.0 & PA1.1 */
BUG();
case 3: /* class 3 */
/*
* Be careful out there.
@@ -1026,6 +1072,7 @@ u_int fpregs[];
return(dbl_fadd(&fpregs[r1],&fpregs[r2],
&fpregs[t],status));
}
BUG();
case 1: /* FSUB */
switch (fmt) {
case 0:
@@ -1035,6 +1082,7 @@ u_int fpregs[];
return(dbl_fsub(&fpregs[r1],&fpregs[r2],
&fpregs[t],status));
}
BUG();
case 2: /* FMPY or XMPYU */
/*
* check for integer multiply (x bit set)
@@ -1071,6 +1119,7 @@ u_int fpregs[];
&fpregs[r2],&fpregs[t],status));
}
}
BUG();
case 3: /* FDIV */
switch (fmt) {
case 0:
@@ -1080,6 +1129,7 @@ u_int fpregs[];
return(dbl_fdiv(&fpregs[r1],&fpregs[r2],
&fpregs[t],status));
}
BUG();
case 4: /* FREM */
switch (fmt) {
case 0:

View File

@@ -18,12 +18,9 @@ void notrace set_fixmap(enum fixed_addresses idx, phys_addr_t phys)
pte_t *pte;
if (pmd_none(*pmd))
pmd = pmd_alloc(NULL, pgd, vaddr);
pte = pte_offset_kernel(pmd, vaddr);
if (pte_none(*pte))
pte = pte_alloc_kernel(pmd, vaddr);
pte = pte_offset_kernel(pmd, vaddr);
set_pte_at(&init_mm, vaddr, pte, __mk_pte(phys, PAGE_KERNEL_RWX));
flush_tlb_kernel_range(vaddr, vaddr + PAGE_SIZE);
}

View File

@@ -892,9 +892,9 @@ void flush_tlb_all(void)
{
int do_recycle;
__inc_irq_stat(irq_tlb_count);
do_recycle = 0;
spin_lock(&sid_lock);
__inc_irq_stat(irq_tlb_count);
if (dirty_space_ids > RECYCLE_THRESHOLD) {
BUG_ON(recycle_inuse); /* FIXME: Use a semaphore/wait queue here */
get_dirty_sids(&recycle_ndirty,recycle_dirty_array);
@@ -913,8 +913,8 @@ void flush_tlb_all(void)
#else
void flush_tlb_all(void)
{
__inc_irq_stat(irq_tlb_count);
spin_lock(&sid_lock);
__inc_irq_stat(irq_tlb_count);
flush_tlb_all_local(NULL);
recycle_sids();
spin_unlock(&sid_lock);

View File

@@ -154,7 +154,7 @@
fm1mac3: ethernet@e4000 {
phy-handle = <&sgmii_aqr_phy3>;
phy-connection-type = "sgmii-2500";
phy-connection-type = "2500base-x";
sleep = <&rcpm 0x20000000>;
};

View File

@@ -39,6 +39,7 @@ CONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_CFI_I2 is not set
CONFIG_MTD_CFI_I4=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y
# CONFIG_BLK_DEV is not set
CONFIG_NETDEVICES=y

View File

@@ -22,6 +22,7 @@
#define BRANCH_ABSOLUTE 0x2
bool is_offset_in_branch_range(long offset);
bool is_offset_in_cond_branch_range(long offset);
unsigned int create_branch(const unsigned int *addr,
unsigned long target, int flags);
unsigned int create_cond_branch(const unsigned int *addr,

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