Merge tag 'android11-5.4.274_r00' into branch 'android11-5.4'

This is the merge of the upstream 5.4.274 relelease into the
android11-5.4 branch.  Included in here are the following commits:

* 181edea14a Revert "timers: Rename del_timer_sync() to timer_delete_sync()"
*   46cf330263 Merge 5.4.274 into android11-5.4-lts
|\
| * 0dbd436fb9 Linux 5.4.274
| * fba9c24c19 firmware: meson_sm: fix to avoid potential NULL pointer dereference
| * 35a5acfa7a ip_gre: do not report erspan version on GRE interface
| * 61206032d6 erspan: Check IFLA_GRE_ERSPAN_VER is set.
| * 7f12ecf453 VMCI: Fix possible memcpy() run-time warning in vmci_datagram_invoke_guest_handler()
| * d006b709db Bluetooth: btintel: Fixe build regression
| * 0bf9fd89ba x86/alternative: Don't call text_poke() in lazy TLB mode
| * 67944e6db6 drm/i915/gt: Reset queue_priority_hint on parking
| * 09e6bb5321 x86/mm/pat: fix VM_PAT handling in COW mappings
| * 6e5da7d65b virtio: reenable config if freezing device failed
| * e7bda8f58b drm/vkms: call drm_atomic_helper_shutdown before drm_dev_put()
| * 7a529c9023 tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc
| * 9a3b90904d netfilter: nf_tables: discard table flag update with pending basechain deletion
| * 61ac728434 netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path
| * 0a14e16239 netfilter: nf_tables: release batch on table validation from abort path
| * 41bad13c0e netfilter: nf_tables: reject new basechain after table flag update
| * 72d091b751 fbmon: prevent division by zero in fb_videomode_from_videomode()
| * 77f34b9af3 fbdev: viafb: fix typo in hw_bitblt_1 and hw_bitblt_2
| * 0eab73ffb6 usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined
| * 261a831427 usb: typec: tcpci: add generic tcpci fallback compatible
| * fcc68c952c tools: iio: replace seekdir() in iio_generic_buffer
| * 97832659b1 ktest: force $buildonly = 1 for 'make_warnings_file' test type
| * 71de605098 Input: allocate keycode for Display refresh rate toggle
| * edd073c78d block: prevent division by zero in blk_rq_stat_sum()
| * 73daab5b8c Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default"
| * 4256e1460e SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to unsigned int
| * 08a07d5a20 drm/amd/display: Fix nanosec stat overflow
| * 4a35b778d0 media: sta2x11: fix irq handler cast
| * 2c1f840469 isofs: handle CDs with bad root inode but good Joliet root directory
| * e2cd32435b scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc()
| * 1b4fe801b5 sysv: don't call sb_bread() with pointers_lock held
| * e04cae532a Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails
| * 68a69bb2ec Bluetooth: btintel: Fix null ptr deref in btintel_read_version
| * 024529c27c btrfs: send: handle path ref underflow in header iterate_inode_ref()
| * a9252c8cfa btrfs: export: handle invalid inode or root reference in btrfs_get_parent()
| * 576164bd01 btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks()
| * 41aff62bf1 tools/power x86_energy_perf_policy: Fix file leak in get_pkg_num()
| * 97ad3fc426 ionic: set adminq irq affinity
| * 67611c11d7 arm64: dts: rockchip: fix rk3399 hdmi ports node
| * 223145f838 arm64: dts: rockchip: fix rk3328 hdmi ports node
| * 60d417f3e4 panic: Flush kernel log buffer at the end
| * f15eca9513 VMCI: Fix memcpy() run-time warning in dg_dispatch_as_host()
| * dec0f1b008 wifi: ath9k: fix LNA selection in ath_ant_try_scan()
| * 485b5d1d6a s390/entry: align system call table on 8 bytes
| * 976b1b2680 x86/mce: Make sure to grab mce_sysfs_mutex in set_bank()
| * 039458c058 ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with microphone
| * fc4387dce4 ata: sata_mv: Fix PCI device ID table declaration compilation warning
| * 0e9207b054 scsi: mylex: Fix sysfs buffer lengths
| * d887674f09 ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit
| * 517884404e ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw
| * 9c11271714 net: ravb: Always process TX descriptor ring
| * e54a0c79cd erspan: make sure erspan_base_hdr is present in skb->head
| * 959fe471f1 erspan: Add type I version 0 support.
| * 19d7e7c1ee init: open /initrd.image with O_LARGEFILE
| * 32e34d96b3 initramfs: switch initramfs unpacking to struct file based APIs
| * 13b2d81505 fs: add a vfs_fchmod helper
| * 8eba8d1145 fs: add a vfs_fchown helper
| * 9550632ba9 staging: vc04_services: fix information leak in create_component()
| * bbd974d444 staging: vc04_services: changen strncpy() to strscpy_pad()
| * d07aab3ca7 staging: mmal-vchiq: Fix client_component for 64 bit kernel
| * 50bc5a96f8 staging: mmal-vchiq: Allocate and free components as required
| * 9dcf0fcb80 i40e: fix vf may be used uninitialized in this function warning
| * 9c52581961 ipv6: Fix infinite recursion in fib6_dump_done().
| * 73fac254ec selftests: reuseaddr_conflict: add missing new line at the end of the output
| * 2882bb3b91 net: stmmac: fix rx queue priority assignment
| * f356eb2fb5 net/sched: act_skbmod: prevent kernel-infoleak
| * f7990498b0 bpf, sockmap: Prevent lock inversion deadlock in map delete elem
| * a347bc8e62 netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get()
| * f4e14695fe netfilter: nf_tables: flush pending destroy work before exit_net release
| * ab81b3d2f3 mm, vmscan: prevent infinite loop for costly GFP_NOIO | __GFP_RETRY_MAYFAIL allocations
| * 144c56d5dd Revert "x86/mm/ident_map: Use gbpages only where full GB page should be mapped."
| * 07afdfd8a6 vfio/platform: Create persistent IRQ handlers
| * b18fa894d6 vfio/pci: Create persistent INTx handler
| * 3777fa4c8f vfio: Introduce interface to flush virqfd inject workqueue
| * 1e71b6449d vfio/pci: Lock external INTx masking ops
| * 26389925d6 vfio/pci: Disable auto-enable of exclusive INTx IRQ
| * bcd46782e2 net/rds: fix possible cp null dereference
| * 49ce99ae43 netfilter: nf_tables: disallow timeout for anonymous sets
| * f5450973eb Bluetooth: Fix TOCTOU in HCI debugfs implementation
| * 5c8b927293 Bluetooth: hci_event: set the conn encrypted before conn establishes
| * 9d161e8af4 x86/cpufeatures: Add new word for scattered features
| * ff7a4adbd7 r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d
| * e78f604693 dm integrity: fix out-of-range warning
| * 44e62f5d35 tcp: properly terminate timers for kernel sockets
| * a4bb81d890 ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa()
| * 03fe259649 nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet
| * 12d6a5681a USB: core: Fix deadlock in usb_deauthorize_interface()
| * ea9a4fce2e scsi: lpfc: Correct size for wqe for memset()
| * fa24c1a49d x86/cpu: Enable STIBP on AMD if Automatic IBRS is enabled
| * d7a68eee87 scsi: qla2xxx: Fix command flush on cable pull
| * 68d951880d usb: udc: remove warning when queue disabled ep
| * a79ac9f3da usb: dwc2: gadget: LPM flow fix
| * 693bbbccd9 usb: dwc2: host: Fix ISOC flow in DDMA mode
| * eb97df08c3 usb: dwc2: host: Fix hibernation flow
| * 4cf44c9fa0 usb: dwc2: host: Fix remote wakeup from hibernation
| * 0053f15d50 scsi: core: Fix unremoved procfs host directory regression
| * 4206ad65a0 ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
| * 3afdcc4e1a usb: cdc-wdm: close race between read and workqueue
| * b9a7339ae4 mmc: core: Avoid negative index with array access
| * fd20d84bae mmc: core: Initialize mmc_blk_ioc_data
| * c7a9b1b777 exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
| * be1dd9254f wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes
| * 747d4ee747 mm/migrate: set swap entry values of THP tail pages properly.
| * 7f75e937ec mm/memory-failure: fix an incorrect use of tail pages
| * 815be99d93 vt: fix memory overlapping when deleting chars in the buffer
| * d6077e0d38 bounds: support non-power-of-two CONFIG_NR_CPUS
| * 282e4deafe powerpc: xor_vmx: Add '-mhard-float' to CFLAGS
| * 34b5d2ff9e efivarfs: Request at most 512 bytes for variable names
| * 37a65df6a9 perf/core: Fix reentry problem in perf_output_read_group()
| * 861021710b loop: loop_set_status_from_info() check before assignment
| * b40877b856 loop: Check for overflow while configuring loop
| * f4476da8ea loop: Factor out configuring loop from status
| * 7423a124fa loop: Refactor loop_set_status() size calculation
| * 3c9e7e8cb6 loop: Factor out setting loop device size
| * e08b2e4176 loop: Remove sector_t truncation checks
| * ea3bec644a loop: Call loop_config_discard() only after new config is applied
| * 2ea7077748 Revert "loop: Check for overflow while configuring loop"
| * 735e525d8c btrfs: allocate btrfs_ioctl_defrag_range_args on stack
| * 501561d808 printk: Update @console_may_schedule in console_trylock_spinning()
| * 9470f5b250 xen/events: close evtchn after mapping cleanup
| * 03b19c7fa1 x86/speculation: Support intra-function call validation
| * f8f25fde0c objtool: Add support for intra-function calls
| * eafb29361a objtool: is_fentry_call() crashes if call has no destination
| * 396dbbc189 fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
| * ff7342090c vt: fix unicode buffer corruption when deleting characters
| * 741dee500f tty: serial: fsl_lpuart: avoid idle preamble pending if CTS is enabled
| * d79cd5c29a usb: port: Don't try to peer unused USB ports based on location
| * a766761d20 usb: gadget: ncm: Fix handling of zero block length packets
| * eb7b01ca77 USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command
| * 9e93b41109 ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo ALC897 platform
| * 57ae281a67 xfrm: Avoid clang fortify warning in copy_to_user_tmpl()
| * 0920c618d2 netfilter: nf_tables: reject constant set with timeout
| * e9a0d3f376 netfilter: nf_tables: disallow anonymous set with timeout flag
| * edcf1a3f18 netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
| * 1ba8fdef88 comedi: comedi_test: Prevent timers rescheduling during deletion
| * e7d4cff57c dm snapshot: fix lockup in dm_exception_table_exit
| * 35ff8175d9 ahci: asm1064: asm1166: don't limit reported ports
| * 86e248c2d6 ahci: asm1064: correct count of reported ports
| * 89c4357725 x86/CPU/AMD: Update the Zenbleed microcode revisions
| * 32eaee72e9 nilfs2: prevent kernel bug at submit_bh_wbc()
| * 6503d76d91 nilfs2: use a more common logging style
| * 9cbe1ad5f4 nilfs2: fix failure to detect DAT corruption in btree and direct mappings
| * f2cee08a69 memtest: use {READ,WRITE}_ONCE in memory scanning
| * 673fb93c92 drm/vc4: hdmi: do not return negative values from .get_modes()
| * 7ecbec89e4 drm/imx/ipuv3: do not return negative values from .get_modes()
| * 348aa3d47e drm/exynos: do not return negative values from .get_modes()
| * 9daddee03d s390/zcrypt: fix reference counting on zcrypt card objects
| * ff50716b7d soc: fsl: qbman: Use raw spinlock for cgr_lock
| * f248ecc186 soc: fsl: qbman: Add CGR update function
| * 6e9629518c soc: fsl: qbman: Add helper for sanity checking cgr ops
| * 62c3ecd283 soc: fsl: qbman: Always disable interrupts when taking cgr_lock
| * 3f91ba9653 ring-buffer: Fix full_waiters_pending in poll
| * f7578a3b7c ring-buffer: Fix resetting of shortest_full
| * b0beb669a8 vfio/platform: Disable virqfds on cleanup
| * b046ab1642 kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
| * 31722ed2c3 speakup: Fix 8bit characters from direct synth
| * b2b93a38d6 slimbus: core: Remove usage of the deprecated ida_simple_xx() API
| * aec74a14d1 nvmem: meson-efuse: fix function pointer type mismatch
| * 525ae72d9f firmware: meson_sm: Rework driver as a proper platform driver
| * ee4e9c1976 ext4: fix corruption during on-line resize
| * 1a560f1969 hwmon: (amc6821) add of_match table
| * d7bc1877c1 mmc: core: Fix switch on gp3 partition
| * 24019e5ac6 dm-raid: fix lockdep waring in "pers->hot_add_disk"
| * 0b949dc225 Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
| * 47d8aafcfe PCI/PM: Drain runtime-idle callbacks before driver removal
| * ec6f7c0807 PCI: Drop pci_device_remove() test of pci_dev->driver
| * 287a9a9b6e btrfs: fix off-by-one chunk length calculation at contains_pending_extent()
| * ab95a42020 fuse: don't unhash root
| * c180d65df8 mmc: tmio: avoid concurrent runs of mmc_request_done()
| * 2e94147e20 PM: sleep: wakeirq: fix wake irq warning in system suspend
| * bd140aef69 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M
| * b11cd74c31 USB: serial: option: add MeiG Smart SLM320 product
| * f5167c50af USB: serial: cp210x: add ID for MGP Instruments PDS100
| * 4fda3ad19d USB: serial: add device ID for VeriFone adapter
| * 3f01bf964e USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB
| * 4fc30a31e1 powerpc/fsl: Fix mfpmr build errors with newer binutils
| * 86bf75d915 clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
| * b2dfb216f3 clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
| * 83fe1bbd9e clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
| * ddcd5ea7b2 PM: suspend: Set mem_sleep_current during kernel command line setup
| * 42dcb0a374 parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
| * 10e031fbe5 parisc: Fix csum_ipv6_magic on 64-bit systems
| * 4dc4793c9d parisc: Fix csum_ipv6_magic on 32-bit systems
| * 89cb6c7169 parisc: Fix ip_fast_csum
| * 331b43d79a parisc: Do not hardcode registers in checksum functions
| * 64a1ccfa9a mtd: rawnand: meson: fix scrambling mode value in command macro
| * a1d549aec8 ubi: correct the calculation of fastmap size
| * 4e09d5210b ubi: Check for too small LEB size in VTBL code
| * 778c6ad402 ubifs: Set page uptodate in the correct place
| * f52d7663a1 fat: fix uninitialized field in nostale filehandles
| * b224a3b8d3 ext4: correct best extent lstart adjustment logic
| * e8b25c7bae selftests/mqueue: Set timeout to 180 seconds
| * 8e81cd58ae crypto: qat - resolve race condition during AER recovery
| * 5a9f7e9123 crypto: qat - fix double free during reset
| * fca0c42c34 sparc: vDSO: fix return value of __setup handler
| * 75159bcec2 sparc64: NMI watchdog: fix return value of __setup handler
| * 82e25cc1c2 KVM: Always flush async #PF workqueue when vCPU is being destroyed
| * ce6e52cade media: xc4000: Fix atomicity violation in xc4000_get_frequency
| * 7d271b798a serial: max310x: fix NULL pointer dereference in I2C instantiation
| * d453dd485e arm: dts: marvell: Fix maxium->maxim typo in brownstone dts
| * 36f6b76341 ARM: dts: mmp2-brownstone: Don't redeclare phandle references
| * 60f9cecf6a smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity()
| * cec55e30e3 smack: Set SMACK64TRANSMUTE only for dirs in smack_inode_setxattr()
| * 9a353d80ba clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd
| * a7923ecece media: staging: ipu3-imgu: Set fields before media_entity_pads_init()
| * 8e3f03f4ef wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
| * df4209170b timers: Rename del_timer_sync() to timer_delete_sync()
| * ef5f71db1e timers: Use del_timer_sync() even on UP
| * 9ec9c420db timers: Update kernel-doc for various functions
| * c513b79129 x86/bugs: Use sysfs_emit()
| * 922bc61d8c x86/cpu: Support AMD Automatic IBRS
| * d9caea5f1b Documentation/hw-vuln: Update spectre doc
| * 8b05647042 amdkfd: use calloc instead of kzalloc to avoid integer overflow
* | ff7463a1e9 Reapply "media: ttpci: fix two memleaks in budget_av_attach"
* | 7cc7098648 Revert "media: rename VFL_TYPE_GRABBER to _VIDEO"
* | b8c488bb24 Revert "media: media/pci: rename VFL_TYPE_GRABBER to _VIDEO"
* | be024bb2cd Revert "media: ttpci: fix two memleaks in budget_av_attach"
* | d873f54a70 Revert "net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()"
* | 960240ce53 Merge 5.4.273 into android11-5.4-lts
|\|
| * 24489321d0 Linux 5.4.273
| * b37f030486 regmap: Add missing map->bus check
| * 55f8ea6731 spi: spi-mt65xx: Fix NULL pointer access in interrupt handler
| * 59426454b8 bpf: report RCU QS in cpumap kthread
| * 3ffe591b27 rcu: add a helper to report consolidated flavor QS
| * 2531f907d3 netfilter: nf_tables: do not compare internal table flags on updates
| * 71002d9eb1 ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add regulator nodes vcc-dram and vcc1v2
| * 94cb17e5cf octeontx2-af: Use separate handlers for interrupts
| * 4f37d3a7e0 net/bnx2x: Prevent access to a freed page in page_pool
| * 69f9f55891 hsr: Handle failures in module init
| * f781fb5177 rds: introduce acquire/release ordering in acquire/release_in_xmit()
| * 84c510411e packet: annotate data-races around ignore_outgoing
| * 889ed056ea hsr: Fix uninit-value access in hsr_get_node()
| * 48cef94b69 s390/vtime: fix average steal time calculation
| * 305c31b970 octeontx2-af: Use matching wake_up API variant in CGX command interface
| * b63362b317 usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin
| * 254b27c4ae staging: greybus: fix get_channel_from_mode() failure path
| * f6bf49e76f serial: 8250_exar: Don't remove GPIO device on suspend
| * 8dd52ab78f rtc: mt6397: select IRQ_DOMAIN instead of depending on it
| * ca6279d1a1 kconfig: fix infinite loop when expanding a macro at the end of file
| * a8cc354a81 tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT
| * f1c9a0c338 serial: max310x: fix syntax error in IRQ error message
| * bd2f4df259 tty: vt: fix 20 vs 0x20 typo in EScsiignore
| * 854ebf45a4 afs: Revert "afs: Hide silly-rename files from userspace"
| * afcbba70bf NFS: Fix an off by one in root_nfs_cat()
| * bcc3ec2bdb watchdog: stm32_iwdg: initialize default timeout
| * e95eeb7f7d net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()
| * 3b8415daaa scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn
| * 2b38dbd7fa RDMA/device: Fix a race between mad_client and cm_client init
| * 39b1af7bc9 scsi: csiostor: Avoid function pointer casts
| * 6d5dc96b15 ALSA: usb-audio: Stop parsing channels bits when all channels are found.
| * d7ae7d1265 clk: Fix clk_core_get NULL dereference
| * a1129b0922 sparc32: Fix section mismatch in leon_pci_grpci
| * c8c038beb4 backlight: lp8788: Fully initialize backlight_properties during probe
| * 8c351a9ef5 backlight: lm3639: Fully initialize backlight_properties during probe
| * 12a0153f78 backlight: da9052: Fully initialize backlight_properties during probe
| * 1c8d8c6b4e backlight: lm3630a: Don't set bl->props.brightness in get_brightness
| * 40a89f1bc4 backlight: lm3630a: Initialize backlight_properties on init
| * bb9981f915 powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.
| * a6e96cc265 drm/msm/dpu: add division of drm_display_mode's hskew parameter
| * 41eec45c71 powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks
| * dfde84cc6c drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
| * af37aed049 media: ttpci: fix two memleaks in budget_av_attach
| * 353f980a5d media: media/pci: rename VFL_TYPE_GRABBER to _VIDEO
| * fa83fca55c media: rename VFL_TYPE_GRABBER to _VIDEO
| * 25f5765521 media: v4l2-core: correctly validate video and metadata ioctls
| * 291cda0b80 media: go7007: fix a memleak in go7007_load_encoder
| * fa8b472952 media: dvb-frontends: avoid stack overflow warnings with clang
| * d29ed08964 media: pvrusb2: fix uaf in pvr2_context_set_notify
| * 86c10c56f2 drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()
| * 23d57b99ca ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs
| * 8df143c608 mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
| * d9d4d1363b mtd: maps: physmap-core: fix flash size larger than 32-bit
| * a8c73f0439 crypto: arm/sha - fix function cast warnings
| * 4b6569e142 mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref
| * ac1170674d mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
| * 3472fa83d9 drm/tegra: put drm_gem_object ref on error in tegra_fb_create
| * f27aaaecf7 clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()
| * 44163c73b0 PCI: Mark 3ware-9650SE Root Port Extended Tags as broken
| * 9b074f2ed1 drm/mediatek: dsi: Fix DSI RGB666 formats and definitions
| * 2e1120e480 clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times
| * d2f3c762ba media: pvrusb2: fix pvr2_stream_callback casts
| * e9d391cc70 media: pvrusb2: remove redundant NULL check
| * 013fb50518 media: go7007: add check of return value of go7007_read_addr()
| * 8c2e4efe12 media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak
| * cf95808632 perf stat: Avoid metric-only segv
| * 9e411c40bd ALSA: seq: fix function cast warnings
| * a0ae3335b3 drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
| * 9df9108a91 perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()
| * 79ab819393 PCI: switchtec: Fix an error handling path in switchtec_pci_probe()
| * 00b07b4962 quota: Fix rcu annotations of inode dquot pointers
| * 49669f8e7e quota: Fix potential NULL pointer dereference
| * ff29b5f9f0 quota: simplify drop_dquot_ref()
| * 68435ffc1c clk: qcom: reset: Ensure write completion on reset de/assertion
| * 026d3984a1 clk: qcom: reset: Commonize the de/assert functions
| * 48846ddc71 clk: qcom: reset: support resetting multiple bits
| * 7f82802d47 clk: qcom: reset: Allow specifying custom reset delay
| * f20c3270f3 media: edia: dvbdev: fix a use-after-free
| * 0175f2d34c media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
| * 8269ab1641 media: v4l2-tpg: fix some memleaks in tpg_alloc
| * 2e6892b2be media: em28xx: annotate unchecked call to media_device_register()
| * 639155da9b perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample()
| * e019d87e02 drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()'
| * 1d4d674173 perf record: Fix possible incorrect free in record__switch_output()
| * adc8a91676 PCI/DPC: Print all TLP Prefixes, not just the first
| * daf21394f9 media: tc358743: register v4l2 async device only after successful setup
| * ba34d8a5aa dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA
| * cc31a90eb7 drm/rockchip: lvds: do not overwrite error code
| * f1dfd026cd drm: Don't treat 0 as -1 in drm_fixp2int_ceil
| * b061b28b66 drm/rockchip: inno_hdmi: Fix video timing
| * 91dc47cd72 drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe()
| * 030d46f859 drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe()
| * b4cb57ec2c drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
| * e04e773fb8 drm/tegra: dsi: Make use of the helper function dev_err_probe()
| * 85f28e98c5 gpu: host1x: mipi: Update tegra_mipi_request() to be node based
| * f05631a852 drm/tegra: dsi: Add missing check for of_find_device_by_node
| * da7ece2197 dm: call the resume method on internal suspend
| * 6070692ea3 dm raid: fix false positive for requeue needed during reshape
| * 3b1e8a617e nfp: flower: handle acti_netdevs allocation failure
| * e06f0d3f66 net/x25: fix incorrect parameter validation in the x25_getsockopt() function
| * 26843eefcf net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function
| * b9979cae62 udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
| * 1bd08e5314 l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
| * 2e7f3cabc6 tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
| * fb6639c748 net: hns3: fix port duplex configure error in IMP reset
| * ec6bb01e02 net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
| * a9f5faf28e ipv6: fib6_rules: flush route cache when rule is changed
| * 21e5fa4688 bpf: Fix stackmap overflow check on 32-bit arches
| * 92c81fbb3e bpf: Fix hashtab overflow check on 32-bit arches
| * 8a8b6a2468 sr9800: Add check for usbnet_get_endpoints
| * 54a03e4ac1 Bluetooth: hci_core: Fix possible buffer overflow
| * f6177a1723 Bluetooth: Remove superfluous call to hci_conn_check_pending()
| * 03df15b579 igb: Fix missing time sync events
| * 141897c5b0 igb: move PEROUT and EXTTS isr logic to separate functions
| * 8081d80a92 mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function
| * bfa9d86d39 SUNRPC: fix some memleaks in gssx_dec_option_array
| * 52018aa146 x86, relocs: Ignore relocations in .notes section
| * 450ac90ed4 ACPI: scan: Fix device check notification handling
| * 33b498a123 ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node
| * 0655698da8 ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address
| * 8deafa61fb ARM: dts: imx6dl-yapp4: Move phy reset into switch node
| * 174e3c8ee7 ARM: dts: arm: realview: Fix development chip ROM compatible value
| * de8abc894b net: ena: Remove ena_select_queue
| * f434eacad6 net: ena: cosmetic: fix line break issues
| * a4fc14a662 wifi: brcmsmac: avoid function pointer casts
| * 6234e09e69 iommu/amd: Mark interrupt as managed
| * 073b5bbb13 bus: tegra-aconnect: Update dependency to ARCH_TEGRA
| * ea96bf3f80 ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()
| * 2eb2a5d6f5 arm64: dts: qcom: msm8996: Pad addresses
| * a8f3650656 arm64: dts: qcom: msm8996: Move regulator consumers to db820c
| * 1f685fa06c arm64: dts: qcom: msm8996: Use node references in db820c
| * adcf4eeb34 arm64: dts: qcom: db820c: Move non-soc entries out of /soc
| * 6bbbd2fd08 bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly
| * 6f51d61a43 bpf: Factor out bpf_spin_lock into helpers.
| * cf0d888ea7 bpf: Add typecast to bpf helpers to help BTF generation
| * e1f7fef6e2 arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes
| * bea9573c79 wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()
| * 6fd9061497 net: blackhole_dev: fix build warning for ethh set but not used
| * ef036a0598 af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().
| * 4bdfc38a98 sock_diag: annotate data-races around sock_diag_handlers[family]
| * 76ac9c141e wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()
| * e556006de4 wifi: wilc1000: fix RCU usage in connect path
| * 1bda3ff1fd wifi: wilc1000: fix declarations ordering
| * 8c6210d175 wifi: b43: Disable QoS for bcm4331
| * 12062b149f wifi: b43: Stop correct queue in DMA worker when QoS is disabled
| * c668f0f825 b43: main: Fix use true/false for bool type
| * 47ec637b11 wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
| * 31aaf17200 wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
| * 801be44049 b43: dma: Fix use true/false for bool type variable
| * 88a9dffaec wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()
| * be26970980 timekeeping: Fix cross-timestamp interpolation for non-x86
| * fee4e84c4e timekeeping: Fix cross-timestamp interpolation corner case decision
| * 7cec7d8388 timekeeping: Fix cross-timestamp interpolation on counter wrap
| * 1a54aa506b aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts
| * 72dacc72b2 fs/select: rework stack allocation hack for clang
| * 44214d744b nbd: null check for nla_nest_start
| * 772a7def98 do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
| * 3f6186cc65 ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll
| * 9f27f4d5d1 ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode
| * f1d3be9eb9 ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC
| * 5f3c13930b Input: gpio_keys_polled - suppress deferred probe error for gpio
| * fa14a15373 ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet
| * da17f556ad firewire: core: use long bus reset on gap count error
| * 5f369efd9d Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security
| * 6e9c113992 scsi: mpt3sas: Prevent sending diag_reset when the controller is ready
| * 2daa2a8e89 btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve
| * 890a1b31fa dm-verity, dm-crypt: align "struct bvec_iter" correctly
| * 5d8afc25c7 block: sed-opal: handle empty atoms when parsing response
| * 745718d00f parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check
| * b43b1a7062 net/iucv: fix the allocation size of iucv_path_table array
| * c411a3c828 RDMA/mlx5: Relax DEVX access upon modify commands
| * 69dd0a99da HID: multitouch: Add required quirk for Synaptics 0xcddc device
| * 7d7fa0bea3 MIPS: Clear Cause.BD in instruction_pointer_set
| * 025a8a96c7 x86/xen: Add some null pointer checking to smp.c
| * 4c00abb52a ASoC: rt5645: Make LattePanda board DMI match more precise
| * ef5de5d505 selftests: tls: use exact comparison in recv_partial
| * cfb24022bb io_uring: drop any code related to SCM_RIGHTS
| * 2692b8a016 io_uring/unix: drop usage of io_uring socket
* | f509fa9b09 Revert "regmap: allow to define reg_update_bits for no bus configuration"
* | 012b5eceed Revert "regmap: Add bulk read/write callbacks into regmap_config"
* | 0efa1aa851 Revert "serial: max310x: fix IO data corruption in batched operations"
* | 43bbe91c9f Revert "geneve: make sure to pull inner header in geneve_rx()"
* | ee2f1c68f1 Merge 5.4.272 into android11-5.4-lts
|\|
| * 8407582630 Linux 5.4.272
| * 345ced4052 arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
| * 1b3d8cbd1c arm64: dts: qcom: add PDC interrupt controller for SDM845
| * 59b3583da1 serial: max310x: fix IO data corruption in batched operations
| * f5c252aaa1 serial: max310x: implement I2C support
| * 112094efd6 serial: max310x: make accessing revision id interface-agnostic
| * b96b017919 regmap: Add bulk read/write callbacks into regmap_config
| * 758c6799da regmap: allow to define reg_update_bits for no bus configuration
| * 9a7bbea266 serial: max310x: Unprepare and disable clock in error path
| * 664a6a904a getrusage: use sig->stats_lock rather than lock_task_sighand()
| * 2b34f60383 getrusage: use __for_each_thread()
| * c50a059431 getrusage: move thread_group_cputime_adjusted() outside of lock_task_sighand()
| * ef8a8b36a1 getrusage: add the "signal_struct *sig" local variable
| * f184f21978 y2038: rusage: use __kernel_old_timeval
| * c7441c77c9 hv_netvsc: Register VF in netvsc_probe if NET_DEVICE_REGISTER missed
| * f2ab3eaa64 hv_netvsc: use netif_is_bond_master() instead of open code
| * 9b5ef7a528 hv_netvsc: Make netvsc/VF binding check both MAC and serial number
| * 5402ec577f Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
| * bf6bb3612e serial: max310x: prevent infinite while() loop in port startup
| * 7e30e5c143 serial: max310x: use a separate regmap for each port
| * 3fb7c9bcd0 serial: max310x: use regmap methods for SPI batch operations
| * 2c9c830d74 serial: max310x: Make use of device properties
| * b765176ae1 serial: max310x: fail probe if clock crystal is unstable
| * 816700131e serial: max310x: Try to get crystal clock rate from property
| * c76dcad53b serial: max310x: Use devm_clk_get_optional() to get the input clock
| * b569d91e51 um: allow not setting extra rpaths in the linux binary
| * 47c68edecc selftests: mm: fix map_hugetlb failure on 64K page size systems
| * f9055fa2b2 netrom: Fix data-races around sysctl_net_busy_read
| * 07bbccd1ad netrom: Fix a data-race around sysctl_netrom_link_fails_count
| * c4309e5f8e netrom: Fix a data-race around sysctl_netrom_routing_control
| * cbba77abb4 netrom: Fix a data-race around sysctl_netrom_transport_no_activity_timeout
| * 89aa78a343 netrom: Fix a data-race around sysctl_netrom_transport_requested_window_size
| * 1f60795dca netrom: Fix a data-race around sysctl_netrom_transport_busy_delay
| * 80578681ea netrom: Fix a data-race around sysctl_netrom_transport_acknowledge_delay
| * f716a68234 netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries
| * eadec8da44 netrom: Fix a data-race around sysctl_netrom_transport_timeout
| * eda02a0bed netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser
| * 1e84b108f2 netrom: Fix a data-race around sysctl_netrom_obsolescence_count_initialiser
| * 7f61523255 netrom: Fix a data-race around sysctl_netrom_default_path_quality
| * 4bafcc43ba netfilter: nf_conntrack_h323: Add protection for bmp length out of range
| * 6ec3032022 netfilter: nft_ct: fix l3num expectations with inet pseudo family
| * 997efea2bf net/rds: fix WARNING in rds_conn_connect_if_down
| * 664f9c6472 net/ipv6: avoid possible UAF in ip6_route_mpath_notify()
| * d9fefc5113 net: ice: Fix potential NULL pointer dereference in ice_bridge_setlink()
| * 59d2a40769 geneve: make sure to pull inner header in geneve_rx()
| * a248b1f58a ixgbe: {dis, en}able irqs in ixgbe_txrx_ring_{dis, en}able
| * 7f08778469 net: lan78xx: fix runtime PM count underflow on link stop
| * 81934a2ab5 lan78xx: Fix race conditions in suspend/resume handling
| * 57b9c48cd5 lan78xx: Fix partial packet errors on suspend/resume
| * e68b46e9aa lan78xx: Add missing return code checks
| * b1cc23ffe1 lan78xx: Fix white space and style issues
* | 79ed7de671 Merge branch 'android11-5.4' into branch 'android11-5.4-lts'
* | 26385fa150 UPSTREAM: arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
* | e1dfe2d3de UPSTREAM: arm64: dts: qcom: add PDC interrupt controller for SDM845
* | 40df6b551d Merge 5.4.271 into android11-5.4-lts
|\|
| * 3fec063b05 Linux 5.4.271
| * 9162730a83 gpio: 74x164: Enable output pins after registers are reset
| * 1dde8ef4b7 fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
| * 037d5a949b cachefiles: fix memory leak in cachefiles_add_cache()
| * ace0fdf796 x86/cpu/intel: Detect TME keyid bits before setting MTRR mask registers
| * 9d660e5adf mmc: core: Fix eMMC initialization with 1-bit bus connection
| * 3cc5fb824c dmaengine: fsl-qdma: init irq after reg initialization
| * 518d78b4fa dmaengine: fsl-qdma: fix SoC may hang on 16 byte unaligned read
| * c6652e20d7 btrfs: dev-replace: properly validate device names
| * 0cfbb26ee5 wifi: nl80211: reject iftype change with mesh ID change
| * ec92aa2cab gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
| * 5c78be006e afs: Fix endless loop in directory parsing
| * 26dda65b09 ALSA: Drop leftover snd-rtctimer stuff from Makefile
| * 7394abc892 power: supply: bq27xxx-i2c: Do not free non existing IRQ
| * 950d4d74d3 efi/capsule-loader: fix incorrect allocation size
| * b9fbc44159 rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back
| * 260410c589 netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
| * 20f6f150e1 Bluetooth: Enforce validation on max value of connection interval
| * 79820a7e1e Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
| * 98fb98fd37 Bluetooth: Avoid potential use-after-free in hci_error_reset
| * 6e0000a432 net: usb: dm9601: fix wrong return value in dm9601_mdio_read
| * 69624e28d6 lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
| * 9d4ffb5b9d ipv6: fix potential "struct net" leak in inet6_rtm_getaddr()
| * f5f11f7e28 tun: Fix xdp_rxq_info's queue_index when detaching
| * f81e94d2dc net: ip_tunnel: prevent perpetual headroom growth
| * 9ae51361da netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter
* | 7dde2bcd3f ANDROID: GKI: update .xml file due to USB changes in 5.4.270
* | 1ac7c39f24 Merge 5.4.270 into android11-5.4-lts
|\|
| * e133c1ee6d Linux 5.4.270
| * 7a54338219 scripts/bpf: Fix xdp_md forward declaration typo
| * b4eea7a05e fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio
| * c28fc1aa6f drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE flag is set
| * 29db9725f2 drm/syncobj: make lockdep complain on WAIT_FOR_SUBMIT v3
| * ae4360cbd3 netfilter: nf_tables: set dormant flag on hook register failure
| * f310143961 tls: stop recv() if initial process_rx_list gave us non-DATA
| * a26742ada7 tls: rx: drop pointless else after goto
| * c1287c1d6b tls: rx: jump to a more appropriate label
| * 06de230254 s390: use the correct count for __iowrite64_copy()
| * 7eee00feb6 packet: move from strlcpy with unused retval to strscpy
| * 82831e3ff7 ipv6: sr: fix possible use-after-free and null-ptr-deref
| * 5c27d85a69 afs: Increase buffer size in afs_update_volume_status()
| * 799a4afaa5 ipv6: properly combine dev_base_seq and ipv6.dev_addr_genid
| * 5888f34249 ipv4: properly combine dev_base_seq and ipv4.dev_addr_genid
| * a50cb1d6f3 nouveau: fix function cast warnings
| * fe031dfcea scsi: jazz_esp: Only build if SCSI core is builtin
| * dd90af71fa bpf, scripts: Correct GPL license name
| * 1f18b5bb45 scripts/bpf: teach bpf_helpers_doc.py to dump BPF helper definitions
| * 48ebca0a11 RDMA/srpt: fix function pointer cast warnings
| * 3107633774 RDMA/srpt: Make debug output more detailed
| * 6e461952df RDMA/bnxt_re: Return error for SRQ resize
| * cecfb90cf7 IB/hfi1: Fix a memleak in init_credit_return
| * bbcf72333b usb: roles: don't get/set_role() when usb_role_switch is unregistered
| * a31cf46d10 usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
| * aad6132ae6 usb: cdns3: fix memory double free when handle zero packet
| * cfa9abb557 usb: cdns3: fixed memory use after free at cdns3_gadget_ep_disable()
| * 999a8bb70d ARM: ep93xx: Add terminator to gpiod_lookup_table
| * c1d3a84a67 l2tp: pass correct message length to ip6_append_data
| * caf4a67c01 PCI/MSI: Prevent MSI hardware interrupt number truncation
| * f8cbd17919 gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp()
| * 0dccbb9353 dm-crypt: don't modify the data when using authenticated encryption
| * 5833024a98 IB/hfi1: Fix sdma.h tx->num_descs off-by-one error
| * 6ede985c6b PCI: tegra: Fix OF node reference leak
| * e04a2afd08 PCI: tegra: Fix reporting GPIO error value
| * e3fc080911 arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node
| * efd63c23a4 drm/amdgpu: Fix type of second parameter in trans_msg() callback
| * f691ab24cf iomap: Set all uptodate bits for an Uptodate page
| * 45227ae32f dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
| * 3770c38cd6 x86/alternatives: Disable KASAN in apply_alternatives()
| * f45dc10a3c drm/amdgpu: Check for valid number of registers to read
| * 90aa9135a4 Revert "drm/sun4i: dsi: Change the start delay calculation"
| * 7000efb6d8 ALSA: hda/realtek - Enable micmute LED on and HP system
| * 82c53047fe selftests/bpf: Avoid running unprivileged tests with alignment requirements
| * 81e03f638d net: bridge: clear bridge's private skb space on xmit
| * 82174d6bd7 spi: mt7621: Fix an error message in mt7621_spi_probe()
| * 954a7a0011 pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups
| * 759756e2cf pinctrl: pinctrl-rockchip: Fix a bunch of kerneldoc misdemeanours
| * 99dc568545 tcp: add annotations around sk->sk_shutdown accesses
| * 41ca938616 tcp: return EPOLLOUT from tcp_poll only when notsent_bytes is half the limit
| * 5a9dc14df2 tcp: factor out __tcp_close() helper
| * d428676420 pmdomain: renesas: r8a77980-sysc: CR7 must be always on
| * 3bc35da667 s390/qeth: Fix potential loss of L3-IP@ in case of network issues
| * b7bfaea8f5 virtio-blk: Ensure no requests in virtqueues before deleting vqs.
| * d124ab01fc firewire: core: send bus reset promptly on gap count error
| * b5854f923d scsi: lpfc: Use unsigned type for num_sge
| * 60635f8a05 hwmon: (coretemp) Enlarge per package core count limit
| * 6d338fb1a1 nvmet-fc: abort command when there is no binding
| * ac524b7b3f netfilter: conntrack: check SCTP_CID_SHUTDOWN_ACK for vtag setting in sctp_new
| * 6f5015ce25 ASoC: sunxi: sun4i-spdif: Add support for Allwinner H616
| * c3a25d4fdd nvmet-tcp: fix nvme tcp ida memory leak
| * 5068cb91ed regulator: pwm-regulator: Add validity checks in continuous .get_voltage
| * 6b92b1bc16 ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()
| * 260fc96283 ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
| * bccb418eba ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers
| * e896bf4878 ahci: asm1166: correct count of reported ports
| * 6db07619d1 fbdev: sis: Error out if pixclock equals zero
| * 84dce0f6a4 fbdev: savage: Error out if pixclock equals zero
| * 85720b69ae wifi: mac80211: fix race condition on enabling fast-xmit
| * d3032de2c8 wifi: cfg80211: fix missing interfaces when dumping
| * bb3813a6a7 dmaengine: fsl-qdma: increase size of 'irq_name'
| * a7229c75c3 dmaengine: shdma: increase size of 'dev_id'
| * 11f3fe5001 scsi: target: core: Add TMF to tmr_list handling
| * d2fc4134aa sched/rt: Disallow writing invalid values to sched_rt_period_us
| * b69677bfd7 sched/rt: Fix sysctl_sched_rr_timeslice intial value
| * 429aaf144b userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb
| * b0911b8d37 nilfs2: replace WARN_ONs for invalid DAT metadata block requests
| * febd743200 memcg: add refcnt for pcpu stock to avoid UAF problem in drain_all_stock()
| * d7b5bdb52d sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
| * 010dc505ea net/sched: Retire dsmark qdisc
| * 40e8abb86d net/sched: Retire ATM qdisc
| * 493685f3dd net/sched: Retire CBQ qdisc
| * 9d17e73504 KVM: arm64: vgic-its: Test for valid IRQ in MOVALL handler
| * 68799371c9 KVM: arm64: vgic-its: Test for valid IRQ in its_sync_lpi_pending_table()
* | 3298a76a41 Revert "bpf: Add map and need_defer parameters to .map_fd_put_ptr()"
* | 241e0d860f Revert "hrtimer: Report offline hrtimer enqueue"
* | ce97b1b6bc Revert "drm/mipi-dsi: Fix detach call without attach"
* | 806fb883ea Merge 5.4.269 into android11-5.4-lts
|/
* 6e1f54a498 Linux 5.4.269
* e9aa8e5a72 of: gpio unittest kfree() wrong object
* 6ac8965955 of: unittest: fix EXPECT text for gpio hog errors
* 7dd275ce3b net: bcmgenet: Fix EEE implementation
* 10c586da9f Revert "Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting""
* 25b42be4e0 netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
* 3dd76bebcd lsm: new security_file_ioctl_compat() hook
* efdf644062 drm/msm/dsi: Enable runtime PM
* fef59ee6c0 PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
* 835ed5effb PM: runtime: add devm_pm_runtime_enable helper
* d31c8721e8 nilfs2: fix potential bug in end_buffer_async_write
* 2441a64070 sched/membarrier: reduce the ability to hammer on sys_membarrier
* cd1022eaf8 net: prevent mss overflow in skb_segment()
* 6587af96ef netfilter: ipset: Missing gc cancellations fixed
* c7f2733e50 netfilter: ipset: fix performance regression in swap operation
* d04acadb64 KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
* 4705a9fc50 mips: Fix max_mapnr being uninitialized on early stages
* 5e0854b60a arch, mm: remove stale mentions of DISCONIGMEM
* c324e2716d bus: moxtet: Add spi device table
* 7f71d9817c Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
* 60e092289c tracing: Inform kmemleak of saved_cmdlines allocation
* fbe86124b7 pmdomain: core: Move the unused cleanup to a _sync initcall
* 08de58abed can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
* a257ffde37 irqchip/irq-brcmstb-l2: Add write memory barrier before exit
* 91a7c00235 nfp: flower: prevent re-adding mac index for bonded port
* b22c9a37c7 nfp: use correct macro for LengthSelect in BAR config
* 862ee4422c nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
* a6efe6dbaa nilfs2: fix data corruption in dsync block recovery for small block sizes
* 6ce7d5e6d2 ALSA: hda/conexant: Add quirk for SWS JS201D
* 6b8bdc509e mmc: slot-gpio: Allow non-sleeping GPIO ro
* 4f2fde5051 x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
* 4c7b1d08ad x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
* ed14ab2611 serial: max310x: improve crystal stable clock detection
* 5814a9045c serial: max310x: set default value when reading clock ready bit
* ef60665ea9 ring-buffer: Clean ring_buffer_poll_wait() error return
* 7200170e88 iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC
* 720d0112b3 staging: iio: ad5933: fix type mismatch regression
* 77e7a316cd tracing: Fix wasted memory in saved_cmdlines logic
* afbcad9ae7 ext4: fix double-free of blocks due to wrong extents moved_len
* 15238f4b21 misc: fastrpc: Mark all sessions as invalid in cb_remove
* 42beab162d binder: signal epoll threads of self-work
* 93a52449fe ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
* 9086b27eac xen-netback: properly sync TX responses
* 71349abe3a nfc: nci: free rx_data_reassembly skb on NCI device cleanup
* 4ae191effb kbuild: Fix changing ELF file type for output of gen_btf for big endian
* 750a4e5999 firewire: core: correct documentation of fw_csr_string() kernel API
* 2209fc6e3d scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"
* d074d5ff5a i2c: i801: Fix block process call transactions
* 4de1489d80 i2c: i801: Remove i801_set_block_buffer_mode
* df112ccb9b usb: f_mass_storage: forbid async queue when shutdown happen
* addaa8627f USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
* dbaca8fa9e HID: wacom: Do not register input devices until after hid_hw_start
* e13bed5cfe HID: wacom: generic: Avoid reporting a serial of '0' to userspace
* 1f12e4b328 mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again
* 8ffd5590f4 tracing/trigger: Fix to return error if failed to alloc snapshot
* a67f1f83f3 i40e: Fix waiting for queues of all VSIs to be disabled
* 9a3a82affa MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
* 422d5243b9 ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
* 91b48c6339 spi: ppc4xx: Drop write-only variable
* 61da1f41d0 of: unittest: Fix compile in the non-dynamic case
* f6997a2416 of: unittest: add overlay gpio test to catch gpio hog problem
* 89485251f6 btrfs: send: return EOPNOTSUPP on unknown flags
* 863837df8a btrfs: forbid deleting live subvol qgroup
* d25031ba2a btrfs: forbid creating subvol qgroups
* 10e9cb3931 netfilter: nft_set_rbtree: skip end interval element from gc
* 7fde2acc6d net: stmmac: xgmac: fix a typo of register name in DPP safety handling
* b9ff931f00 net: stmmac: xgmac: use #define for string constants
* 88c7e1e7a6 vhost: use kzalloc() instead of kmalloc() followed by memset()
* 09e77c7d67 Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
* a012efe0df hrtimer: Report offline hrtimer enqueue
* 4a589de93c USB: serial: cp210x: add ID for IMST iM871A-USB
* cd0ab7f2a8 USB: serial: option: add Fibocom FM101-GL variant
* 896695af51 USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
* 11ca9624cc net/af_iucv: clean up a try_then_request_module()
* 1c7488156e netfilter: nft_ct: reject direction for ct id
* 8e2a84c6da netfilter: nft_compat: restrict match/target protocol to u16
* f139a4c6d2 netfilter: nft_compat: reject unused compat flag
* 56fae81633 ppp_async: limit MRU to 64K
* 6f70f0b412 tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()
* ef1f56f2cd rxrpc: Fix response to PING RESPONSE ACKs to a dead call
* 5993f121fb inet: read sk->sk_family once in inet_recv_error()
* 7c96975c24 hwmon: (coretemp) Fix bogus core_id to attr name mapping
* 1eb74c00c9 hwmon: (coretemp) Fix out-of-bounds memory access
* 51d76b7230 hwmon: (aspeed-pwm-tacho) mutex for tach reading
* df0965935a atm: idt77252: fix a memleak in open_card_ubr0
* a0ac20fd53 selftests: net: avoid just another constant wait
* e9837c83be net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
* 8398d8d735 phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
* 0cb90f27a3 dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
* 6ff4827315 phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
* 1c75fe450b dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
* c263609416 dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
* 817bedcd7f bonding: remove print in bond_verify_device_path
* e95120698b HID: apple: Add 2021 magic keyboard FN key mapping
* 5991ab8940 HID: apple: Swap the Fn and Left Control keys on Apple keyboards
* 6d4771ab2d HID: apple: Add support for the 2021 Magic Keyboard
* 67f56ef9e1 net: sysfs: Fix /sys/class/net/<iface> path
* b169ffde73 af_unix: fix lockdep positive in sk_diag_dump_icons()
* b3dace37f1 net: ipv4: fix a memleak in ip_setup_cork
* f549f340c9 netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
* 06608603fa netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
* 64babb17e8 llc: call sock_orphan() at release time
* 2a09d1784c ipv6: Ensure natural alignment of const ipv6 loopback and router addresses
* 7f1a24914b ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
* a10e95d6cf ixgbe: Refactor overtemp event handling
* 2d533ddca2 ixgbe: Refactor returning internal error codes
* 980c806f67 ixgbe: Remove non-inclusive language
* 7c03b74865 net: remove unneeded break
* b81f679ac5 scsi: isci: Fix an error code problem in isci_io_request_build()
* 12f58dce48 wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update
* ad2bd6cd17 perf: Fix the nr_addr_filters fix
* 34da3b9fa5 drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'
* 6ab4fd508f ceph: fix deadlock or deadcode of misusing dget()
* ecd7744a14 blk-mq: fix IO hang from sbitmap wakeup race
* 977105472f virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings
* 884b746209 libsubcmd: Fix memory leak in uniq()
* 3e06e9b906 PCI/AER: Decode Requester ID when no error info found
* 133bf750d7 fs/kernfs/dir: obey S_ISGID
* 17c252f192 usb: hub: Replace hardcoded quirk value with BIT() macro
* d8c2935499 PCI: switchtec: Fix stdev_release() crash after surprise hot remove
* a32a24da0e PCI: Only override AMD USB controller if required
* e2048eb3cb mfd: ti_am335x_tscadc: Fix TI SoC dependencies
* 838cbe01db i3c: master: cdns: Update maximum prescaler value for i2c clock
* a6946682dd um: net: Fix return type of uml_net_start_xmit()
* c8115f2bd8 um: Don't use vfprintf() for os_info()
* 735a29ce08 um: Fix naming clash between UML and scheduler
* ddd1f258f0 leds: trigger: panic: Don't register panic notifier if creating the trigger failed
* 9052b3e0e7 drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()'
* 548f9a37d7 drm/amdgpu: Let KFD sync with VM fences
* 15d674571a clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
* 105444e207 clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
* 8a96f1caf1 drm/msm/dpu: Ratelimit framedone timeout msgs
* 4d181fe966 media: ddbridge: fix an error code problem in ddb_probe
* 615e3adc20 IB/ipoib: Fix mcast list locking
* fb703d31fd drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
* c1b2e5e837 ALSA: hda: Intel: add HDA_ARL PCI ID support
* c91bda92fb PCI: add INTEL_HDA_ARL to pci_ids.h
* fbbee078cf media: rockchip: rga: fix swizzling for RGB formats
* acb1bffe5f media: stk1160: Fixed high volume of stk1160_dbg messages
* 67997250d3 drm/mipi-dsi: Fix detach call without attach
* d778e10dde drm/framebuffer: Fix use of uninitialized variable
* da980f8db0 drm/drm_file: fix use of uninitialized variable
* 00a5feb060 RDMA/IPoIB: Fix error code return in ipoib_mcast_join
* b0f907a4ef fast_dput(): handle underflows gracefully
* 12ba5b9cf8 ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
* 9fceaf8182 f2fs: fix to check return value of f2fs_reserve_new_block()
* 52240224e7 wifi: cfg80211: free beacon_ies when overridden from hidden BSS
* 18c2989c30 wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
* 8ec36f2d0c wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices
* f3b7a31bf1 arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
* c3f22192a2 arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
* 351b37b88e md: Whenassemble the array, consult the superblock of the freshest device
* 6f2cd02ff5 block: prevent an integer overflow in bvec_try_merge_hw_page
* fb9c25ea0a ARM: dts: imx23/28: Fix the DMA controller node name
* c48e75a7ee ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
* 83b1cceca9 ARM: dts: imx27-apf27dev: Fix LED name
* 06c3f5920f ARM: dts: imx25/27: Pass timing0
* 826e8fa48e ARM: dts: imx1: Fix sram node
* 05f309a3fa ARM: dts: imx27: Fix sram node
* 1e35a4cf5a ARM: dts: imx: Use flash@0,0 pattern
* 30cfab1c8c ARM: dts: imx25/27-eukrea: Fix RTC node name
* ca14da9a1e ARM: dts: rockchip: fix rk3036 hdmi ports node
* e9ac3e3398 scsi: libfc: Fix up timeout error in fc_fcp_rec_error()
* f5a875051e scsi: libfc: Don't schedule abort twice
* eb6f68ec92 bpf: Add map and need_defer parameters to .map_fd_put_ptr()
* f11f0fd1ad wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()
* 53dd674b32 ARM: dts: imx7s: Fix nand-controller #size-cells
* a86ce3671d ARM: dts: imx7s: Fix lcdif compatible
* 183edc0ad2 ARM: dts: imx7d: Fix coresight funnel ports
* 6c50e561ce bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
* 4d981d9224 PCI: Add no PM reset quirk for NVIDIA Spectrum devices
* 0e8c8aa8e3 scsi: lpfc: Fix possible file string name overflow when updating firmware
* cbd0b6268a selftests/bpf: Fix pyperf180 compilation failure with clang18
* 982bdaa0fc selftests/bpf: satisfy compiler by having explicit return in btf test
* e1f113b57d wifi: rt2x00: restart beacon queue when hardware reset
* b183fe8702 ext4: avoid online resizing failures due to oversized flex bg
* 92c3c5cfed ext4: remove unnecessary check from alloc_flex_gd()
* 7cb19e1336 ext4: unify the type of flexbg_size to unsigned int
* 360c28a2fd ext4: fix inconsistent between segment fstrim and full fstrim
* ec10755496 ecryptfs: Reject casefold directory inodes
* 7a96d85bf1 SUNRPC: Fix a suspicious RCU usage warning
* 5e63c9ae80 KVM: s390: fix setting of fpc register
* 6d0822f2cc s390/ptrace: handle setting of fpc register correctly
* de6a91aed1 jfs: fix array-index-out-of-bounds in diNewExt
* 592d29eb6b rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()
* f4a0b57632 afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*()
* 3f4cba4cf8 crypto: stm32/crc32 - fix parsing list of devices
* e9f6ac5089 pstore/ram: Fix crash when setting number of cpus to an odd number
* 93df0a2a0b jfs: fix uaf in jfs_evict_inode
* 3f8217c323 jfs: fix array-index-out-of-bounds in dbAdjTree
* 1b9d682858 jfs: fix slab-out-of-bounds Read in dtSearch
* fd3486a893 UBSAN: array-index-out-of-bounds in dtSplitRoot
* 98f9537fe6 FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
* d2049af7dd ACPI: extlog: fix NULL pointer dereference check
* 0d2adafba9 PNP: ACPI: fix fortify warning
* b0b96859ab ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop
* 20277842d9 audit: Send netlink ACK before setting connection in auditd_set
* 27756ae366 regulator: core: Only increment use_count when enable_count changes
* aed181fbc2 perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
* 980d5fe989 x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel
* 0580f4403a powerpc/lib: Validate size for vector operations
* 7cd81d2358 powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE
* 9bf6c6f097 powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()
* 171468044b powerpc: Fix build error due to is_valid_bugaddr()
* f6781add1c powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
* 3cdbfac106 x86/entry/ia32: Ensure s32 is sign extended to s64
* aa8bd0d9b2 tick/sched: Preserve number of idle sleeps across CPU hotplug events
* 200d17b226 mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
* b2b0d40775 spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
* 344e8f3392 gpio: eic-sprd: Clear interrupt after set the interrupt type
* f81d67832c drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
* 83d86b4a77 drm/exynos: fix accidental on-stack copy of exynos_drm_plane
* 3e835d6e65 drm/bridge: nxp-ptn3460: simplify some error checking
* 021e214947 drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking
* 9dd334a824 drm: Don't unref the same fb many times by mistake due to deadlock handling
* 5624d628a1 gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04
* 4e66422f1b netfilter: nf_tables: reject QUEUE/DROP verdict parameters
* bd517df3bd rbd: don't move requests to the running list on errors
* 69a0876252 btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
* d0bf04c965 btrfs: don't warn if discard range is not aligned to sector
* 927d1a3d32 btrfs: tree-checker: fix inline ref size in error messages
* 5c9e576bfd btrfs: ref-verify: free ref cache before clearing mount opt
* d3d6162eb1 net: fec: fix the unhandled context fault from smmu
* 3422bfda92 fjes: fix memleaks in fjes_hw_setup
* 07bcc3cd3d netfilter: nf_tables: validate NFPROTO_* family
* b55e492f06 netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
* 2501afe6c4 net/mlx5e: fix a double-free in arfs_create_groups
* bca555e8a2 net/mlx5: Use kfree(ft->g) in arfs_create_groups()
* 0917d771f6 net/mlx5: DR, Use the right GVMI number for drop action
* 4f4dc7098b netlink: fix potential sleeping issue in mqueue_flush_file
* da70948068 tcp: Add memory barrier to tcp_push()
* 01d15b68f0 afs: Hide silly-rename files from userspace
* dad9b28f67 tracing: Ensure visibility when inserting an element into tracing_map
* a37ae111db net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
* b8e8838f82 llc: Drop support for ETH_P_TR_802_2.
* b643d0defc llc: make llc_ui_sendmsg() more robust against bonding changes
* 06f30fdbc4 vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
* 1fea9969b8 net/smc: fix illegal rmb_desc access in SMC-D connection dump
* 5c6183f3c7 x86/CPU/AMD: Fix disabling XSAVES on AMD family 0x17 due to erratum
* 7e180b702a powerpc: Use always instead of always-y in for crtsavres.o
* 457ef4fe54 fs: move S_ISGID stripping into the vfs_*() helpers
* 0cb0093fd6 fs: add mode_strip_sgid() helper
* 635a0039e8 mtd: spinand: macronix: Fix MX35LFxGE4AD page size
* 3f4e660144 block: Remove special-casing of compound pages
* 0785e29899 rename(): fix the locking of subdirectories
* f0824ca283 ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
* a1e80a33bf nouveau/vmm: don't set addr on the fail path to avoid warning
* f49f9e8027 mmc: core: Use mrq.sbc in close-ended ffu
* e15b1553d0 arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
* 830c99794b parisc/firmware: Fix F-extend for PDC addresses
* dd50fe18c2 rpmsg: virtio: Free driver_override when rpmsg_remove()
* 5030d4c798 hwrng: core - Fix page fault dead lock on mmap-ed hwrng
* 5bc17b4fc2 PM: hibernate: Enforce ordering during image compression/decompression
* cf6889bb8b crypto: api - Disallow identical driver names
* a7edaf40fc ext4: allow for the last group to be marked as trimmed
* e2ecfd5565 serial: sc16is7xx: add check for unsupported SPI modes during probe
* 120b65f80b spi: introduce SPI_MODE_X_MASK macro
* 2b708e6b28 serial: sc16is7xx: set safe default SPI clock frequency
* e53321b341 units: add the HZ macros
* 34d74cf3c7 units: change from 'L' to 'UL'
* 7478445a45 units: Add Watt units
* b617974548 include/linux/units.h: add helpers for kelvin to/from Celsius conversion
* 2ed05a8cc9 PCI: mediatek: Clear interrupt status before dispatching handler

Change-Id: I1ddbcc9d61402546e16694894da56199a22ec74d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2024-05-02 08:09:39 +00:00
730 changed files with 10778 additions and 9617 deletions

View File

@@ -1,4 +1,4 @@
What: /sys/class/<iface>/queues/rx-<queue>/rps_cpus
What: /sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
Date: March 2010
KernelVersion: 2.6.35
Contact: netdev@vger.kernel.org
@@ -8,7 +8,7 @@ Description:
network device queue. Possible values depend on the number
of available CPU(s) in the system.
What: /sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt
What: /sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
Date: April 2010
KernelVersion: 2.6.35
Contact: netdev@vger.kernel.org
@@ -16,7 +16,7 @@ Description:
Number of Receive Packet Steering flows being currently
processed by this particular network device receive queue.
What: /sys/class/<iface>/queues/tx-<queue>/tx_timeout
What: /sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org
@@ -24,7 +24,7 @@ Description:
Indicates the number of transmit timeout events seen by this
network interface transmit queue.
What: /sys/class/<iface>/queues/tx-<queue>/tx_maxrate
What: /sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
Date: March 2015
KernelVersion: 4.1
Contact: netdev@vger.kernel.org
@@ -32,7 +32,7 @@ Description:
A Mbps max-rate set for the queue, a value of zero means disabled,
default is disabled.
What: /sys/class/<iface>/queues/tx-<queue>/xps_cpus
What: /sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
Date: November 2010
KernelVersion: 2.6.38
Contact: netdev@vger.kernel.org
@@ -42,7 +42,7 @@ Description:
network device transmit queue. Possible vaules depend on the
number of available CPU(s) in the system.
What: /sys/class/<iface>/queues/tx-<queue>/xps_rxqs
What: /sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs
Date: June 2018
KernelVersion: 4.18.0
Contact: netdev@vger.kernel.org
@@ -53,7 +53,7 @@ Description:
number of available receive queue(s) in the network device.
Default is disabled.
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org
@@ -62,7 +62,7 @@ Description:
of this particular network device transmit queue.
Default value is 1000.
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org
@@ -70,7 +70,7 @@ Description:
Indicates the number of bytes (objects) in flight on this
network device transmit queue.
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org
@@ -79,7 +79,7 @@ Description:
on this network device transmit queue. This value is clamped
to be within the bounds defined by limit_max and limit_min.
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org
@@ -88,7 +88,7 @@ Description:
queued on this network device transmit queue. See
include/linux/dynamic_queue_limits.h for the default value.
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
Date: November 2011
KernelVersion: 3.3
Contact: netdev@vger.kernel.org

View File

@@ -484,11 +484,14 @@ Spectre variant 2
Systems which support enhanced IBRS (eIBRS) enable IBRS protection once at
boot, by setting the IBRS bit, and they're automatically protected against
Spectre v2 variant attacks, including cross-thread branch target injections
on SMT systems (STIBP). In other words, eIBRS enables STIBP too.
Spectre v2 variant attacks.
Legacy IBRS systems clear the IBRS bit on exit to userspace and
therefore explicitly enable STIBP for that
On Intel's enhanced IBRS systems, this includes cross-thread branch target
injections on SMT systems (STIBP). In other words, Intel eIBRS enables
STIBP, too.
AMD Automatic IBRS does not protect userspace, and Legacy IBRS systems clear
the IBRS bit on exit to userspace, therefore both explicitly enable STIBP.
The retpoline mitigation is turned on by default on vulnerable
CPUs. It can be forced on or off by the administrator
@@ -622,9 +625,10 @@ kernel command line.
retpoline,generic Retpolines
retpoline,lfence LFENCE; indirect branch
retpoline,amd alias for retpoline,lfence
eibrs enhanced IBRS
eibrs,retpoline enhanced IBRS + Retpolines
eibrs,lfence enhanced IBRS + LFENCE
eibrs Enhanced/Auto IBRS
eibrs,retpoline Enhanced/Auto IBRS + Retpolines
eibrs,lfence Enhanced/Auto IBRS + LFENCE
ibrs use IBRS to protect kernel
Not specifying this option is equivalent to
spectre_v2=auto.

View File

@@ -4606,9 +4606,9 @@
retpoline,generic - Retpolines
retpoline,lfence - LFENCE; indirect branch
retpoline,amd - alias for retpoline,lfence
eibrs - enhanced IBRS
eibrs,retpoline - enhanced IBRS + Retpolines
eibrs,lfence - enhanced IBRS + LFENCE
eibrs - Enhanced/Auto IBRS
eibrs,retpoline - Enhanced/Auto IBRS + Retpolines
eibrs,lfence - Enhanced/Auto IBRS + LFENCE
ibrs - use IBRS to protect kernel
Not specifying this option is equivalent to

View File

@@ -22,13 +22,16 @@ exclusive.
3) object removal. Locking rules: caller locks parent, finds victim,
locks victim and calls the method. Locks are exclusive.
4) rename() that is _not_ cross-directory. Locking rules: caller locks the
parent and finds source and target. We lock both (provided they exist). If we
need to lock two inodes of different type (dir vs non-dir), we lock directory
first. If we need to lock two inodes of the same type, lock them in inode
pointer order. Then call the method. All locks are exclusive.
NB: we might get away with locking the the source (and target in exchange
case) shared.
4) rename() that is _not_ cross-directory. Locking rules: caller locks
the parent and finds source and target. Then we decide which of the
source and target need to be locked. Source needs to be locked if it's a
non-directory; target - if it's a non-directory or about to be removed.
Take the locks that need to be taken, in inode pointer order if need
to take both (that can happen only when both source and target are
non-directories - the source because it wouldn't be locked otherwise
and the target because mixing directory and non-directory is allowed
only with RENAME_EXCHANGE, and that won't be removing the target).
After the locks had been taken, call the method. All locks are exclusive.
5) link creation. Locking rules:
@@ -44,7 +47,7 @@ rules:
* lock the filesystem
* lock parents in "ancestors first" order. If one is not ancestor of
the other, lock them in inode pointer order.
the other, lock the parent of source first.
* find source and target.
* if old parent is equal to or is a descendent of target
fail with -ENOTEMPTY
@@ -54,10 +57,11 @@ rules:
need to lock two inodes of different type (dir vs non-dir), we lock
the directory first. If we need to lock two inodes of the same type,
lock them in inode pointer order.
* Lock subdirectories involved (source before target).
* Lock non-directories involved, in inode pointer order.
* call the method.
All ->i_rwsem are taken exclusive. Again, we might get away with locking
the the source (and target in exchange case) shared.
All ->i_rwsem are taken exclusive.
The rules above obviously guarantee that all directories that are going to be
read, modified or removed by method will be locked by caller.
@@ -67,6 +71,7 @@ If no directory is its own ancestor, the scheme above is deadlock-free.
Proof:
[XXX: will be updated once we are done massaging the lock_rename()]
First of all, at any moment we have a linear ordering of the
objects - A < B iff (A is an ancestor of B) or (B is not an ancestor
of A and ptr(A) < ptr(B)).

View File

@@ -95,7 +95,7 @@ symlink: exclusive
mkdir: exclusive
unlink: exclusive (both)
rmdir: exclusive (both)(see below)
rename: exclusive (all) (see below)
rename: exclusive (both parents, some children) (see below)
readlink: no
get_link: no
setattr: exclusive
@@ -113,6 +113,9 @@ tmpfile: no
Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
exclusive on victim.
cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem.
->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories
involved.
->rename() has ->i_rwsem exclusive on any subdirectory that changes parent.
See Documentation/filesystems/directory-locking.rst for more detailed discussion
of the locking scheme for directory operations.

View File

@@ -858,3 +858,21 @@ be misspelled d_alloc_anon().
[should've been added in 2016] stale comment in finish_open() nonwithstanding,
failure exits in ->atomic_open() instances should *NOT* fput() the file,
no matter what. Everything is handled by the caller.
---
**mandatory**
If ->rename() update of .. on cross-directory move needs an exclusion with
directory modifications, do *not* lock the subdirectory in question in your
->rename() - it's done by the caller now [that item should've been added in
28eceeda130f "fs: Lock moved directories"].
---
**mandatory**
On same-directory ->rename() the (tautological) update of .. is not protected
by any locks; just don't do it if the old parent is the same as the new one.
We really can't lock two subdirectories in same-directory rename - not without
deadlocks.

View File

@@ -234,7 +234,7 @@ corresponding soft power control. In this case it is necessary to create
a virtual widget - a widget with no control bits e.g.
::
SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_DAPM_NOPM, 0, 0, NULL, 0),
SND_SOC_DAPM_MIXER("AC97 Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
This can be used to merge to signal paths together in software.

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -963,7 +963,7 @@ put_tv32(struct timeval32 __user *o, struct timespec64 *i)
}
static inline long
put_tv_to_tv32(struct timeval32 __user *o, struct timeval *i)
put_tv_to_tv32(struct timeval32 __user *o, struct __kernel_old_timeval *i)
{
return copy_to_user(o, &(struct timeval32){
.tv_sec = i->tv_sec,

View File

@@ -435,7 +435,7 @@
/* Direct-mapped development chip ROM */
pb1176_rom@10200000 {
compatible = "direct-mapped";
compatible = "mtd-rom";
reg = <0x10200000 0x4000>;
bank-width = <1>;
};

View File

@@ -65,7 +65,7 @@
pinctrl-0 = <&pinctrl_weim>;
status = "okay";
nor: nor@0,0 {
nor: flash@0,0 {
compatible = "cfi-flash";
reg = <0 0x00000000 0x02000000>;
bank-width = <4>;

View File

@@ -45,7 +45,7 @@
pinctrl-0 = <&pinctrl_weim>;
status = "okay";
nor: nor@0,0 {
nor: flash@0,0 {
compatible = "cfi-flash";
reg = <0 0x00000000 0x02000000>;
bank-width = <2>;

View File

@@ -268,9 +268,12 @@
status = "disabled";
};
esram: esram@300000 {
esram: sram@300000 {
compatible = "mmio-sram";
reg = <0x00300000 0x20000>;
ranges = <0 0x00300000 0x20000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
};

View File

@@ -175,10 +175,8 @@
#address-cells = <1>;
#size-cells = <0>;
compatible = "i2c-gpio";
gpios = <
&gpio1 24 0 /* SDA */
&gpio1 22 0 /* SCL */
>;
sda-gpios = <&gpio1 24 0>;
scl-gpios = <&gpio1 22 0>;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
};
@@ -186,10 +184,8 @@
#address-cells = <1>;
#size-cells = <0>;
compatible = "i2c-gpio";
gpios = <
&gpio0 31 0 /* SDA */
&gpio0 30 0 /* SCL */
>;
sda-gpios = <&gpio0 31 0>;
scl-gpios = <&gpio0 30 0>;
i2c-gpio,delay-us = <2>; /* ~100 kHz */
touch: touch@20 {

View File

@@ -406,7 +406,7 @@
status = "disabled";
};
dma_apbx: dma-apbx@80024000 {
dma_apbx: dma-controller@80024000 {
compatible = "fsl,imx23-dma-apbx";
reg = <0x80024000 0x2000>;
interrupts = <7 5 9 26

View File

@@ -27,7 +27,7 @@
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
pcf8563@51 {
rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};

View File

@@ -16,7 +16,7 @@
bus-width = <18>;
display-timings {
native-mode = <&qvga_timings>;
qvga_timings: 320x240 {
qvga_timings: timing0 {
clock-frequency = <6500000>;
hactive = <320>;
vactive = <240>;

View File

@@ -16,7 +16,7 @@
bus-width = <18>;
display-timings {
native-mode = <&dvi_svga_timings>;
dvi_svga_timings: 800x600 {
dvi_svga_timings: timing0 {
clock-frequency = <40000000>;
hactive = <800>;
vactive = <600>;

View File

@@ -16,7 +16,7 @@
bus-width = <18>;
display-timings {
native-mode = <&dvi_vga_timings>;
dvi_vga_timings: 640x480 {
dvi_vga_timings: timing0 {
clock-frequency = <31250000>;
hactive = <640>;
vactive = <480>;

View File

@@ -78,7 +78,7 @@
bus-width = <18>;
display-timings {
native-mode = <&wvga_timings>;
wvga_timings: 640x480 {
wvga_timings: timing0 {
hactive = <640>;
vactive = <480>;
hback-porch = <45>;

View File

@@ -16,7 +16,7 @@
fsl,pcr = <0xfae80083>; /* non-standard but required */
display-timings {
native-mode = <&timing0>;
timing0: 800x480 {
timing0: timing0 {
clock-frequency = <33000033>;
hactive = <800>;
vactive = <480>;
@@ -47,7 +47,7 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_leds>;
user {
led-user {
label = "Heartbeat";
gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";

View File

@@ -33,7 +33,7 @@
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
pcf8563@51 {
rtc@51 {
compatible = "nxp,pcf8563";
reg = <0x51>;
};
@@ -90,7 +90,7 @@
&weim {
status = "okay";
nor: nor@0,0 {
nor: flash@0,0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "cfi-flash";

View File

@@ -16,7 +16,7 @@
display-timings {
native-mode = <&timing0>;
timing0: 320x240 {
timing0: timing0 {
clock-frequency = <6500000>;
hactive = <320>;
vactive = <240>;

View File

@@ -19,7 +19,7 @@
fsl,pcr = <0xf0c88080>; /* non-standard but required */
display-timings {
native-mode = <&timing0>;
timing0: 640x480 {
timing0: timing0 {
hactive = <640>;
vactive = <480>;
hback-porch = <112>;

View File

@@ -19,7 +19,7 @@
display-timings {
native-mode = <&timing0>;
timing0: 240x320 {
timing0: timing0 {
clock-frequency = <5500000>;
hactive = <240>;
vactive = <320>;

View File

@@ -322,7 +322,7 @@
&weim {
status = "okay";
nor: nor@0,0 {
nor: flash@0,0 {
compatible = "cfi-flash";
reg = <0 0x00000000 0x02000000>;
bank-width = <2>;

View File

@@ -588,6 +588,9 @@
iram: iram@ffff4c00 {
compatible = "mmio-sram";
reg = <0xffff4c00 0xb400>;
ranges = <0 0xffff4c00 0xb400>;
#address-cells = <1>;
#size-cells = <1>;
};
};
};

View File

@@ -982,7 +982,7 @@
status = "disabled";
};
dma_apbx: dma-apbx@80024000 {
dma_apbx: dma-controller@80024000 {
compatible = "fsl,imx28-dma-apbx";
reg = <0x80024000 0x2000>;
interrupts = <78 79 66 0

View File

@@ -96,8 +96,6 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
phy-reset-duration = <20>;
phy-supply = <&sw2_reg>;
status = "okay";
@@ -110,17 +108,10 @@
#address-cells = <1>;
#size-cells = <0>;
phy_port2: phy@1 {
reg = <1>;
};
phy_port3: phy@2 {
reg = <2>;
};
switch@10 {
compatible = "qca,qca8334";
reg = <10>;
reg = <0x10>;
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
switch_ports: ports {
#address-cells = <1>;
@@ -141,15 +132,30 @@
port@2 {
reg = <2>;
label = "eth2";
phy-mode = "internal";
phy-handle = <&phy_port2>;
};
port@3 {
reg = <3>;
label = "eth1";
phy-mode = "internal";
phy-handle = <&phy_port3>;
};
};
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy_port2: ethernet-phy@1 {
reg = <1>;
};
phy_port3: ethernet-phy@2 {
reg = <2>;
};
};
};
};
};

View File

@@ -204,9 +204,6 @@
};
&ca_funnel_in_ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
ca_funnel_in_port1: endpoint {

View File

@@ -183,7 +183,11 @@
clock-names = "apb_pclk";
ca_funnel_in_ports: in-ports {
port {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
ca_funnel_in_port0: endpoint {
remote-endpoint = <&etm0_out_port>;
};
@@ -765,7 +769,7 @@
};
lcdif: lcdif@30730000 {
compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
compatible = "fsl,imx7d-lcdif", "fsl,imx6sx-lcdif";
reg = <0x30730000 0x10000>;
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
@@ -1213,7 +1217,7 @@
gpmi: gpmi-nand@33002000{
compatible = "fsl,imx7d-gpmi-nand";
#address-cells = <1>;
#size-cells = <1>;
#size-cells = <0>;
reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
reg-names = "gpmi-nand", "bch";
interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;

View File

@@ -19,176 +19,174 @@
device_type = "memory";
reg = <0x00000000 0x08000000>;
};
};
soc {
apb@d4000000 {
uart3: uart@d4018000 {
status = "okay";
};
twsi1: i2c@d4011000 {
status = "okay";
pmic: max8925@3c {
compatible = "maxium,max8925";
reg = <0x3c>;
interrupts = <1>;
interrupt-parent = <&intcmux4>;
interrupt-controller;
#interrupt-cells = <1>;
maxim,tsc-irq = <0>;
&uart3 {
status = "okay";
};
regulators {
SDV1 {
regulator-min-microvolt = <637500>;
regulator-max-microvolt = <1425000>;
regulator-boot-on;
regulator-always-on;
};
SDV2 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2225000>;
regulator-boot-on;
regulator-always-on;
};
SDV3 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO1 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO2 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO3 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO4 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO5 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO6 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO7 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO8 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO9 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO10 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
};
LDO11 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO12 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO13 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO14 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO15 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO16 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO17 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO18 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO19 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO20 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
};
backlight {
maxim,max8925-dual-string = <0>;
};
charger {
batt-detect = <0>;
topoff-threshold = <1>;
fast-charge = <7>;
no-temp-support = <0>;
no-insert-detect = <0>;
};
};
&twsi1 {
status = "okay";
pmic: max8925@3c {
compatible = "maxim,max8925";
reg = <0x3c>;
interrupts = <1>;
interrupt-parent = <&intcmux4>;
interrupt-controller;
#interrupt-cells = <1>;
maxim,tsc-irq = <0>;
regulators {
SDV1 {
regulator-min-microvolt = <637500>;
regulator-max-microvolt = <1425000>;
regulator-boot-on;
regulator-always-on;
};
rtc: rtc@d4010000 {
status = "okay";
SDV2 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2225000>;
regulator-boot-on;
regulator-always-on;
};
SDV3 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO1 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO2 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO3 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO4 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO5 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO6 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO7 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO8 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO9 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO10 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
};
LDO11 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO12 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO13 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO14 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO15 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO16 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO17 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO18 {
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2250000>;
regulator-boot-on;
regulator-always-on;
};
LDO19 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
LDO20 {
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <3900000>;
regulator-boot-on;
regulator-always-on;
};
};
backlight {
maxim,max8925-dual-string = <0>;
};
charger {
batt-detect = <0>;
topoff-threshold = <1>;
fast-charge = <7>;
no-temp-support = <0>;
no-insert-detect = <0>;
};
};
};
&rtc {
status = "okay";
};

View File

@@ -337,12 +337,20 @@
pinctrl-0 = <&hdmi_ctl>;
status = "disabled";
hdmi_in: port {
ports {
#address-cells = <1>;
#size-cells = <0>;
hdmi_in_vop: endpoint@0 {
hdmi_in: port@0 {
reg = <0>;
remote-endpoint = <&vop_out_hdmi>;
hdmi_in_vop: endpoint {
remote-endpoint = <&vop_out_hdmi>;
};
};
hdmi_out: port@1 {
reg = <1>;
};
};
};

View File

@@ -62,6 +62,30 @@
states = <1100000 0>, <1300000 1>;
};
reg_vcc_dram: vcc-dram {
compatible = "regulator-fixed";
regulator-name = "vcc-dram";
regulator-min-microvolt = <1500000>;
regulator-max-microvolt = <1500000>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
vin-supply = <&reg_vcc5v0>;
};
reg_vcc1v2: vcc1v2 {
compatible = "regulator-fixed";
regulator-name = "vcc1v2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
vin-supply = <&reg_vcc5v0>;
};
wifi_pwrseq: wifi_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */

View File

@@ -25,8 +25,8 @@
#include "sha256_glue.h"
asmlinkage void sha256_block_data_order(u32 *digest, const void *data,
unsigned int num_blks);
asmlinkage void sha256_block_data_order(struct sha256_state *state,
const u8 *data, int num_blks);
int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
@@ -34,23 +34,20 @@ int crypto_sha256_arm_update(struct shash_desc *desc, const u8 *data,
/* make sure casting to sha256_block_fn() is safe */
BUILD_BUG_ON(offsetof(struct sha256_state, state) != 0);
return sha256_base_do_update(desc, data, len,
(sha256_block_fn *)sha256_block_data_order);
return sha256_base_do_update(desc, data, len, sha256_block_data_order);
}
EXPORT_SYMBOL(crypto_sha256_arm_update);
static int crypto_sha256_arm_final(struct shash_desc *desc, u8 *out)
{
sha256_base_do_finalize(desc,
(sha256_block_fn *)sha256_block_data_order);
sha256_base_do_finalize(desc, sha256_block_data_order);
return sha256_base_finish(desc, out);
}
int crypto_sha256_arm_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *out)
{
sha256_base_do_update(desc, data, len,
(sha256_block_fn *)sha256_block_data_order);
sha256_base_do_update(desc, data, len, sha256_block_data_order);
return crypto_sha256_arm_final(desc, out);
}
EXPORT_SYMBOL(crypto_sha256_arm_finup);

View File

@@ -25,27 +25,25 @@ MODULE_ALIAS_CRYPTO("sha512");
MODULE_ALIAS_CRYPTO("sha384-arm");
MODULE_ALIAS_CRYPTO("sha512-arm");
asmlinkage void sha512_block_data_order(u64 *state, u8 const *src, int blocks);
asmlinkage void sha512_block_data_order(struct sha512_state *state,
u8 const *src, int blocks);
int sha512_arm_update(struct shash_desc *desc, const u8 *data,
unsigned int len)
{
return sha512_base_do_update(desc, data, len,
(sha512_block_fn *)sha512_block_data_order);
return sha512_base_do_update(desc, data, len, sha512_block_data_order);
}
static int sha512_arm_final(struct shash_desc *desc, u8 *out)
{
sha512_base_do_finalize(desc,
(sha512_block_fn *)sha512_block_data_order);
sha512_base_do_finalize(desc, sha512_block_data_order);
return sha512_base_finish(desc, out);
}
int sha512_arm_finup(struct shash_desc *desc, const u8 *data,
unsigned int len, u8 *out)
{
sha512_base_do_update(desc, data, len,
(sha512_block_fn *)sha512_block_data_order);
sha512_base_do_update(desc, data, len, sha512_block_data_order);
return sha512_arm_final(desc, out);
}

View File

@@ -337,6 +337,7 @@ static struct gpiod_lookup_table ep93xx_i2c_gpiod_table = {
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
GPIO_LOOKUP_IDX("G", 0, NULL, 1,
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
{ }
},
};

View File

@@ -71,6 +71,7 @@
memory@40000000 {
reg = <0 0x40000000 0 0x40000000>;
device_type = "memory";
};
reg_1p8v: regulator-1p8v {

View File

@@ -57,6 +57,7 @@
memory@40000000 {
reg = <0 0x40000000 0 0x20000000>;
device_type = "memory";
};
reg_1p8v: regulator-1p8v {

View File

@@ -77,425 +77,427 @@
enable-gpios = <&pm8994_gpios 15 0>;
};
};
};
soc {
serial@7570000 {
label = "BT-UART";
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp1_uart1_default>;
pinctrl-1 = <&blsp1_uart1_sleep>;
&blsp1_uart1 {
label = "BT-UART";
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp1_uart1_default>;
pinctrl-1 = <&blsp1_uart1_sleep>;
bluetooth {
compatible = "qcom,qca6174-bt";
bluetooth {
compatible = "qcom,qca6174-bt";
/* bt_disable_n gpio */
enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
/* bt_disable_n gpio */
enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
clocks = <&divclk4>;
};
};
serial@75b0000 {
label = "LS-UART1";
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp2_uart1_2pins_default>;
pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
};
serial@75b1000 {
label = "LS-UART0";
status = "disabled";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp2_uart2_4pins_default>;
pinctrl-1 = <&blsp2_uart2_4pins_sleep>;
};
i2c@7577000 {
/* On Low speed expansion */
label = "LS-I2C0";
status = "okay";
};
i2c@75b6000 {
/* On Low speed expansion */
label = "LS-I2C1";
status = "okay";
};
spi@7575000 {
/* On Low speed expansion */
label = "LS-SPI0";
status = "okay";
};
i2c@75b5000 {
/* On High speed expansion */
label = "HS-I2C2";
status = "okay";
};
spi@75ba000{
/* On High speed expansion */
label = "HS-SPI1";
status = "okay";
};
sdhci@74a4900 {
/* External SD card */
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
cd-gpios = <&msmgpio 38 0x1>;
vmmc-supply = <&pm8994_l21>;
vqmmc-supply = <&pm8994_l13>;
status = "okay";
};
phy@627000 {
status = "okay";
};
ufshc@624000 {
status = "okay";
};
pinctrl@1010000 {
gpio-line-names =
"[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
"[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
"[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
"[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
"[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
"[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
"[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
"[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
"GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
"TP93", /* GPIO_9 */
"GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
"[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
"NC", /* GPIO_12 */
"[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
"[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
"[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
"TP99", /* GPIO_16 */
"[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
"[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
"[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
"[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
"FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
"FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
"GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
"GPIO-D", /* GPIO_24, LSEC pin 26 */
"GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
"GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
"BLSP6_I2C_SDA", /* GPIO_27 */
"BLSP6_I2C_SCL", /* GPIO_28 */
"GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
"GPIO30", /* GPIO_30, S HSEC pin 4 */
"HDMI_CEC", /* GPIO_31 */
"HDMI_DDC_CLOCK", /* GPIO_32 */
"HDMI_DDC_DATA", /* GPIO_33 */
"HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
"PCIE0_RST_N", /* GPIO_35 */
"PCIE0_CLKREQ_N", /* GPIO_36 */
"PCIE0_WAKE", /* GPIO_37 */
"SD_CARD_DET_N", /* GPIO_38 */
"TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
"W_DISABLE_N", /* GPIO_40 */
"[BLSP9_UART_TX]", /* GPIO_41 */
"[BLSP9_UART_RX]", /* GPIO_42 */
"[BLSP2_UART_CTS_N]", /* GPIO_43 */
"[BLSP2_UART_RFR_N]", /* GPIO_44 */
"[BLSP3_UART_TX]", /* GPIO_45 */
"[BLSP3_UART_RX]", /* GPIO_46 */
"[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
"[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
"[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
"[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
"[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
"[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
"[CODEC_INT1_N]", /* GPIO_53 */
"[CODEC_INT2_N]", /* GPIO_54 */
"[BLSP7_I2C_SDA]", /* GPIO_55 */
"[BLSP7_I2C_SCL]", /* GPIO_56 */
"MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
"[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
"[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
"[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
"[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
"GPIO-E", /* GPIO_62, LSEC pin 27 */
"TP87", /* GPIO_63 */
"[CODEC_RST_N]", /* GPIO_64 */
"[PCM1_CLK]", /* GPIO_65 */
"[PCM1_SYNC]", /* GPIO_66 */
"[PCM1_DIN]", /* GPIO_67 */
"[PCM1_DOUT]", /* GPIO_68 */
"AUDIO_REF_CLK", /* GPIO_69 */
"SLIMBUS_CLK", /* GPIO_70 */
"SLIMBUS_DATA0", /* GPIO_71 */
"SLIMBUS_DATA1", /* GPIO_72 */
"NC", /* GPIO_73 */
"NC", /* GPIO_74 */
"NC", /* GPIO_75 */
"NC", /* GPIO_76 */
"TP94", /* GPIO_77 */
"NC", /* GPIO_78 */
"TP95", /* GPIO_79 */
"GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
"TP88", /* GPIO_81 */
"TP89", /* GPIO_82 */
"TP90", /* GPIO_83 */
"TP91", /* GPIO_84 */
"[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
"[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
"[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
"[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
"TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
"TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
"TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
"NC", /* GPIO_92 */
"TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
"TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
"TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
"TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
"NC", /* GPIO_97 */
"CAM1_STANDBY_N", /* GPIO_98 */
"NC", /* GPIO_99 */
"NC", /* GPIO_100 */
"[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
"BOOT_CONFIG1", /* GPIO_102 */
"USB_HUB_RESET", /* GPIO_103 */
"CAM1_RST_N", /* GPIO_104 */
"NC", /* GPIO_105 */
"NC", /* GPIO_106 */
"NC", /* GPIO_107 */
"NC", /* GPIO_108 */
"NC", /* GPIO_109 */
"NC", /* GPIO_110 */
"NC", /* GPIO_111 */
"NC", /* GPIO_112 */
"PMI8994_BUA", /* GPIO_113 */
"PCIE2_RST_N", /* GPIO_114 */
"PCIE2_CLKREQ_N", /* GPIO_115 */
"PCIE2_WAKE", /* GPIO_116 */
"SSC_IRQ_0", /* GPIO_117 */
"SSC_IRQ_1", /* GPIO_118 */
"SSC_IRQ_2", /* GPIO_119 */
"NC", /* GPIO_120 */
"GPIO121", /* GPIO_121, S HSEC pin 2 */
"NC", /* GPIO_122 */
"SSC_IRQ_6", /* GPIO_123 */
"SSC_IRQ_7", /* GPIO_124 */
"GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
"BOOT_CONFIG5", /* GPIO_126 */
"NC", /* GPIO_127 */
"NC", /* GPIO_128 */
"BOOT_CONFIG7", /* GPIO_129 */
"PCIE1_RST_N", /* GPIO_130 */
"PCIE1_CLKREQ_N", /* GPIO_131 */
"PCIE1_WAKE", /* GPIO_132 */
"GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
"NC", /* GPIO_134 */
"NC", /* GPIO_135 */
"BOOT_CONFIG8", /* GPIO_136 */
"NC", /* GPIO_137 */
"NC", /* GPIO_138 */
"GPS_SSBI2", /* GPIO_139 */
"GPS_SSBI1", /* GPIO_140 */
"NC", /* GPIO_141 */
"NC", /* GPIO_142 */
"NC", /* GPIO_143 */
"BOOT_CONFIG6", /* GPIO_144 */
"NC", /* GPIO_145 */
"NC", /* GPIO_146 */
"NC", /* GPIO_147 */
"NC", /* GPIO_148 */
"NC"; /* GPIO_149 */
};
qcom,spmi@400f000 {
pmic@0 {
gpios@c000 {
gpio-line-names =
"NC",
"KEY_VOLP_N",
"NC",
"BL1_PWM",
"GPIO-F", /* BL0_PWM, LSEC pin 28 */
"BL1_EN",
"NC",
"WLAN_EN",
"NC",
"NC",
"NC",
"NC",
"NC",
"NC",
"DIVCLK1",
"DIVCLK2",
"DIVCLK3",
"DIVCLK4",
"BT_EN",
"PMIC_SLB",
"PMIC_BUA",
"USB_VBUS_DET";
};
mpps@a000 {
gpio-line-names =
"VDDPX_BIAS",
"WIFI_LED",
"NC",
"BT_LED",
"PM_MPP05",
"PM_MPP06",
"PM_MPP07",
"NC";
};
};
pmic@2 {
gpios@c000 {
gpio-line-names =
"NC",
"SPKR_AMP_EN1",
"SPKR_AMP_EN2",
"TP61",
"NC",
"USB2_VBUS_DET",
"NC",
"NC",
"NC",
"NC";
};
};
};
phy@34000 {
status = "okay";
};
phy@7410000 {
status = "okay";
};
phy@7411000 {
status = "okay";
};
phy@7412000 {
status = "okay";
};
usb@6af8800 {
status = "okay";
extcon = <&usb3_id>;
dwc3@6a00000 {
extcon = <&usb3_id>;
dr_mode = "otg";
};
};
usb3_id: usb3-id {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb3_vbus_det_gpio>;
};
usb@76f8800 {
status = "okay";
extcon = <&usb2_id>;
dwc3@7600000 {
extcon = <&usb2_id>;
dr_mode = "otg";
maximum-speed = "high-speed";
};
};
usb2_id: usb2-id {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb2_vbus_det_gpio>;
};
wlan_en: wlan-en-1-8v {
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_gpios>;
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&pm8994_gpios 8 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
agnoc@0 {
pcie@600000 {
status = "okay";
perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&wlan_en>;
};
pcie@608000 {
status = "okay";
perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
};
pcie@610000 {
status = "okay";
perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
};
};
slim_msm: slim@91c0000 {
ngd@1 {
wcd9335: codec@1{
clock-names = "mclk", "slimbus";
clocks = <&div1_mclk>,
<&rpmcc RPM_SMD_BB_CLK1>;
};
};
};
mdss@900000 {
status = "okay";
mdp@901000 {
status = "okay";
};
hdmi-phy@9a0600 {
status = "okay";
vddio-supply = <&pm8994_l12>;
vcca-supply = <&pm8994_l28>;
#phy-cells = <0>;
};
hdmi-tx@9a0000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
core-vdda-supply = <&pm8994_l12>;
core-vcc-supply = <&pm8994_s4>;
};
};
clocks = <&divclk4>;
};
};
&blsp2_uart1 {
label = "LS-UART1";
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp2_uart1_2pins_default>;
pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
};
&blsp2_uart2 {
label = "LS-UART0";
status = "disabled";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&blsp2_uart2_4pins_default>;
pinctrl-1 = <&blsp2_uart2_4pins_sleep>;
};
&blsp1_i2c2 {
/* On Low speed expansion */
label = "LS-I2C0";
status = "okay";
};
&blsp2_i2c1 {
/* On Low speed expansion */
label = "LS-I2C1";
status = "okay";
};
&blsp1_spi0 {
/* On Low speed expansion */
label = "LS-SPI0";
status = "okay";
};
&blsp2_i2c0 {
/* On High speed expansion */
label = "HS-I2C2";
status = "okay";
};
&blsp2_spi5 {
/* On High speed expansion */
label = "HS-SPI1";
status = "okay";
};
&camss {
vdda-supply = <&pm8994_l2>;
};
&sdhc2 {
/* External SD card */
pinctrl-names = "default", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
cd-gpios = <&msmgpio 38 0x1>;
vmmc-supply = <&pm8994_l21>;
vqmmc-supply = <&pm8994_l13>;
status = "okay";
};
&ufsphy {
status = "okay";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-max-microamp = <18380>;
vdda-pll-max-microamp = <9440>;
vddp-ref-clk-supply = <&pm8994_l25>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
};
&ufshc {
status = "okay";
vcc-supply = <&pm8994_l20>;
vccq-supply = <&pm8994_l25>;
vccq2-supply = <&pm8994_s4>;
vcc-max-microamp = <600000>;
vccq-max-microamp = <450000>;
vccq2-max-microamp = <450000>;
};
&msmgpio {
gpio-line-names =
"[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
"[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
"[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
"[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
"[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
"[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
"[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
"[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
"GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
"TP93", /* GPIO_9 */
"GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
"[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
"NC", /* GPIO_12 */
"[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
"[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
"[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
"TP99", /* GPIO_16 */
"[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
"[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
"[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
"[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
"FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
"FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
"GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
"GPIO-D", /* GPIO_24, LSEC pin 26 */
"GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
"GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
"BLSP6_I2C_SDA", /* GPIO_27 */
"BLSP6_I2C_SCL", /* GPIO_28 */
"GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
"GPIO30", /* GPIO_30, S HSEC pin 4 */
"HDMI_CEC", /* GPIO_31 */
"HDMI_DDC_CLOCK", /* GPIO_32 */
"HDMI_DDC_DATA", /* GPIO_33 */
"HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
"PCIE0_RST_N", /* GPIO_35 */
"PCIE0_CLKREQ_N", /* GPIO_36 */
"PCIE0_WAKE", /* GPIO_37 */
"SD_CARD_DET_N", /* GPIO_38 */
"TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
"W_DISABLE_N", /* GPIO_40 */
"[BLSP9_UART_TX]", /* GPIO_41 */
"[BLSP9_UART_RX]", /* GPIO_42 */
"[BLSP2_UART_CTS_N]", /* GPIO_43 */
"[BLSP2_UART_RFR_N]", /* GPIO_44 */
"[BLSP3_UART_TX]", /* GPIO_45 */
"[BLSP3_UART_RX]", /* GPIO_46 */
"[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
"[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
"[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
"[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
"[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
"[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
"[CODEC_INT1_N]", /* GPIO_53 */
"[CODEC_INT2_N]", /* GPIO_54 */
"[BLSP7_I2C_SDA]", /* GPIO_55 */
"[BLSP7_I2C_SCL]", /* GPIO_56 */
"MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
"[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
"[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
"[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
"[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
"GPIO-E", /* GPIO_62, LSEC pin 27 */
"TP87", /* GPIO_63 */
"[CODEC_RST_N]", /* GPIO_64 */
"[PCM1_CLK]", /* GPIO_65 */
"[PCM1_SYNC]", /* GPIO_66 */
"[PCM1_DIN]", /* GPIO_67 */
"[PCM1_DOUT]", /* GPIO_68 */
"AUDIO_REF_CLK", /* GPIO_69 */
"SLIMBUS_CLK", /* GPIO_70 */
"SLIMBUS_DATA0", /* GPIO_71 */
"SLIMBUS_DATA1", /* GPIO_72 */
"NC", /* GPIO_73 */
"NC", /* GPIO_74 */
"NC", /* GPIO_75 */
"NC", /* GPIO_76 */
"TP94", /* GPIO_77 */
"NC", /* GPIO_78 */
"TP95", /* GPIO_79 */
"GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
"TP88", /* GPIO_81 */
"TP89", /* GPIO_82 */
"TP90", /* GPIO_83 */
"TP91", /* GPIO_84 */
"[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
"[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
"[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
"[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
"TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
"TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
"TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
"NC", /* GPIO_92 */
"TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
"TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
"TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
"TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
"NC", /* GPIO_97 */
"CAM1_STANDBY_N", /* GPIO_98 */
"NC", /* GPIO_99 */
"NC", /* GPIO_100 */
"[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
"BOOT_CONFIG1", /* GPIO_102 */
"USB_HUB_RESET", /* GPIO_103 */
"CAM1_RST_N", /* GPIO_104 */
"NC", /* GPIO_105 */
"NC", /* GPIO_106 */
"NC", /* GPIO_107 */
"NC", /* GPIO_108 */
"NC", /* GPIO_109 */
"NC", /* GPIO_110 */
"NC", /* GPIO_111 */
"NC", /* GPIO_112 */
"PMI8994_BUA", /* GPIO_113 */
"PCIE2_RST_N", /* GPIO_114 */
"PCIE2_CLKREQ_N", /* GPIO_115 */
"PCIE2_WAKE", /* GPIO_116 */
"SSC_IRQ_0", /* GPIO_117 */
"SSC_IRQ_1", /* GPIO_118 */
"SSC_IRQ_2", /* GPIO_119 */
"NC", /* GPIO_120 */
"GPIO121", /* GPIO_121, S HSEC pin 2 */
"NC", /* GPIO_122 */
"SSC_IRQ_6", /* GPIO_123 */
"SSC_IRQ_7", /* GPIO_124 */
"GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
"BOOT_CONFIG5", /* GPIO_126 */
"NC", /* GPIO_127 */
"NC", /* GPIO_128 */
"BOOT_CONFIG7", /* GPIO_129 */
"PCIE1_RST_N", /* GPIO_130 */
"PCIE1_CLKREQ_N", /* GPIO_131 */
"PCIE1_WAKE", /* GPIO_132 */
"GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
"NC", /* GPIO_134 */
"NC", /* GPIO_135 */
"BOOT_CONFIG8", /* GPIO_136 */
"NC", /* GPIO_137 */
"NC", /* GPIO_138 */
"GPS_SSBI2", /* GPIO_139 */
"GPS_SSBI1", /* GPIO_140 */
"NC", /* GPIO_141 */
"NC", /* GPIO_142 */
"NC", /* GPIO_143 */
"BOOT_CONFIG6", /* GPIO_144 */
"NC", /* GPIO_145 */
"NC", /* GPIO_146 */
"NC", /* GPIO_147 */
"NC", /* GPIO_148 */
"NC"; /* GPIO_149 */
};
&pm8994_gpios {
gpio-line-names =
"NC",
"KEY_VOLP_N",
"NC",
"BL1_PWM",
"GPIO-F", /* BL0_PWM, LSEC pin 28 */
"BL1_EN",
"NC",
"WLAN_EN",
"NC",
"NC",
"NC",
"NC",
"NC",
"NC",
"DIVCLK1",
"DIVCLK2",
"DIVCLK3",
"DIVCLK4",
"BT_EN",
"PMIC_SLB",
"PMIC_BUA",
"USB_VBUS_DET";
};
&pm8994_mpps {
gpio-line-names =
"VDDPX_BIAS",
"WIFI_LED",
"NC",
"BT_LED",
"PM_MPP05",
"PM_MPP06",
"PM_MPP07",
"NC";
};
&pmi8994_gpios {
gpio-line-names =
"NC",
"SPKR_AMP_EN1",
"SPKR_AMP_EN2",
"TP61",
"NC",
"USB2_VBUS_DET",
"NC",
"NC",
"NC",
"NC";
};
&pcie_phy {
status = "okay";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
};
&usb3phy {
status = "okay";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
};
&hsusb_phy1 {
status = "okay";
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-dpdm-supply = <&pm8994_l24>;
};
&hsusb_phy2 {
status = "okay";
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-dpdm-supply = <&pm8994_l24>;
};
&usb3 {
status = "okay";
extcon = <&usb3_id>;
dwc3@6a00000 {
extcon = <&usb3_id>;
dr_mode = "otg";
};
};
&usb2 {
status = "okay";
extcon = <&usb2_id>;
dwc3@7600000 {
extcon = <&usb2_id>;
dr_mode = "otg";
maximum-speed = "high-speed";
};
};
&pcie0 {
status = "okay";
perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
vddpe-3v3-supply = <&wlan_en>;
vdda-supply = <&pm8994_l28>;
};
&pcie1 {
status = "okay";
perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
vdda-supply = <&pm8994_l28>;
};
&pcie2 {
status = "okay";
perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
vdda-supply = <&pm8994_l28>;
};
&wcd9335 {
clock-names = "mclk", "slimbus";
clocks = <&div1_mclk>,
<&rpmcc RPM_SMD_BB_CLK1>;
vdd-buck-supply = <&pm8994_s4>;
vdd-buck-sido-supply = <&pm8994_s4>;
vdd-tx-supply = <&pm8994_s4>;
vdd-rx-supply = <&pm8994_s4>;
vdd-io-supply = <&pm8994_s4>;
};
&mdss {
status = "okay";
};
&mdp {
status = "okay";
};
&hdmi_phy {
status = "okay";
vddio-supply = <&pm8994_l12>;
vcca-supply = <&pm8994_l28>;
#phy-cells = <0>;
};
&hdmi {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
core-vdda-supply = <&pm8994_l12>;
core-vcc-supply = <&pm8994_s4>;
};
/ {
gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
@@ -667,6 +669,35 @@
};
};
};
usb2_id: usb2-id {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb2_vbus_det_gpio>;
};
usb3_id: usb3-id {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb3_vbus_det_gpio>;
};
wlan_en: wlan-en-1-8v {
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_gpios>;
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&pm8994_gpios 8 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
};
&spmi_bus {

View File

@@ -1097,8 +1097,8 @@
vddmx-supply = <&pm8916_l3>;
vddpx-supply = <&pm8916_l7>;
qcom,state = <&wcnss_smp2p_out 0>;
qcom,state-names = "stop";
qcom,smem-states = <&wcnss_smp2p_out 0>;
qcom,smem-state-names = "stop";
pinctrl-names = "default";
pinctrl-0 = <&wcnss_pin_a>;

View File

@@ -433,6 +433,19 @@
};
};
etm {
compatible = "qcom,coresight-remote-etm";
out-ports {
port {
modem_etm_out_funnel_in2: endpoint {
remote-endpoint =
<&funnel_in2_in_modem_etm>;
};
};
};
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
@@ -571,7 +584,7 @@
rpm_msg_ram: memory@68000 {
compatible = "qcom,rpm-msg-ram";
reg = <0x68000 0x6000>;
reg = <0x00068000 0x6000>;
};
rng: rng@83000 {
@@ -583,28 +596,28 @@
tcsr_mutex_regs: syscon@740000 {
compatible = "syscon";
reg = <0x740000 0x20000>;
reg = <0x00740000 0x20000>;
};
tsens0: thermal-sensor@4a9000 {
compatible = "qcom,msm8996-tsens";
reg = <0x4a9000 0x1000>, /* TM */
<0x4a8000 0x1000>; /* SROT */
reg = <0x004a9000 0x1000>, /* TM */
<0x004a8000 0x1000>; /* SROT */
#qcom,sensors = <13>;
#thermal-sensor-cells = <1>;
};
tsens1: thermal-sensor@4ad000 {
compatible = "qcom,msm8996-tsens";
reg = <0x4ad000 0x1000>, /* TM */
<0x4ac000 0x1000>; /* SROT */
reg = <0x004ad000 0x1000>, /* TM */
<0x004ac000 0x1000>; /* SROT */
#qcom,sensors = <8>;
#thermal-sensor-cells = <1>;
};
tcsr: syscon@7a0000 {
compatible = "qcom,tcsr-msm8996", "syscon";
reg = <0x7a0000 0x18000>;
reg = <0x007a0000 0x18000>;
};
intc: interrupt-controller@9bc0000 {
@@ -620,7 +633,7 @@
apcs_glb: mailbox@9820000 {
compatible = "qcom,msm8996-apcs-hmss-global";
reg = <0x9820000 0x1000>;
reg = <0x09820000 0x1000>;
#mbox-cells = <1>;
};
@@ -630,7 +643,7 @@
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
reg = <0x300000 0x90000>;
reg = <0x00300000 0x90000>;
};
stm@3002000 {
@@ -736,6 +749,14 @@
clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
clock-names = "apb_pclk", "atclk";
in-ports {
port {
funnel_in2_in_modem_etm: endpoint {
remote-endpoint =
<&modem_etm_out_funnel_in2>;
};
};
};
out-ports {
port {
@@ -1103,7 +1124,7 @@
kryocc: clock-controller@6400000 {
compatible = "qcom,apcc-msm8996";
reg = <0x6400000 0x90000>;
reg = <0x06400000 0x90000>;
#clock-cells = <1>;
};
@@ -1149,7 +1170,7 @@
blsp2_uart1: serial@75b0000 {
compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
reg = <0x75b0000 0x1000>;
reg = <0x075b0000 0x1000>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
<&gcc GCC_BLSP2_AHB_CLK>;
@@ -1215,7 +1236,7 @@
sdhc2: sdhci@74a4900 {
status = "disabled";
compatible = "qcom,sdhci-msm-v4";
reg = <0x74a4900 0x314>, <0x74a4000 0x800>;
reg = <0x074a4900 0x314>, <0x074a4000 0x800>;
reg-names = "hc_mem", "core_mem";
interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>,
@@ -1300,11 +1321,11 @@
spmi_bus: qcom,spmi@400f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x400f000 0x1000>,
<0x4400000 0x800000>,
<0x4c00000 0x800000>,
<0x5800000 0x200000>,
<0x400a000 0x002100>;
reg = <0x0400f000 0x1000>,
<0x04400000 0x800000>,
<0x04c00000 0x800000>,
<0x05800000 0x200000>,
<0x0400a000 0x002100>;
reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
interrupt-names = "periph_irq";
interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
@@ -1318,20 +1339,10 @@
ufsphy: phy@627000 {
compatible = "qcom,msm8996-ufs-phy-qmp-14nm";
reg = <0x627000 0xda8>;
reg = <0x00627000 0xda8>;
reg-names = "phy_mem";
#phy-cells = <0>;
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-max-microamp = <18380>;
vdda-pll-max-microamp = <9440>;
vddp-ref-clk-supply = <&pm8994_l25>;
vddp-ref-clk-max-microamp = <100>;
vddp-ref-clk-always-on;
clock-names = "ref_clk_src", "ref_clk";
clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
<&gcc GCC_UFS_CLKREF_CLK>;
@@ -1341,20 +1352,12 @@
ufshc: ufshc@624000 {
compatible = "qcom,ufshc";
reg = <0x624000 0x2500>;
reg = <0x00624000 0x2500>;
interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
phys = <&ufsphy>;
phy-names = "ufsphy";
vcc-supply = <&pm8994_l20>;
vccq-supply = <&pm8994_l25>;
vccq2-supply = <&pm8994_s4>;
vcc-max-microamp = <600000>;
vccq-max-microamp = <450000>;
vccq2-max-microamp = <450000>;
power-domains = <&gcc UFS_GDSC>;
clock-names =
@@ -1408,7 +1411,7 @@
#clock-cells = <1>;
#reset-cells = <1>;
#power-domain-cells = <1>;
reg = <0x8c0000 0x40000>;
reg = <0x008c0000 0x40000>;
assigned-clocks = <&mmcc MMPLL9_PLL>,
<&mmcc MMPLL1_PLL>,
<&mmcc MMPLL3_PLL>,
@@ -1423,7 +1426,7 @@
qfprom@74000 {
compatible = "qcom,qfprom";
reg = <0x74000 0x8ff>;
reg = <0x00074000 0x8ff>;
#address-cells = <1>;
#size-cells = <1>;
@@ -1443,9 +1446,9 @@
};
};
phy@34000 {
pcie_phy: phy@34000 {
compatible = "qcom,msm8996-qmp-pcie-phy";
reg = <0x34000 0x488>;
reg = <0x00034000 0x488>;
#clock-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
@@ -1456,9 +1459,6 @@
<&gcc GCC_PCIE_CLKREF_CLK>;
clock-names = "aux", "cfg_ahb", "ref";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
resets = <&gcc GCC_PCIE_PHY_BCR>,
<&gcc GCC_PCIE_PHY_COM_BCR>,
<&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>;
@@ -1466,9 +1466,9 @@
status = "disabled";
pciephy_0: lane@35000 {
reg = <0x035000 0x130>,
<0x035200 0x200>,
<0x035400 0x1dc>;
reg = <0x00035000 0x130>,
<0x00035200 0x200>,
<0x00035400 0x1dc>;
#phy-cells = <0>;
clock-output-names = "pcie_0_pipe_clk_src";
@@ -1479,9 +1479,9 @@
};
pciephy_1: lane@36000 {
reg = <0x036000 0x130>,
<0x036200 0x200>,
<0x036400 0x1dc>;
reg = <0x00036000 0x130>,
<0x00036200 0x200>,
<0x00036400 0x1dc>;
#phy-cells = <0>;
clock-output-names = "pcie_1_pipe_clk_src";
@@ -1492,9 +1492,9 @@
};
pciephy_2: lane@37000 {
reg = <0x037000 0x130>,
<0x037200 0x200>,
<0x037400 0x1dc>;
reg = <0x00037000 0x130>,
<0x00037200 0x200>,
<0x00037400 0x1dc>;
#phy-cells = <0>;
clock-output-names = "pcie_2_pipe_clk_src";
@@ -1505,9 +1505,9 @@
};
};
phy@7410000 {
usb3phy: phy@7410000 {
compatible = "qcom,msm8996-qmp-usb3-phy";
reg = <0x7410000 0x1c4>;
reg = <0x07410000 0x1c4>;
#clock-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
@@ -1518,18 +1518,15 @@
<&gcc GCC_USB3_CLKREF_CLK>;
clock-names = "aux", "cfg_ahb", "ref";
vdda-phy-supply = <&pm8994_l28>;
vdda-pll-supply = <&pm8994_l12>;
resets = <&gcc GCC_USB3_PHY_BCR>,
<&gcc GCC_USB3PHY_PHY_BCR>;
reset-names = "phy", "common";
status = "disabled";
ssusb_phy_0: lane@7410200 {
reg = <0x7410200 0x200>,
<0x7410400 0x130>,
<0x7410600 0x1a8>;
reg = <0x07410200 0x200>,
<0x07410400 0x130>,
<0x07410600 0x1a8>;
#phy-cells = <0>;
clock-output-names = "usb3_phy_pipe_clk_src";
@@ -1540,16 +1537,13 @@
hsusb_phy1: phy@7411000 {
compatible = "qcom,msm8996-qusb2-phy";
reg = <0x7411000 0x180>;
reg = <0x07411000 0x180>;
#phy-cells = <0>;
clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&gcc GCC_RX1_USB2_CLKREF_CLK>;
clock-names = "cfg_ahb", "ref";
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-dpdm-supply = <&pm8994_l24>;
resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
nvmem-cells = <&qusb2p_hstx_trim>;
status = "disabled";
@@ -1557,16 +1551,13 @@
hsusb_phy2: phy@7412000 {
compatible = "qcom,msm8996-qusb2-phy";
reg = <0x7412000 0x180>;
reg = <0x07412000 0x180>;
#phy-cells = <0>;
clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
<&gcc GCC_RX2_USB2_CLKREF_CLK>;
clock-names = "cfg_ahb", "ref";
vdda-pll-supply = <&pm8994_l12>;
vdda-phy-dpdm-supply = <&pm8994_l24>;
resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
nvmem-cells = <&qusb2s_hstx_trim>;
status = "disabled";
@@ -1574,7 +1565,7 @@
usb2: usb@76f8800 {
compatible = "qcom,msm8996-dwc3", "qcom,dwc3";
reg = <0x76f8800 0x400>;
reg = <0x076f8800 0x400>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
@@ -1594,7 +1585,7 @@
dwc3@7600000 {
compatible = "snps,dwc3";
reg = <0x7600000 0xcc00>;
reg = <0x07600000 0xcc00>;
interrupts = <0 138 IRQ_TYPE_LEVEL_HIGH>;
phys = <&hsusb_phy2>;
phy-names = "usb2-phy";
@@ -1605,7 +1596,7 @@
usb3: usb@6af8800 {
compatible = "qcom,msm8996-dwc3", "qcom,dwc3";
reg = <0x6af8800 0x400>;
reg = <0x06af8800 0x400>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
@@ -1626,7 +1617,7 @@
dwc3@6a00000 {
compatible = "snps,dwc3";
reg = <0x6a00000 0xcc00>;
reg = <0x06a00000 0xcc00>;
interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
phys = <&hsusb_phy1>, <&ssusb_phy_0>;
phy-names = "usb2-phy", "usb3-phy";
@@ -1637,7 +1628,7 @@
vfe_smmu: iommu@da0000 {
compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2";
reg = <0xda0000 0x10000>;
reg = <0x00da0000 0x10000>;
#global-interrupts = <1>;
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
@@ -1653,20 +1644,20 @@
camss: camss@a00000 {
compatible = "qcom,msm8996-camss";
reg = <0xa34000 0x1000>,
<0xa00030 0x4>,
<0xa35000 0x1000>,
<0xa00038 0x4>,
<0xa36000 0x1000>,
<0xa00040 0x4>,
<0xa30000 0x100>,
<0xa30400 0x100>,
<0xa30800 0x100>,
<0xa30c00 0x100>,
<0xa31000 0x500>,
<0xa00020 0x10>,
<0xa10000 0x1000>,
<0xa14000 0x1000>;
reg = <0x00a34000 0x1000>,
<0x00a00030 0x4>,
<0x00a35000 0x1000>,
<0x00a00038 0x4>,
<0x00a36000 0x1000>,
<0x00a00040 0x4>,
<0x00a30000 0x100>,
<0x00a30400 0x100>,
<0x00a30800 0x100>,
<0x00a30c00 0x100>,
<0x00a31000 0x500>,
<0x00a00020 0x10>,
<0x00a10000 0x1000>,
<0x00a14000 0x1000>;
reg-names = "csiphy0",
"csiphy0_clk_mux",
"csiphy1",
@@ -1774,7 +1765,6 @@
"vfe1_stream",
"vfe_ahb",
"vfe_axi";
vdda-supply = <&pm8994_l2>;
iommus = <&vfe_smmu 0>,
<&vfe_smmu 1>,
<&vfe_smmu 2>,
@@ -1788,7 +1778,7 @@
adreno_smmu: iommu@b40000 {
compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2";
reg = <0xb40000 0x10000>;
reg = <0x00b40000 0x10000>;
#global-interrupts = <1>;
interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
@@ -1805,7 +1795,7 @@
mdp_smmu: iommu@d00000 {
compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2";
reg = <0xd00000 0x10000>;
reg = <0x00d00000 0x10000>;
#global-interrupts = <1>;
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
@@ -1821,7 +1811,7 @@
lpass_q6_smmu: iommu@1600000 {
compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2";
reg = <0x1600000 0x20000>;
reg = <0x01600000 0x20000>;
#iommu-cells = <1>;
power-domains = <&gcc HLOS1_VOTE_LPASS_CORE_GDSC>;
@@ -1886,9 +1876,6 @@
pinctrl-0 = <&pcie0_clkreq_default &pcie0_perst_default &pcie0_wake_default>;
pinctrl-1 = <&pcie0_clkreq_sleep &pcie0_perst_default &pcie0_wake_sleep>;
vdda-supply = <&pm8994_l28>;
linux,pci-domain = <0>;
clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
@@ -1941,8 +1928,6 @@
pinctrl-0 = <&pcie1_clkreq_default &pcie1_perst_default &pcie1_wake_default>;
pinctrl-1 = <&pcie1_clkreq_sleep &pcie1_perst_default &pcie1_wake_sleep>;
vdda-supply = <&pm8994_l28>;
linux,pci-domain = <1>;
clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
@@ -1994,8 +1979,6 @@
pinctrl-0 = <&pcie2_clkreq_default &pcie2_perst_default &pcie2_wake_default>;
pinctrl-1 = <&pcie2_clkreq_sleep &pcie2_perst_default &pcie2_wake_sleep >;
vdda-supply = <&pm8994_l28>;
linux,pci-domain = <2>;
clocks = <&gcc GCC_PCIE_2_PIPE_CLK>,
<&gcc GCC_PCIE_2_AUX_CLK>,
@@ -2015,7 +1998,7 @@
{
compatible = "qcom,bam-v1.7.0";
qcom,controlled-remotely;
reg = <0x9184000 0x32000>;
reg = <0x09184000 0x32000>;
num-channels = <31>;
interrupts = <0 164 IRQ_TYPE_LEVEL_HIGH>;
#dma-cells = <1>;
@@ -2025,7 +2008,7 @@
slim_msm: slim@91c0000 {
compatible = "qcom,slim-ngd-v1.5.0";
reg = <0x91c0000 0x2C000>;
reg = <0x091c0000 0x2C000>;
reg-names = "ctrl";
interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
dmas = <&slimbam 3>, <&slimbam 4>,
@@ -2060,12 +2043,6 @@
slim-ifc-dev = <&tasha_ifd>;
vdd-buck-supply = <&pm8994_s4>;
vdd-buck-sido-supply = <&pm8994_s4>;
vdd-tx-supply = <&pm8994_s4>;
vdd-rx-supply = <&pm8994_s4>;
vdd-io-supply = <&pm8994_s4>;
#sound-dai-cells = <1>;
};
};
@@ -2075,7 +2052,7 @@
compatible = "qcom,adreno-530.2", "qcom,adreno";
#stream-id-cells = <16>;
reg = <0xb00000 0x3f000>;
reg = <0x00b00000 0x3f000>;
reg-names = "kgsl_3d0_reg_memory";
interrupts = <0 300 IRQ_TYPE_LEVEL_HIGH>;
@@ -2146,9 +2123,9 @@
mdss: mdss@900000 {
compatible = "qcom,mdss";
reg = <0x900000 0x1000>,
<0x9b0000 0x1040>,
<0x9b8000 0x1040>;
reg = <0x00900000 0x1000>,
<0x009b0000 0x1040>,
<0x009b8000 0x1040>;
reg-names = "mdss_phys",
"vbif_phys",
"vbif_nrt_phys";
@@ -2168,7 +2145,7 @@
mdp: mdp@901000 {
compatible = "qcom,mdp5";
reg = <0x901000 0x90000>;
reg = <0x00901000 0x90000>;
reg-names = "mdp_phys";
interrupt-parent = <&mdss>;
@@ -2244,12 +2221,12 @@
hdmi_phy: hdmi-phy@9a0600 {
#phy-cells = <0>;
compatible = "qcom,hdmi-phy-8996";
reg = <0x9a0600 0x1c4>,
<0x9a0a00 0x124>,
<0x9a0c00 0x124>,
<0x9a0e00 0x124>,
<0x9a1000 0x124>,
<0x9a1200 0x0c8>;
reg = <0x009a0600 0x1c4>,
<0x009a0a00 0x124>,
<0x009a0c00 0x124>,
<0x009a0e00 0x124>,
<0x009a1000 0x124>,
<0x009a1200 0x0c8>;
reg-names = "hdmi_pll",
"hdmi_tx_l0",
"hdmi_tx_l1",

View File

@@ -1396,9 +1396,11 @@
cpu = <&CPU4>;
port{
etm4_out: endpoint {
remote-endpoint = <&apss_funnel_in4>;
out-ports {
port{
etm4_out: endpoint {
remote-endpoint = <&apss_funnel_in4>;
};
};
};
};
@@ -1413,9 +1415,11 @@
cpu = <&CPU5>;
port{
etm5_out: endpoint {
remote-endpoint = <&apss_funnel_in5>;
out-ports {
port{
etm5_out: endpoint {
remote-endpoint = <&apss_funnel_in5>;
};
};
};
};
@@ -1430,9 +1434,11 @@
cpu = <&CPU6>;
port{
etm6_out: endpoint {
remote-endpoint = <&apss_funnel_in6>;
out-ports {
port{
etm6_out: endpoint {
remote-endpoint = <&apss_funnel_in6>;
};
};
};
};
@@ -1447,9 +1453,11 @@
cpu = <&CPU7>;
port{
etm7_out: endpoint {
remote-endpoint = <&apss_funnel_in7>;
out-ports {
port{
etm7_out: endpoint {
remote-endpoint = <&apss_funnel_in7>;
};
};
};
};

View File

@@ -2716,10 +2716,10 @@
<&gcc GCC_USB30_PRIM_MASTER_CLK>;
assigned-clock-rates = <19200000>, <150000000>;
interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
<&pdc_intc 8 IRQ_TYPE_EDGE_BOTH>,
<&pdc_intc 9 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "hs_phy_irq", "ss_phy_irq",
"dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -2760,10 +2760,10 @@
<&gcc GCC_USB30_SEC_MASTER_CLK>;
assigned-clock-rates = <19200000>, <150000000>;
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
<&intc GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
<&pdc_intc 10 IRQ_TYPE_EDGE_BOTH>,
<&pdc_intc 11 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "hs_phy_irq", "ss_phy_irq",
"dm_hs_phy_irq", "dp_hs_phy_irq";
@@ -3158,6 +3158,15 @@
#power-domain-cells = <1>;
};
pdc_intc: interrupt-controller@b220000 {
compatible = "qcom,sdm845-pdc", "qcom,pdc";
reg = <0 0x0b220000 0 0x30000>;
qcom,pdc-ranges = <0 480 94>, <94 609 15>, <115 630 7>;
#interrupt-cells = <2>;
interrupt-parent = <&intc>;
interrupt-controller;
};
pdc_reset: reset-controller@b2e0000 {
compatible = "qcom,sdm845-pdc-global";
reg = <0 0x0b2e0000 0 0x20000>;

View File

@@ -684,11 +684,20 @@
status = "disabled";
ports {
hdmi_in: port {
#address-cells = <1>;
#size-cells = <0>;
hdmi_in: port@0 {
reg = <0>;
hdmi_in_vop: endpoint {
remote-endpoint = <&vop_out_hdmi>;
};
};
hdmi_out: port@1 {
reg = <1>;
};
};
};

View File

@@ -1743,6 +1743,7 @@
hdmi: hdmi@ff940000 {
compatible = "rockchip,rk3399-dw-hdmi";
reg = <0x0 0xff940000 0x0 0x20000>;
reg-io-width = <4>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
clocks = <&cru PCLK_HDMI_CTRL>,
<&cru SCLK_HDMI_SFR>,
@@ -1751,13 +1752,16 @@
<&cru PLL_VPLL>;
clock-names = "iahb", "isfr", "cec", "grf", "vpll";
power-domains = <&power RK3399_PD_HDCP>;
reg-io-width = <4>;
rockchip,grf = <&grf>;
#sound-dai-cells = <0>;
status = "disabled";
ports {
hdmi_in: port {
#address-cells = <1>;
#size-cells = <0>;
hdmi_in: port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
@@ -1770,6 +1774,10 @@
remote-endpoint = <&vopl_out_hdmi>;
};
};
hdmi_out: port@1 {
reg = <1>;
};
};
};

View File

@@ -3,9 +3,8 @@
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* This file contains NUMA specific variables and functions which can
* be split away from DISCONTIGMEM and are used on NUMA machines with
* contiguous memory.
* This file contains NUMA specific variables and functions which are used on
* NUMA machines with contiguous memory.
* 2002/08/07 Erich Focht <efocht@ess.nec.de>
* Populate cpu entries in sysfs for non-numa systems as well
* Intel Corporation - Ashok Raj

View File

@@ -3,9 +3,8 @@
* License. See the file "COPYING" in the main directory of this archive
* for more details.
*
* This file contains NUMA specific variables and functions which can
* be split away from DISCONTIGMEM and are used on NUMA machines with
* contiguous memory.
* This file contains NUMA specific variables and functions which are used on
* NUMA machines with contiguous memory.
*
* 2002/08/07 Erich Focht <efocht@ess.nec.de>
*/

View File

@@ -276,7 +276,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
" .set pop"
: "=&r" (sum), "=&r" (tmp)
: "r" (saddr), "r" (daddr),
"0" (htonl(len)), "r" (htonl(proto)), "r" (sum));
"0" (htonl(len)), "r" (htonl(proto)), "r" (sum)
: "memory");
return csum_fold(sum);
}

View File

@@ -20,10 +20,4 @@
#define nid_to_addrbase(nid) 0
#endif
#ifdef CONFIG_DISCONTIGMEM
#define pfn_to_nid(pfn) pa_to_nid((pfn) << PAGE_SHIFT)
#endif /* CONFIG_DISCONTIGMEM */
#endif /* _ASM_MMZONE_H_ */

View File

@@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
unsigned long val)
{
regs->cp0_epc = val;
regs->cp0_cause &= ~CAUSEF_BD;
}
/* Query offset/name of register from its name/offset */

View File

@@ -11,6 +11,7 @@
#include <asm/cpu-features.h>
#include <asm/cpu-info.h>
#include <asm/fpu.h>
#ifdef CONFIG_MIPS_FP_SUPPORT
@@ -309,6 +310,11 @@ void mips_set_personality_nan(struct arch_elf_state *state)
struct cpuinfo_mips *c = &boot_cpu_data;
struct task_struct *t = current;
/* Do this early so t->thread.fpu.fcr31 won't be clobbered in case
* we are preempted before the lose_fpu(0) in start_thread.
*/
lose_fpu(0);
t->thread.fpu.fcr31 = c->fpu_csr31;
switch (state->nan_2008) {
case 0:

View File

@@ -416,7 +416,12 @@ void __init paging_init(void)
(highend_pfn - max_low_pfn) << (PAGE_SHIFT - 10));
max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn;
}
max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
#else
max_mapnr = max_low_pfn;
#endif
high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
free_area_init_nodes(max_zone_pfns);
}
@@ -452,16 +457,6 @@ void __init mem_init(void)
*/
BUILD_BUG_ON(IS_ENABLED(CONFIG_32BIT) && (_PFN_SHIFT > PAGE_SHIFT));
#ifdef CONFIG_HIGHMEM
#ifdef CONFIG_DISCONTIGMEM
#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
#endif
max_mapnr = highend_pfn ? highend_pfn : max_low_pfn;
#else
max_mapnr = max_low_pfn;
#endif
high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
maar_init();
memblock_free_all();
setup_zero_pages(); /* Setup zeroed pages. */

View File

@@ -76,18 +76,12 @@
* virt_to_page(k) convert a _valid_ virtual address to struct page *
* virt_addr_valid(k) indicates whether a virtual address is valid
*/
#ifndef CONFIG_DISCONTIGMEM
#define ARCH_PFN_OFFSET PHYS_PFN_OFFSET
#define pfn_valid(pfn) ((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
#define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
#define virt_addr_valid(kaddr) ((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory)
#else /* CONFIG_DISCONTIGMEM */
#error CONFIG_DISCONTIGMEM is not supported yet.
#endif /* !CONFIG_DISCONTIGMEM */
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
#endif

View File

@@ -42,31 +42,32 @@ extern __wsum csum_partial_copy_from_user(const void __user *src,
static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
{
unsigned int sum;
unsigned long t0, t1, t2;
__asm__ __volatile__ (
" ldws,ma 4(%1), %0\n"
" addib,<= -4, %2, 2f\n"
"\n"
" ldws 4(%1), %%r20\n"
" ldws 8(%1), %%r21\n"
" add %0, %%r20, %0\n"
" ldws,ma 12(%1), %%r19\n"
" addc %0, %%r21, %0\n"
" addc %0, %%r19, %0\n"
"1: ldws,ma 4(%1), %%r19\n"
" addib,< 0, %2, 1b\n"
" addc %0, %%r19, %0\n"
" ldws 4(%1), %4\n"
" ldws 8(%1), %5\n"
" add %0, %4, %0\n"
" ldws,ma 12(%1), %3\n"
" addc %0, %5, %0\n"
" addc %0, %3, %0\n"
"1: ldws,ma 4(%1), %3\n"
" addib,> -1, %2, 1b\n"
" addc %0, %3, %0\n"
"\n"
" extru %0, 31, 16, %%r20\n"
" extru %0, 15, 16, %%r21\n"
" addc %%r20, %%r21, %0\n"
" extru %0, 15, 16, %%r21\n"
" add %0, %%r21, %0\n"
" extru %0, 31, 16, %4\n"
" extru %0, 15, 16, %5\n"
" addc %4, %5, %0\n"
" extru %0, 15, 16, %5\n"
" add %0, %5, %0\n"
" subi -1, %0, %0\n"
"2:\n"
: "=r" (sum), "=r" (iph), "=r" (ihl)
: "=r" (sum), "=r" (iph), "=r" (ihl), "=r" (t0), "=r" (t1), "=r" (t2)
: "1" (iph), "2" (ihl)
: "r19", "r20", "r21", "memory");
: "memory");
return (__force __sum16)sum;
}
@@ -126,6 +127,10 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
__u32 len, __u8 proto,
__wsum sum)
{
unsigned long t0, t1, t2, t3;
len += proto; /* add 16-bit proto + len */
__asm__ __volatile__ (
#if BITS_PER_LONG > 32
@@ -136,20 +141,20 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
** Try to keep 4 registers with "live" values ahead of the ALU.
*/
" ldd,ma 8(%1), %%r19\n" /* get 1st saddr word */
" ldd,ma 8(%2), %%r20\n" /* get 1st daddr word */
" add %8, %3, %3\n"/* add 16-bit proto + len */
" add %%r19, %0, %0\n"
" ldd,ma 8(%1), %%r21\n" /* 2cd saddr */
" ldd,ma 8(%2), %%r22\n" /* 2cd daddr */
" add,dc %%r20, %0, %0\n"
" add,dc %%r21, %0, %0\n"
" add,dc %%r22, %0, %0\n"
" depdi 0, 31, 32, %0\n"/* clear upper half of incoming checksum */
" ldd,ma 8(%1), %4\n" /* get 1st saddr word */
" ldd,ma 8(%2), %5\n" /* get 1st daddr word */
" add %4, %0, %0\n"
" ldd,ma 8(%1), %6\n" /* 2nd saddr */
" ldd,ma 8(%2), %7\n" /* 2nd daddr */
" add,dc %5, %0, %0\n"
" add,dc %6, %0, %0\n"
" add,dc %7, %0, %0\n"
" add,dc %3, %0, %0\n" /* fold in proto+len | carry bit */
" extrd,u %0, 31, 32, %%r19\n" /* copy upper half down */
" depdi 0, 31, 32, %0\n" /* clear upper half */
" add %%r19, %0, %0\n" /* fold into 32-bits */
" addc 0, %0, %0\n" /* add carry */
" extrd,u %0, 31, 32, %4\n"/* copy upper half down */
" depdi 0, 31, 32, %0\n"/* clear upper half */
" add,dc %4, %0, %0\n" /* fold into 32-bits, plus carry */
" addc 0, %0, %0\n" /* add final carry */
#else
@@ -158,30 +163,30 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
** Insn stream is serialized on the carry bit here too.
** result from the previous operation (eg r0 + x)
*/
" ldw,ma 4(%1), %%r19\n" /* get 1st saddr word */
" ldw,ma 4(%2), %%r20\n" /* get 1st daddr word */
" add %8, %3, %3\n" /* add 16-bit proto + len */
" add %%r19, %0, %0\n"
" ldw,ma 4(%1), %%r21\n" /* 2cd saddr */
" addc %%r20, %0, %0\n"
" ldw,ma 4(%2), %%r22\n" /* 2cd daddr */
" addc %%r21, %0, %0\n"
" ldw,ma 4(%1), %%r19\n" /* 3rd saddr */
" addc %%r22, %0, %0\n"
" ldw,ma 4(%2), %%r20\n" /* 3rd daddr */
" addc %%r19, %0, %0\n"
" ldw,ma 4(%1), %%r21\n" /* 4th saddr */
" addc %%r20, %0, %0\n"
" ldw,ma 4(%2), %%r22\n" /* 4th daddr */
" addc %%r21, %0, %0\n"
" addc %%r22, %0, %0\n"
" addc %3, %0, %0\n" /* fold in proto+len, catch carry */
" ldw,ma 4(%1), %4\n" /* get 1st saddr word */
" ldw,ma 4(%2), %5\n" /* get 1st daddr word */
" add %4, %0, %0\n"
" ldw,ma 4(%1), %6\n" /* 2nd saddr */
" addc %5, %0, %0\n"
" ldw,ma 4(%2), %7\n" /* 2nd daddr */
" addc %6, %0, %0\n"
" ldw,ma 4(%1), %4\n" /* 3rd saddr */
" addc %7, %0, %0\n"
" ldw,ma 4(%2), %5\n" /* 3rd daddr */
" addc %4, %0, %0\n"
" ldw,ma 4(%1), %6\n" /* 4th saddr */
" addc %5, %0, %0\n"
" ldw,ma 4(%2), %7\n" /* 4th daddr */
" addc %6, %0, %0\n"
" addc %7, %0, %0\n"
" addc %3, %0, %0\n" /* fold in proto+len */
" addc 0, %0, %0\n" /* add carry */
#endif
: "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len)
: "0" (sum), "1" (saddr), "2" (daddr), "3" (len), "r" (proto)
: "r19", "r20", "r21", "r22", "memory");
: "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len),
"=r" (t0), "=r" (t1), "=r" (t2), "=r" (t3)
: "0" (sum), "1" (saddr), "2" (daddr), "3" (len)
: "memory");
return csum_fold(sum);
}

View File

@@ -122,10 +122,10 @@ static unsigned long f_extend(unsigned long address)
#ifdef CONFIG_64BIT
if(unlikely(parisc_narrow_firmware)) {
if((address & 0xff000000) == 0xf0000000)
return 0xf0f0f0f000000000UL | (u32)address;
return (0xfffffff0UL << 32) | (u32)address;
if((address & 0xf0000000) == 0xf0000000)
return 0xffffffff00000000UL | (u32)address;
return (0xffffffffUL << 32) | (u32)address;
}
#endif
return address;

View File

@@ -80,7 +80,7 @@ void notrace __hot ftrace_function_trampoline(unsigned long parent,
#endif
}
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
#if defined(CONFIG_DYNAMIC_FTRACE) && defined(CONFIG_FUNCTION_GRAPH_TRACER)
int ftrace_enable_ftrace_graph_caller(void)
{
return 0;

View File

@@ -375,5 +375,9 @@ extern void *abatron_pteptrs[2];
#include <asm/nohash/mmu.h>
#endif
#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
#endif
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_MMU_H_ */

View File

@@ -42,9 +42,6 @@ u64 memory_hotplug_max(void);
#else
#define memory_hotplug_max() memblock_end_of_DRAM()
#endif /* CONFIG_NEED_MULTIPLE_NODES */
#ifdef CONFIG_FA_DUMP
#define __HAVE_ARCH_RESERVED_KERNEL_PAGES
#endif
#endif /* __KERNEL__ */
#endif /* _ASM_MMZONE_H_ */

View File

@@ -12,9 +12,16 @@
#ifndef __ASSEMBLY__
/* Performance Monitor Registers */
#define mfpmr(rn) ({unsigned int rval; \
asm volatile("mfpmr %0," __stringify(rn) \
asm volatile(".machine push; " \
".machine e300; " \
"mfpmr %0," __stringify(rn) ";" \
".machine pop; " \
: "=r" (rval)); rval;})
#define mtpmr(rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v))
#define mtpmr(rn, v) asm volatile(".machine push; " \
".machine e300; " \
"mtpmr " __stringify(rn) ",%0; " \
".machine pop; " \
: : "r" (v))
#endif /* __ASSEMBLY__ */
/* Freescale Book E Performance Monitor APU Registers */

View File

@@ -1424,10 +1424,12 @@ static int emulate_instruction(struct pt_regs *regs)
return -EINVAL;
}
#ifdef CONFIG_GENERIC_BUG
int is_valid_bugaddr(unsigned long addr)
{
return is_kernel_addr(addr);
}
#endif
#ifdef CONFIG_MATH_EMULATION
static int emulate_math(struct pt_regs *regs)

View File

@@ -34,8 +34,8 @@ obj-$(CONFIG_FUNCTION_ERROR_INJECTION) += error-inject.o
# 64-bit linker creates .sfpr on demand for final link (vmlinux),
# so it is only needed for modules, and only for older linkers which
# do not support --save-restore-funcs
ifeq ($(call ld-ifversion, -lt, 225000000, y),y)
always-$(CONFIG_PPC64) += crtsavres.o
ifeq ($(call ld-ifversion, -lt, 225000000, y)$(CONFIG_PPC64),yy)
always += crtsavres.o
endif
obj-$(CONFIG_PPC_BOOK3S_64) += copyuser_power7.o copypage_power7.o \
@@ -61,6 +61,6 @@ obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o
obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o
obj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o
CFLAGS_xor_vmx.o += -maltivec $(call cc-option,-mabi=altivec)
CFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec)
obj-$(CONFIG_PPC64) += $(obj64-y)

View File

@@ -469,6 +469,8 @@ static int do_fp_load(struct instruction_op *op, unsigned long ea,
} u;
nb = GETSIZE(op->type);
if (nb > sizeof(u))
return -EINVAL;
if (!address_ok(regs, ea, nb))
return -EFAULT;
rn = op->reg;
@@ -519,6 +521,8 @@ static int do_fp_store(struct instruction_op *op, unsigned long ea,
} u;
nb = GETSIZE(op->type);
if (nb > sizeof(u))
return -EINVAL;
if (!address_ok(regs, ea, nb))
return -EFAULT;
rn = op->reg;
@@ -563,6 +567,9 @@ static nokprobe_inline int do_vec_load(int rn, unsigned long ea,
u8 b[sizeof(__vector128)];
} u = {};
if (size > sizeof(u))
return -EINVAL;
if (!address_ok(regs, ea & ~0xfUL, 16))
return -EFAULT;
/* align to multiple of size */
@@ -590,6 +597,9 @@ static nokprobe_inline int do_vec_store(int rn, unsigned long ea,
u8 b[sizeof(__vector128)];
} u;
if (size > sizeof(u))
return -EINVAL;
if (!address_ok(regs, ea & ~0xfUL, 16))
return -EFAULT;
/* align to multiple of size */

View File

@@ -442,6 +442,7 @@ void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,
set_pte_at(vma->vm_mm, addr, ptep, pte);
}
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
/*
* For hash translation mode, we use the deposited table to store hash slot
* information and they are stored at PTRS_PER_PMD offset from related pmd
@@ -463,6 +464,7 @@ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl,
return true;
}
#endif
/*
* Does the CPU support tlbie?

View File

@@ -104,7 +104,7 @@ void pgtable_cache_add(unsigned int shift)
* as to leave enough 0 bits in the address to contain it. */
unsigned long minalign = max(MAX_PGTABLE_INDEX_SIZE + 1,
HUGEPD_SHIFT_MASK + 1);
struct kmem_cache *new;
struct kmem_cache *new = NULL;
/* It would be nice if this was a BUILD_BUG_ON(), but at the
* moment, gcc doesn't seem to recognize is_power_of_2 as a
@@ -117,7 +117,8 @@ void pgtable_cache_add(unsigned int shift)
align = max_t(unsigned long, align, minalign);
name = kasprintf(GFP_KERNEL, "pgtable-2^%d", shift);
new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
if (name)
new = kmem_cache_create(name, table_size, align, 0, ctor(shift));
if (!new)
panic("Could not allocate pgtable cache for order %d", shift);

View File

@@ -153,6 +153,20 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,
ret = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO,
virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE);
/*
* ret value as 'H_PARAMETER' with detail_rc as 'GEN_BUF_TOO_SMALL',
* specifies that the current buffer size cannot accommodate
* all the information and a partial buffer returned.
* Since in this function we are only accessing data for a given starting index,
* we don't need to accommodate whole data and can get required count by
* accessing first entry data.
* Hence hcall fails only incase the ret value is other than H_SUCCESS or
* H_PARAMETER with detail_rc value as GEN_BUF_TOO_SMALL(0x1B).
*/
if (ret == H_PARAMETER && be32_to_cpu(arg->params.detail_rc) == 0x1B)
ret = 0;
if (ret) {
pr_devel("hcall failed: 0x%lx\n", ret);
goto out;
@@ -217,6 +231,7 @@ static int h_gpci_event_init(struct perf_event *event)
{
u64 count;
u8 length;
unsigned long ret;
/* Not our event */
if (event->attr.type != event->pmu->type)
@@ -247,13 +262,23 @@ static int h_gpci_event_init(struct perf_event *event)
}
/* check if the request works... */
if (single_gpci_request(event_get_request(event),
ret = single_gpci_request(event_get_request(event),
event_get_starting_index(event),
event_get_secondary_index(event),
event_get_counter_info_version(event),
event_get_offset(event),
length,
&count)) {
&count);
/*
* ret value as H_AUTHORITY implies that partition is not permitted to retrieve
* performance information, and required to set
* "Enable Performance Information Collection" option.
*/
if (ret == H_AUTHORITY)
return -EPERM;
if (ret) {
pr_devel("gpci hcall failed\n");
return -EINVAL;
}

View File

@@ -97,9 +97,6 @@ static void __init linkstation_init_IRQ(void)
mpic_init(mpic);
}
extern void avr_uart_configure(void);
extern void avr_uart_send(const char);
static void __noreturn linkstation_restart(char *cmd)
{
local_irq_disable();

View File

@@ -156,4 +156,7 @@ int mpc10x_disable_store_gathering(struct pci_controller *hose);
/* For MPC107 boards that use the built-in openpic */
void mpc10x_set_openpic(void);
void avr_uart_configure(void);
void avr_uart_send(const char c);
#endif /* __PPC_KERNEL_MPC10X_H */

View File

@@ -1542,6 +1542,7 @@ ENDPROC(cleanup_critical)
.quad .Lsie_skip - .Lsie_entry
#endif
.section .rodata, "a"
.balign 8
#define SYSCALL(esame,emu) .quad __s390x_ ## esame
.globl sys_call_table
sys_call_table:

View File

@@ -413,6 +413,7 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
/*
* floating point control reg. is in the thread structure
*/
save_fpu_regs();
if ((unsigned int) data != 0 ||
test_fp_ctl(data >> (BITS_PER_LONG - 32)))
return -EINVAL;
@@ -773,6 +774,7 @@ static int __poke_user_compat(struct task_struct *child,
/*
* floating point control reg. is in the thread structure
*/
save_fpu_regs();
if (test_fp_ctl(tmp))
return -EINVAL;
child->thread.fpu.fpc = data;
@@ -1006,9 +1008,7 @@ static int s390_fpregs_set(struct task_struct *target,
int rc = 0;
freg_t fprs[__NUM_FPRS];
if (target == current)
save_fpu_regs();
save_fpu_regs();
if (MACHINE_HAS_VX)
convert_vx_to_fp(fprs, target->thread.fpu.vxrs);
else

View File

@@ -214,13 +214,13 @@ void vtime_flush(struct task_struct *tsk)
virt_timer_expire();
steal = S390_lowcore.steal_timer;
avg_steal = S390_lowcore.avg_steal_timer / 2;
avg_steal = S390_lowcore.avg_steal_timer;
if ((s64) steal > 0) {
S390_lowcore.steal_timer = 0;
account_steal_time(cputime_to_nsecs(steal));
avg_steal += steal;
}
S390_lowcore.avg_steal_timer = avg_steal;
S390_lowcore.avg_steal_timer = avg_steal / 2;
}
/*

View File

@@ -3348,10 +3348,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
vcpu_load(vcpu);
if (test_fp_ctl(fpu->fpc)) {
ret = -EINVAL;
goto out;
}
vcpu->run->s.regs.fpc = fpu->fpc;
if (MACHINE_HAS_VX)
convert_fp_to_vx((__vector128 *) vcpu->run->s.regs.vrs,
@@ -3359,7 +3355,6 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
else
memcpy(vcpu->run->s.regs.fprs, &fpu->fprs, sizeof(fpu->fprs));
out:
vcpu_put(vcpu);
return ret;
}

View File

@@ -223,7 +223,7 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
/* combine single writes by using store-block insn */
void __iowrite64_copy(void __iomem *to, const void *from, size_t count)
{
zpci_memcpy_toio(to, from, count);
zpci_memcpy_toio(to, from, count * 8);
}
void __iomem *ioremap(unsigned long ioaddr, unsigned long size)

View File

@@ -696,7 +696,7 @@ err1:
return err;
}
static const struct of_device_id grpci1_of_match[] __initconst = {
static const struct of_device_id grpci1_of_match[] = {
{
.name = "GAISLER_PCIFBRG",
},

View File

@@ -887,7 +887,7 @@ err1:
return err;
}
static const struct of_device_id grpci2_of_match[] __initconst = {
static const struct of_device_id grpci2_of_match[] = {
{
.name = "GAISLER_GRPCI2",
},

View File

@@ -274,7 +274,7 @@ static int __init setup_nmi_watchdog(char *str)
if (!strncmp(str, "panic", 5))
panic_on_timeout = 1;
return 0;
return 1;
}
__setup("nmi_watchdog=", setup_nmi_watchdog);

View File

@@ -449,9 +449,8 @@ static __init int vdso_setup(char *s)
unsigned long val;
err = kstrtoul(s, 10, &val);
if (err)
return err;
vdso_enabled = val;
return 0;
if (!err)
vdso_enabled = val;
return 1;
}
__setup("vdso=", vdso_setup);

View File

@@ -85,6 +85,19 @@ config LD_SCRIPT_DYN
depends on !LD_SCRIPT_STATIC
select MODULE_REL_CRCS if MODVERSIONS
config LD_SCRIPT_DYN_RPATH
bool "set rpath in the binary" if EXPERT
default y
depends on LD_SCRIPT_DYN
help
Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
explicitly.
You may need to turn this off if compiling for nix systems
that have their libraries in random /nix directories and
might otherwise unexpected use libraries from /lib or /lib64
instead of the desired ones.
config HOSTFS
tristate "Host filesystem"
help

View File

@@ -118,7 +118,8 @@ archprepare:
$(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h
LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib
CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
$(call cc-option, -fno-stack-protector,) \

View File

@@ -204,7 +204,7 @@ static int uml_net_close(struct net_device *dev)
return 0;
}
static int uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
static netdev_tx_t uml_net_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct uml_net_private *lp = netdev_priv(dev);
unsigned long flags;

View File

@@ -49,7 +49,7 @@ extern void do_uml_exitcalls(void);
* Are we disallowed to sleep? Used to choose between GFP_KERNEL and
* GFP_ATOMIC.
*/
extern int __cant_sleep(void);
extern int __uml_cant_sleep(void);
extern int get_current_pid(void);
extern int copy_from_user_proc(void *to, void *from, int size);
extern int cpu(void);

View File

@@ -258,7 +258,7 @@ void arch_cpu_idle(void)
local_irq_enable();
}
int __cant_sleep(void) {
int __uml_cant_sleep(void) {
return in_atomic() || irqs_disabled() || in_interrupt();
/* Is in_interrupt() really needed? */
}

View File

@@ -45,7 +45,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
unsigned long stack, sp;
int pid, fds[2], ret, n;
stack = alloc_stack(0, __cant_sleep());
stack = alloc_stack(0, __uml_cant_sleep());
if (stack == 0)
return -ENOMEM;
@@ -69,7 +69,7 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv)
data.pre_data = pre_data;
data.argv = argv;
data.fd = fds[1];
data.buf = __cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
data.buf = __uml_cant_sleep() ? uml_kmalloc(PATH_MAX, UM_GFP_ATOMIC) :
uml_kmalloc(PATH_MAX, UM_GFP_KERNEL);
pid = clone(helper_child, (void *) sp, CLONE_VM, &data);
if (pid < 0) {
@@ -116,7 +116,7 @@ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags,
unsigned long stack, sp;
int pid, status, err;
stack = alloc_stack(0, __cant_sleep());
stack = alloc_stack(0, __uml_cant_sleep());
if (stack == 0)
return -ENOMEM;

View File

@@ -166,23 +166,38 @@ __uml_setup("quiet", quiet_cmd_param,
"quiet\n"
" Turns off information messages during boot.\n\n");
/*
* The os_info/os_warn functions will be called by helper threads. These
* have a very limited stack size and using the libc formatting functions
* may overflow the stack.
* So pull in the kernel vscnprintf and use that instead with a fixed
* on-stack buffer.
*/
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
void os_info(const char *fmt, ...)
{
char buf[256];
va_list list;
int len;
if (quiet_info)
return;
va_start(list, fmt);
vfprintf(stderr, fmt, list);
len = vscnprintf(buf, sizeof(buf), fmt, list);
fwrite(buf, len, 1, stderr);
va_end(list);
}
void os_warn(const char *fmt, ...)
{
char buf[256];
va_list list;
int len;
va_start(list, fmt);
vfprintf(stderr, fmt, list);
len = vscnprintf(buf, sizeof(buf), fmt, list);
fwrite(buf, len, 1, stderr);
va_end(list);
}

View File

@@ -372,7 +372,7 @@ config X86_CMOV
config X86_MINIMUM_CPU_FAMILY
int
default "64" if X86_64
default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
default "5" if X86_32 && X86_CMPXCHG64
default "4"

View File

@@ -44,7 +44,7 @@ ELF_FORMAT := elf64-x86-64
# Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example.
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib64
LINK-y += -m64
endif

View File

@@ -92,8 +92,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 19, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 20, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 21, feature_bit) || \
REQUIRED_MASK_CHECK || \
BUILD_BUG_ON_ZERO(NCAPINTS != 21))
BUILD_BUG_ON_ZERO(NCAPINTS != 22))
#define DISABLED_MASK_BIT_SET(feature_bit) \
( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 0, feature_bit) || \
@@ -117,8 +118,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 19, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 20, feature_bit) || \
CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 21, feature_bit) || \
DISABLED_MASK_CHECK || \
BUILD_BUG_ON_ZERO(NCAPINTS != 21))
BUILD_BUG_ON_ZERO(NCAPINTS != 22))
#define cpu_has(c, bit) \
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \

View File

@@ -13,7 +13,7 @@
/*
* Defines x86 CPU feature bits
*/
#define NCAPINTS 21 /* N 32-bit words worth of info */
#define NCAPINTS 22 /* N 32-bit words worth of info */
#define NBUGINTS 2 /* N 32-bit bug flags */
/*
@@ -382,6 +382,8 @@
#define X86_FEATURE_SEV_ES (19*32+ 3) /* AMD Secure Encrypted Virtualization - Encrypted State */
#define X86_FEATURE_SME_COHERENT (19*32+10) /* "" AMD hardware-enforced cache coherency */
#define X86_FEATURE_AUTOIBRS (20*32+ 8) /* "" Automatic IBRS */
/*
* BUG word(s)
*/

View File

@@ -86,6 +86,7 @@
#define DISABLED_MASK18 0
#define DISABLED_MASK19 0
#define DISABLED_MASK20 0
#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
#define DISABLED_MASK21 0
#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)
#endif /* _ASM_X86_DISABLED_FEATURES_H */

View File

@@ -379,6 +379,15 @@ static inline temp_mm_state_t use_temporary_mm(struct mm_struct *mm)
temp_mm_state_t temp_state;
lockdep_assert_irqs_disabled();
/*
* Make sure not to be in TLB lazy mode, as otherwise we'll end up
* with a stale address space WITHOUT being in lazy mode after
* restoring the previous mm.
*/
if (this_cpu_read(cpu_tlbstate.is_lazy))
leave_mm(smp_processor_id());
temp_state.mm = this_cpu_read(cpu_tlbstate.loaded_mm);
switch_mm_irqs_off(NULL, mm, current);

View File

@@ -30,6 +30,7 @@
#define _EFER_SVME 12 /* Enable virtualization */
#define _EFER_LMSLE 13 /* Long Mode Segment Limit Enable */
#define _EFER_FFXSR 14 /* Enable Fast FXSAVE/FXRSTOR */
#define _EFER_AUTOIBRS 21 /* Enable Automatic IBRS */
#define EFER_SCE (1<<_EFER_SCE)
#define EFER_LME (1<<_EFER_LME)
@@ -38,6 +39,7 @@
#define EFER_SVME (1<<_EFER_SVME)
#define EFER_LMSLE (1<<_EFER_LMSLE)
#define EFER_FFXSR (1<<_EFER_FFXSR)
#define EFER_AUTOIBRS (1<<_EFER_AUTOIBRS)
/* Intel MSRs. Some also available on other CPUs */

View File

@@ -13,6 +13,8 @@
#include <asm/unwind_hints.h>
#include <asm/percpu.h>
#include <linux/frame.h>
#include <asm/unwind_hints.h>
/*
* This should be used immediately before a retpoline alternative. It tells
* objtool where the retpolines are so that it can make sense of the control
@@ -51,14 +53,18 @@
#define __FILL_RETURN_BUFFER(reg, nr, sp) \
mov $(nr/2), reg; \
771: \
ANNOTATE_INTRA_FUNCTION_CALL; \
call 772f; \
773: /* speculation trap */ \
UNWIND_HINT_EMPTY; \
pause; \
lfence; \
jmp 773b; \
772: \
ANNOTATE_INTRA_FUNCTION_CALL; \
call 774f; \
775: /* speculation trap */ \
UNWIND_HINT_EMPTY; \
pause; \
lfence; \
jmp 775b; \
@@ -152,6 +158,7 @@
.endm
.macro ISSUE_UNBALANCED_RET_GUARD
ANNOTATE_INTRA_FUNCTION_CALL;
call .Lunbalanced_ret_guard_\@
int3
.Lunbalanced_ret_guard_\@:

View File

@@ -103,6 +103,7 @@
#define REQUIRED_MASK18 0
#define REQUIRED_MASK19 0
#define REQUIRED_MASK20 0
#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
#define REQUIRED_MASK21 0
#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)
#endif /* _ASM_X86_REQUIRED_FEATURES_H */

View File

@@ -14,12 +14,29 @@ struct pt_regs;
,,regs->di,,regs->si,,regs->dx \
,,regs->r10,,regs->r8,,regs->r9) \
/* SYSCALL_PT_ARGS is Adapted from s390x */
#define SYSCALL_PT_ARG6(m, t1, t2, t3, t4, t5, t6) \
SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5), m(t6, (regs->bp))
#define SYSCALL_PT_ARG5(m, t1, t2, t3, t4, t5) \
SYSCALL_PT_ARG4(m, t1, t2, t3, t4), m(t5, (regs->di))
#define SYSCALL_PT_ARG4(m, t1, t2, t3, t4) \
SYSCALL_PT_ARG3(m, t1, t2, t3), m(t4, (regs->si))
#define SYSCALL_PT_ARG3(m, t1, t2, t3) \
SYSCALL_PT_ARG2(m, t1, t2), m(t3, (regs->dx))
#define SYSCALL_PT_ARG2(m, t1, t2) \
SYSCALL_PT_ARG1(m, t1), m(t2, (regs->cx))
#define SYSCALL_PT_ARG1(m, t1) m(t1, (regs->bx))
#define SYSCALL_PT_ARGS(x, ...) SYSCALL_PT_ARG##x(__VA_ARGS__)
#define __SC_COMPAT_CAST(t, a) \
(__typeof(__builtin_choose_expr(__TYPE_IS_L(t), 0, 0U))) \
(unsigned int)a
/* Mapping of registers to parameters for syscalls on i386 */
#define SC_IA32_REGS_TO_ARGS(x, ...) \
__MAP(x,__SC_ARGS \
,,(unsigned int)regs->bx,,(unsigned int)regs->cx \
,,(unsigned int)regs->dx,,(unsigned int)regs->si \
,,(unsigned int)regs->di,,(unsigned int)regs->bp)
SYSCALL_PT_ARGS(x, __SC_COMPAT_CAST, \
__MAP(x, __SC_TYPE, __VA_ARGS__)) \
#ifdef CONFIG_IA32_EMULATION
/*

View File

@@ -101,7 +101,7 @@
".popsection\n\t"
#define UNWIND_HINT_SAVE UNWIND_HINT(0, 0, UNWIND_HINT_TYPE_SAVE, 0)
#define UNWIND_HINT_EMPTY
#define UNWIND_HINT_RESTORE UNWIND_HINT(0, 0, UNWIND_HINT_TYPE_RESTORE, 0)
#endif /* __ASSEMBLY__ */

View File

@@ -374,6 +374,17 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
u8 insn_buff[MAX_PATCH_LEN];
DPRINTK("alt table %px, -> %px", start, end);
/*
* In the case CONFIG_X86_5LEVEL=y, KASAN_SHADOW_START is defined using
* cpu_feature_enabled(X86_FEATURE_LA57) and is therefore patched here.
* During the process, KASAN becomes confused seeing partial LA57
* conversion and triggers a false-positive out-of-bound report.
*
* Disable KASAN until the patching is complete.
*/
kasan_disable_current();
/*
* The scan order should be from start to end. A later scanned
* alternative code can overwrite previously scanned alternative code.
@@ -434,6 +445,8 @@ void __init_or_module noinline apply_alternatives(struct alt_instr *start,
text_poke_early(instr, insn_buff, insn_buff_sz);
}
kasan_enable_current();
}
#ifdef CONFIG_SMP

View File

@@ -277,15 +277,6 @@ static void init_amd_k6(struct cpuinfo_x86 *c)
return;
}
#endif
/*
* Work around Erratum 1386. The XSAVES instruction malfunctions in
* certain circumstances on Zen1/2 uarch, and not all parts have had
* updated microcode at the time of writing (March 2023).
*
* Affected parts all have no supervisor XSAVE states, meaning that
* the XSAVEC instruction (which works fine) is equivalent.
*/
clear_cpu_cap(c, X86_FEATURE_XSAVES);
}
static void init_amd_k7(struct cpuinfo_x86 *c)
@@ -989,6 +980,17 @@ static void init_amd_zn(struct cpuinfo_x86 *c)
if (c->x86 == 0x19 && !cpu_has(c, X86_FEATURE_BTC_NO))
set_cpu_cap(c, X86_FEATURE_BTC_NO);
}
/*
* Work around Erratum 1386. The XSAVES instruction malfunctions in
* certain circumstances on Zen1/2 uarch, and not all parts have had
* updated microcode at the time of writing (March 2023).
*
* Affected parts all have no supervisor XSAVE states, meaning that
* the XSAVEC instruction (which works fine) is equivalent.
*/
if (c->x86 == 0x17)
clear_cpu_cap(c, X86_FEATURE_XSAVES);
}
static bool cpu_has_zenbleed_microcode(void)
@@ -996,11 +998,11 @@ static bool cpu_has_zenbleed_microcode(void)
u32 good_rev = 0;
switch (boot_cpu_data.x86_model) {
case 0x30 ... 0x3f: good_rev = 0x0830107a; break;
case 0x60 ... 0x67: good_rev = 0x0860010b; break;
case 0x68 ... 0x6f: good_rev = 0x08608105; break;
case 0x70 ... 0x7f: good_rev = 0x08701032; break;
case 0xa0 ... 0xaf: good_rev = 0x08a00008; break;
case 0x30 ... 0x3f: good_rev = 0x0830107b; break;
case 0x60 ... 0x67: good_rev = 0x0860010c; break;
case 0x68 ... 0x6f: good_rev = 0x08608107; break;
case 0x70 ... 0x7f: good_rev = 0x08701033; break;
case 0xa0 ... 0xaf: good_rev = 0x08a00009; break;
default:
return false;

View File

@@ -1153,19 +1153,21 @@ spectre_v2_user_select_mitigation(void)
}
/*
* If no STIBP, enhanced IBRS is enabled, or SMT impossible, STIBP
* If no STIBP, Intel enhanced IBRS is enabled, or SMT impossible, STIBP
* is not required.
*
* Enhanced IBRS also protects against cross-thread branch target
* Intel's Enhanced IBRS also protects against cross-thread branch target
* injection in user-mode as the IBRS bit remains always set which
* implicitly enables cross-thread protections. However, in legacy IBRS
* mode, the IBRS bit is set only on kernel entry and cleared on return
* to userspace. This disables the implicit cross-thread protection,
* so allow for STIBP to be selected in that case.
* to userspace. AMD Automatic IBRS also does not protect userspace.
* These modes therefore disable the implicit cross-thread protection,
* so allow for STIBP to be selected in those cases.
*/
if (!boot_cpu_has(X86_FEATURE_STIBP) ||
!smt_possible ||
spectre_v2_in_eibrs_mode(spectre_v2_enabled))
(spectre_v2_in_eibrs_mode(spectre_v2_enabled) &&
!boot_cpu_has(X86_FEATURE_AUTOIBRS)))
return;
/*
@@ -1187,9 +1189,9 @@ static const char * const spectre_v2_strings[] = {
[SPECTRE_V2_NONE] = "Vulnerable",
[SPECTRE_V2_RETPOLINE] = "Mitigation: Retpolines",
[SPECTRE_V2_LFENCE] = "Mitigation: LFENCE",
[SPECTRE_V2_EIBRS] = "Mitigation: Enhanced IBRS",
[SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced IBRS + LFENCE",
[SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced IBRS + Retpolines",
[SPECTRE_V2_EIBRS] = "Mitigation: Enhanced / Automatic IBRS",
[SPECTRE_V2_EIBRS_LFENCE] = "Mitigation: Enhanced / Automatic IBRS + LFENCE",
[SPECTRE_V2_EIBRS_RETPOLINE] = "Mitigation: Enhanced / Automatic IBRS + Retpolines",
[SPECTRE_V2_IBRS] = "Mitigation: IBRS",
};
@@ -1258,7 +1260,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
cmd == SPECTRE_V2_CMD_EIBRS_LFENCE ||
cmd == SPECTRE_V2_CMD_EIBRS_RETPOLINE) &&
!boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) {
pr_err("%s selected but CPU doesn't have eIBRS. Switching to AUTO select\n",
pr_err("%s selected but CPU doesn't have Enhanced or Automatic IBRS. Switching to AUTO select\n",
mitigation_options[i].option);
return SPECTRE_V2_CMD_AUTO;
}
@@ -1436,8 +1438,12 @@ static void __init spectre_v2_select_mitigation(void)
pr_err(SPECTRE_V2_EIBRS_EBPF_MSG);
if (spectre_v2_in_ibrs_mode(mode)) {
x86_spec_ctrl_base |= SPEC_CTRL_IBRS;
update_spec_ctrl(x86_spec_ctrl_base);
if (boot_cpu_has(X86_FEATURE_AUTOIBRS)) {
msr_set_bit(MSR_EFER, _EFER_AUTOIBRS);
} else {
x86_spec_ctrl_base |= SPEC_CTRL_IBRS;
update_spec_ctrl(x86_spec_ctrl_base);
}
}
switch (mode) {
@@ -1521,8 +1527,8 @@ static void __init spectre_v2_select_mitigation(void)
/*
* Retpoline protects the kernel, but doesn't protect firmware. IBRS
* and Enhanced IBRS protect firmware too, so enable IBRS around
* firmware calls only when IBRS / Enhanced IBRS aren't otherwise
* enabled.
* firmware calls only when IBRS / Enhanced / Automatic IBRS aren't
* otherwise enabled.
*
* Use "mode" to check Enhanced IBRS instead of boot_cpu_has(), because
* the user might select retpoline on the kernel command line and if
@@ -2144,69 +2150,69 @@ static const char * const l1tf_vmx_states[] = {
static ssize_t l1tf_show_state(char *buf)
{
if (l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_AUTO)
return sprintf(buf, "%s\n", L1TF_DEFAULT_MSG);
return sysfs_emit(buf, "%s\n", L1TF_DEFAULT_MSG);
if (l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_EPT_DISABLED ||
(l1tf_vmx_mitigation == VMENTER_L1D_FLUSH_NEVER &&
sched_smt_active())) {
return sprintf(buf, "%s; VMX: %s\n", L1TF_DEFAULT_MSG,
l1tf_vmx_states[l1tf_vmx_mitigation]);
return sysfs_emit(buf, "%s; VMX: %s\n", L1TF_DEFAULT_MSG,
l1tf_vmx_states[l1tf_vmx_mitigation]);
}
return sprintf(buf, "%s; VMX: %s, SMT %s\n", L1TF_DEFAULT_MSG,
l1tf_vmx_states[l1tf_vmx_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
return sysfs_emit(buf, "%s; VMX: %s, SMT %s\n", L1TF_DEFAULT_MSG,
l1tf_vmx_states[l1tf_vmx_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
}
static ssize_t itlb_multihit_show_state(char *buf)
{
if (itlb_multihit_kvm_mitigation)
return sprintf(buf, "KVM: Mitigation: Split huge pages\n");
return sysfs_emit(buf, "KVM: Mitigation: Split huge pages\n");
else
return sprintf(buf, "KVM: Vulnerable\n");
return sysfs_emit(buf, "KVM: Vulnerable\n");
}
#else
static ssize_t l1tf_show_state(char *buf)
{
return sprintf(buf, "%s\n", L1TF_DEFAULT_MSG);
return sysfs_emit(buf, "%s\n", L1TF_DEFAULT_MSG);
}
static ssize_t itlb_multihit_show_state(char *buf)
{
return sprintf(buf, "Processor vulnerable\n");
return sysfs_emit(buf, "Processor vulnerable\n");
}
#endif
static ssize_t mds_show_state(char *buf)
{
if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
return sprintf(buf, "%s; SMT Host state unknown\n",
mds_strings[mds_mitigation]);
return sysfs_emit(buf, "%s; SMT Host state unknown\n",
mds_strings[mds_mitigation]);
}
if (boot_cpu_has(X86_BUG_MSBDS_ONLY)) {
return sprintf(buf, "%s; SMT %s\n", mds_strings[mds_mitigation],
(mds_mitigation == MDS_MITIGATION_OFF ? "vulnerable" :
sched_smt_active() ? "mitigated" : "disabled"));
return sysfs_emit(buf, "%s; SMT %s\n", mds_strings[mds_mitigation],
(mds_mitigation == MDS_MITIGATION_OFF ? "vulnerable" :
sched_smt_active() ? "mitigated" : "disabled"));
}
return sprintf(buf, "%s; SMT %s\n", mds_strings[mds_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
return sysfs_emit(buf, "%s; SMT %s\n", mds_strings[mds_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
}
static ssize_t tsx_async_abort_show_state(char *buf)
{
if ((taa_mitigation == TAA_MITIGATION_TSX_DISABLED) ||
(taa_mitigation == TAA_MITIGATION_OFF))
return sprintf(buf, "%s\n", taa_strings[taa_mitigation]);
return sysfs_emit(buf, "%s\n", taa_strings[taa_mitigation]);
if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) {
return sprintf(buf, "%s; SMT Host state unknown\n",
taa_strings[taa_mitigation]);
return sysfs_emit(buf, "%s; SMT Host state unknown\n",
taa_strings[taa_mitigation]);
}
return sprintf(buf, "%s; SMT %s\n", taa_strings[taa_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
return sysfs_emit(buf, "%s; SMT %s\n", taa_strings[taa_mitigation],
sched_smt_active() ? "vulnerable" : "disabled");
}
static ssize_t mmio_stale_data_show_state(char *buf)
@@ -2228,7 +2234,8 @@ static ssize_t mmio_stale_data_show_state(char *buf)
static char *stibp_state(void)
{
if (spectre_v2_in_eibrs_mode(spectre_v2_enabled))
if (spectre_v2_in_eibrs_mode(spectre_v2_enabled) &&
!boot_cpu_has(X86_FEATURE_AUTOIBRS))
return "";
switch (spectre_v2_user_stibp) {
@@ -2274,33 +2281,33 @@ static char *pbrsb_eibrs_state(void)
static ssize_t spectre_v2_show_state(char *buf)
{
if (spectre_v2_enabled == SPECTRE_V2_LFENCE)
return sprintf(buf, "Vulnerable: LFENCE\n");
return sysfs_emit(buf, "Vulnerable: LFENCE\n");
if (spectre_v2_enabled == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled())
return sprintf(buf, "Vulnerable: eIBRS with unprivileged eBPF\n");
return sysfs_emit(buf, "Vulnerable: eIBRS with unprivileged eBPF\n");
if (sched_smt_active() && unprivileged_ebpf_enabled() &&
spectre_v2_enabled == SPECTRE_V2_EIBRS_LFENCE)
return sprintf(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n");
return sysfs_emit(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n");
return sprintf(buf, "%s%s%s%s%s%s%s\n",
spectre_v2_strings[spectre_v2_enabled],
ibpb_state(),
boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
stibp_state(),
boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "",
pbrsb_eibrs_state(),
spectre_v2_module_string());
return sysfs_emit(buf, "%s%s%s%s%s%s%s\n",
spectre_v2_strings[spectre_v2_enabled],
ibpb_state(),
boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "",
stibp_state(),
boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "",
pbrsb_eibrs_state(),
spectre_v2_module_string());
}
static ssize_t srbds_show_state(char *buf)
{
return sprintf(buf, "%s\n", srbds_strings[srbds_mitigation]);
return sysfs_emit(buf, "%s\n", srbds_strings[srbds_mitigation]);
}
static ssize_t retbleed_show_state(char *buf)
{
return sprintf(buf, "%s\n", retbleed_strings[retbleed_mitigation]);
return sysfs_emit(buf, "%s\n", retbleed_strings[retbleed_mitigation]);
}
static ssize_t gds_show_state(char *buf)
@@ -2312,26 +2319,26 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr
char *buf, unsigned int bug)
{
if (!boot_cpu_has_bug(bug))
return sprintf(buf, "Not affected\n");
return sysfs_emit(buf, "Not affected\n");
switch (bug) {
case X86_BUG_CPU_MELTDOWN:
if (boot_cpu_has(X86_FEATURE_PTI))
return sprintf(buf, "Mitigation: PTI\n");
return sysfs_emit(buf, "Mitigation: PTI\n");
if (hypervisor_is_type(X86_HYPER_XEN_PV))
return sprintf(buf, "Unknown (XEN PV detected, hypervisor mitigation required)\n");
return sysfs_emit(buf, "Unknown (XEN PV detected, hypervisor mitigation required)\n");
break;
case X86_BUG_SPECTRE_V1:
return sprintf(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]);
return sysfs_emit(buf, "%s\n", spectre_v1_strings[spectre_v1_mitigation]);
case X86_BUG_SPECTRE_V2:
return spectre_v2_show_state(buf);
case X86_BUG_SPEC_STORE_BYPASS:
return sprintf(buf, "%s\n", ssb_strings[ssb_mode]);
return sysfs_emit(buf, "%s\n", ssb_strings[ssb_mode]);
case X86_BUG_L1TF:
if (boot_cpu_has(X86_FEATURE_L1TF_PTEINV))
@@ -2364,7 +2371,7 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr
break;
}
return sprintf(buf, "Vulnerable\n");
return sysfs_emit(buf, "Vulnerable\n");
}
ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, char *buf)

View File

@@ -1100,8 +1100,8 @@ static const __initconst struct x86_cpu_id cpu_vuln_whitelist[] = {
VULNWL_AMD(0x12, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
/* FAMILY_ANY must be last, otherwise 0x0f - 0x12 matches won't work */
VULNWL_AMD(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
VULNWL_HYGON(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO),
VULNWL_AMD(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB),
VULNWL_HYGON(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB),
/* Zhaoxin Family 7 */
VULNWL(CENTAUR, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_MMIO),
@@ -1220,8 +1220,16 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)
!cpu_has(c, X86_FEATURE_AMD_SSB_NO))
setup_force_cpu_bug(X86_BUG_SPEC_STORE_BYPASS);
if (ia32_cap & ARCH_CAP_IBRS_ALL)
/*
* AMD's AutoIBRS is equivalent to Intel's eIBRS - use the Intel feature
* flag and protect from vendor-specific bugs via the whitelist.
*/
if ((ia32_cap & ARCH_CAP_IBRS_ALL) || cpu_has(c, X86_FEATURE_AUTOIBRS)) {
setup_force_cpu_cap(X86_FEATURE_IBRS_ENHANCED);
if (!cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) &&
!(ia32_cap & ARCH_CAP_PBRSB_NO))
setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB);
}
if (!cpu_matches(cpu_vuln_whitelist, NO_MDS) &&
!(ia32_cap & ARCH_CAP_MDS_NO)) {
@@ -1283,11 +1291,6 @@ static void __init cpu_set_bug_bits(struct cpuinfo_x86 *c)
setup_force_cpu_bug(X86_BUG_RETBLEED);
}
if (cpu_has(c, X86_FEATURE_IBRS_ENHANCED) &&
!cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) &&
!(ia32_cap & ARCH_CAP_PBRSB_NO))
setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB);
/*
* Check if CPU is vulnerable to GDS. If running in a virtual machine on
* an affected processor, the VMM may have disabled the use of GATHER by

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