2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00

ASoC: Fixes for v6.15

A moderately large batch of fixes for v6.15, many driver specific
 including cleanups for the enabling of the Cirrus KUnit tests and a fix
 for a nasty crash on resume on AMD systems.  We also have one core fix,
 for an ordering issue between DAPM and DPCM which could leave things
 incorrectly unpowered.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmgTGBAACgkQJNaLcl1U
 h9BHlgf/b22RCBkg82fhlZkXDRBgygiNmWBVX/TbVXM/diUl6x+4Kq9fSRNo3VRI
 WPkF9KADvoulu143YXrVqbU8werfY+uUVYSTNJ6QSbIptx/r/1bhYCC5BofpXZ+a
 fEB1a/yiVdw+T6bWjBPjbyQZqdO6PcCSH3ITYUSV+0hoHxQPMjQpr9RvekQG73Er
 kg0b59sulspreRI2CqRV7pV3bj62gfUfnscaRARydLVXZXxUsCtyr72NYVnCeg2/
 3UX7mljN88wj6fPTJEmfkSI8ntCcdAFXkqYKoTzPlDv2haHRgh7oBqNEkKPa7vrh
 qqVL8yFBlra2V9q9m1FWnkX0kRIZKA==
 =9DpM
 -----END PGP SIGNATURE-----

Merge tag 'asoc-fix-v6.15-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.15

A moderately large batch of fixes for v6.15, many driver specific
including cleanups for the enabling of the Cirrus KUnit tests and a fix
for a nasty crash on resume on AMD systems.  We also have one core fix,
for an ordering issue between DAPM and DPCM which could leave things
incorrectly unpowered.
This commit is contained in:
Takashi Iwai 2025-05-01 10:22:20 +02:00
commit 6e5bea1c93
1127 changed files with 13880 additions and 7671 deletions

View File

@ -92,6 +92,7 @@ ForEachMacros:
- '__rq_for_each_bio' - '__rq_for_each_bio'
- '__shost_for_each_device' - '__shost_for_each_device'
- '__sym_for_each' - '__sym_for_each'
- '_for_each_counter'
- 'apei_estatus_for_each_section' - 'apei_estatus_for_each_section'
- 'ata_for_each_dev' - 'ata_for_each_dev'
- 'ata_for_each_link' - 'ata_for_each_link'
@ -141,11 +142,14 @@ ForEachMacros:
- 'damon_for_each_target_safe' - 'damon_for_each_target_safe'
- 'damos_for_each_filter' - 'damos_for_each_filter'
- 'damos_for_each_filter_safe' - 'damos_for_each_filter_safe'
- 'damos_for_each_ops_filter'
- 'damos_for_each_ops_filter_safe'
- 'damos_for_each_quota_goal' - 'damos_for_each_quota_goal'
- 'damos_for_each_quota_goal_safe' - 'damos_for_each_quota_goal_safe'
- 'data__for_each_file' - 'data__for_each_file'
- 'data__for_each_file_new' - 'data__for_each_file_new'
- 'data__for_each_file_start' - 'data__for_each_file_start'
- 'def_for_each_cpu'
- 'device_for_each_child_node' - 'device_for_each_child_node'
- 'device_for_each_child_node_scoped' - 'device_for_each_child_node_scoped'
- 'dma_fence_array_for_each' - 'dma_fence_array_for_each'
@ -176,6 +180,7 @@ ForEachMacros:
- 'drm_for_each_privobj' - 'drm_for_each_privobj'
- 'drm_gem_for_each_gpuvm_bo' - 'drm_gem_for_each_gpuvm_bo'
- 'drm_gem_for_each_gpuvm_bo_safe' - 'drm_gem_for_each_gpuvm_bo_safe'
- 'drm_gpusvm_for_each_range'
- 'drm_gpuva_for_each_op' - 'drm_gpuva_for_each_op'
- 'drm_gpuva_for_each_op_from_reverse' - 'drm_gpuva_for_each_op_from_reverse'
- 'drm_gpuva_for_each_op_reverse' - 'drm_gpuva_for_each_op_reverse'
@ -216,8 +221,10 @@ ForEachMacros:
- 'for_each_active_dev_scope' - 'for_each_active_dev_scope'
- 'for_each_active_drhd_unit' - 'for_each_active_drhd_unit'
- 'for_each_active_iommu' - 'for_each_active_iommu'
- 'for_each_active_irq'
- 'for_each_active_route' - 'for_each_active_route'
- 'for_each_aggr_pgid' - 'for_each_aggr_pgid'
- 'for_each_alloc_capable_rdt_resource'
- 'for_each_and_bit' - 'for_each_and_bit'
- 'for_each_andnot_bit' - 'for_each_andnot_bit'
- 'for_each_available_child_of_node' - 'for_each_available_child_of_node'
@ -228,6 +235,7 @@ ForEachMacros:
- 'for_each_btf_ext_rec' - 'for_each_btf_ext_rec'
- 'for_each_btf_ext_sec' - 'for_each_btf_ext_sec'
- 'for_each_bvec' - 'for_each_bvec'
- 'for_each_capable_rdt_resource'
- 'for_each_card_auxs' - 'for_each_card_auxs'
- 'for_each_card_auxs_safe' - 'for_each_card_auxs_safe'
- 'for_each_card_components' - 'for_each_card_components'
@ -241,6 +249,7 @@ ForEachMacros:
- 'for_each_cgroup_storage_type' - 'for_each_cgroup_storage_type'
- 'for_each_child_of_node' - 'for_each_child_of_node'
- 'for_each_child_of_node_scoped' - 'for_each_child_of_node_scoped'
- 'for_each_child_of_node_with_prefix'
- 'for_each_clear_bit' - 'for_each_clear_bit'
- 'for_each_clear_bit_from' - 'for_each_clear_bit_from'
- 'for_each_clear_bitrange' - 'for_each_clear_bitrange'
@ -296,6 +305,7 @@ ForEachMacros:
- 'for_each_group_member_head' - 'for_each_group_member_head'
- 'for_each_hstate' - 'for_each_hstate'
- 'for_each_hwgpio' - 'for_each_hwgpio'
- 'for_each_hwgpio_in_range'
- 'for_each_if' - 'for_each_if'
- 'for_each_inject_fn' - 'for_each_inject_fn'
- 'for_each_insn' - 'for_each_insn'
@ -304,6 +314,7 @@ ForEachMacros:
- 'for_each_intid' - 'for_each_intid'
- 'for_each_iommu' - 'for_each_iommu'
- 'for_each_ip_tunnel_rcu' - 'for_each_ip_tunnel_rcu'
- 'for_each_irq_desc'
- 'for_each_irq_nr' - 'for_each_irq_nr'
- 'for_each_lang' - 'for_each_lang'
- 'for_each_link_ch_maps' - 'for_each_link_ch_maps'
@ -324,6 +335,8 @@ ForEachMacros:
- 'for_each_missing_reg' - 'for_each_missing_reg'
- 'for_each_mle_subelement' - 'for_each_mle_subelement'
- 'for_each_mod_mem_type' - 'for_each_mod_mem_type'
- 'for_each_mon_capable_rdt_resource'
- 'for_each_mp_bvec'
- 'for_each_net' - 'for_each_net'
- 'for_each_net_continue_reverse' - 'for_each_net_continue_reverse'
- 'for_each_net_rcu' - 'for_each_net_rcu'
@ -351,6 +364,7 @@ ForEachMacros:
- 'for_each_node_by_name' - 'for_each_node_by_name'
- 'for_each_node_by_type' - 'for_each_node_by_type'
- 'for_each_node_mask' - 'for_each_node_mask'
- 'for_each_node_numadist'
- 'for_each_node_state' - 'for_each_node_state'
- 'for_each_node_with_cpus' - 'for_each_node_with_cpus'
- 'for_each_node_with_property' - 'for_each_node_with_property'
@ -359,6 +373,8 @@ ForEachMacros:
- 'for_each_of_allnodes' - 'for_each_of_allnodes'
- 'for_each_of_allnodes_from' - 'for_each_of_allnodes_from'
- 'for_each_of_cpu_node' - 'for_each_of_cpu_node'
- 'for_each_of_graph_port'
- 'for_each_of_graph_port_endpoint'
- 'for_each_of_pci_range' - 'for_each_of_pci_range'
- 'for_each_old_connector_in_state' - 'for_each_old_connector_in_state'
- 'for_each_old_crtc_in_state' - 'for_each_old_crtc_in_state'
@ -372,9 +388,11 @@ ForEachMacros:
- 'for_each_oldnew_plane_in_state_reverse' - 'for_each_oldnew_plane_in_state_reverse'
- 'for_each_oldnew_private_obj_in_state' - 'for_each_oldnew_private_obj_in_state'
- 'for_each_online_cpu' - 'for_each_online_cpu'
- 'for_each_online_cpu_wrap'
- 'for_each_online_node' - 'for_each_online_node'
- 'for_each_online_pgdat' - 'for_each_online_pgdat'
- 'for_each_or_bit' - 'for_each_or_bit'
- 'for_each_page_ext'
- 'for_each_path' - 'for_each_path'
- 'for_each_pci_bridge' - 'for_each_pci_bridge'
- 'for_each_pci_dev' - 'for_each_pci_dev'
@ -382,8 +400,10 @@ ForEachMacros:
- 'for_each_physmem_range' - 'for_each_physmem_range'
- 'for_each_populated_zone' - 'for_each_populated_zone'
- 'for_each_possible_cpu' - 'for_each_possible_cpu'
- 'for_each_possible_cpu_wrap'
- 'for_each_present_blessed_reg' - 'for_each_present_blessed_reg'
- 'for_each_present_cpu' - 'for_each_present_cpu'
- 'for_each_present_section_nr'
- 'for_each_prime_number' - 'for_each_prime_number'
- 'for_each_prime_number_from' - 'for_each_prime_number_from'
- 'for_each_probe_cache_entry' - 'for_each_probe_cache_entry'
@ -396,6 +416,7 @@ ForEachMacros:
- 'for_each_prop_dlc_cpus' - 'for_each_prop_dlc_cpus'
- 'for_each_prop_dlc_platforms' - 'for_each_prop_dlc_platforms'
- 'for_each_property_of_node' - 'for_each_property_of_node'
- 'for_each_rdt_resource'
- 'for_each_reg' - 'for_each_reg'
- 'for_each_reg_filtered' - 'for_each_reg_filtered'
- 'for_each_reloc' - 'for_each_reloc'
@ -434,10 +455,10 @@ ForEachMacros:
- 'for_each_subelement_id' - 'for_each_subelement_id'
- 'for_each_sublist' - 'for_each_sublist'
- 'for_each_subsystem' - 'for_each_subsystem'
- 'for_each_suite'
- 'for_each_supported_activate_fn' - 'for_each_supported_activate_fn'
- 'for_each_supported_inject_fn' - 'for_each_supported_inject_fn'
- 'for_each_sym' - 'for_each_sym'
- 'for_each_test'
- 'for_each_thread' - 'for_each_thread'
- 'for_each_token' - 'for_each_token'
- 'for_each_unicast_dest_pgid' - 'for_each_unicast_dest_pgid'
@ -499,8 +520,10 @@ ForEachMacros:
- 'idr_for_each_entry_continue' - 'idr_for_each_entry_continue'
- 'idr_for_each_entry_continue_ul' - 'idr_for_each_entry_continue_ul'
- 'idr_for_each_entry_ul' - 'idr_for_each_entry_ul'
- 'iio_for_each_active_channel'
- 'in_dev_for_each_ifa_rcu' - 'in_dev_for_each_ifa_rcu'
- 'in_dev_for_each_ifa_rtnl' - 'in_dev_for_each_ifa_rtnl'
- 'in_dev_for_each_ifa_rtnl_net'
- 'inet_bind_bucket_for_each' - 'inet_bind_bucket_for_each'
- 'interval_tree_for_each_span' - 'interval_tree_for_each_span'
- 'intlist__for_each_entry' - 'intlist__for_each_entry'
@ -542,7 +565,6 @@ ForEachMacros:
- 'list_for_each_prev' - 'list_for_each_prev'
- 'list_for_each_prev_safe' - 'list_for_each_prev_safe'
- 'list_for_each_rcu' - 'list_for_each_rcu'
- 'list_for_each_reverse'
- 'list_for_each_safe' - 'list_for_each_safe'
- 'llist_for_each' - 'llist_for_each'
- 'llist_for_each_entry' - 'llist_for_each_entry'
@ -552,6 +574,7 @@ ForEachMacros:
- 'map__for_each_symbol' - 'map__for_each_symbol'
- 'map__for_each_symbol_by_name' - 'map__for_each_symbol_by_name'
- 'mas_for_each' - 'mas_for_each'
- 'mas_for_each_rev'
- 'mci_for_each_dimm' - 'mci_for_each_dimm'
- 'media_device_for_each_entity' - 'media_device_for_each_entity'
- 'media_device_for_each_intf' - 'media_device_for_each_intf'
@ -561,10 +584,15 @@ ForEachMacros:
- 'media_pipeline_for_each_entity' - 'media_pipeline_for_each_entity'
- 'media_pipeline_for_each_pad' - 'media_pipeline_for_each_pad'
- 'mlx5_lag_for_each_peer_mdev' - 'mlx5_lag_for_each_peer_mdev'
- 'mptcp_for_each_subflow'
- 'msi_domain_for_each_desc' - 'msi_domain_for_each_desc'
- 'msi_for_each_desc' - 'msi_for_each_desc'
- 'mt_for_each' - 'mt_for_each'
- 'nanddev_io_for_each_block'
- 'nanddev_io_for_each_page' - 'nanddev_io_for_each_page'
- 'neigh_for_each_in_bucket'
- 'neigh_for_each_in_bucket_rcu'
- 'neigh_for_each_in_bucket_safe'
- 'netdev_for_each_lower_dev' - 'netdev_for_each_lower_dev'
- 'netdev_for_each_lower_private' - 'netdev_for_each_lower_private'
- 'netdev_for_each_lower_private_rcu' - 'netdev_for_each_lower_private_rcu'
@ -604,11 +632,11 @@ ForEachMacros:
- 'perf_evlist__for_each_entry_safe' - 'perf_evlist__for_each_entry_safe'
- 'perf_evlist__for_each_evsel' - 'perf_evlist__for_each_evsel'
- 'perf_evlist__for_each_mmap' - 'perf_evlist__for_each_mmap'
- 'perf_evsel_for_each_per_thread_period_safe'
- 'perf_hpp_list__for_each_format' - 'perf_hpp_list__for_each_format'
- 'perf_hpp_list__for_each_format_safe' - 'perf_hpp_list__for_each_format_safe'
- 'perf_hpp_list__for_each_sort_list' - 'perf_hpp_list__for_each_sort_list'
- 'perf_hpp_list__for_each_sort_list_safe' - 'perf_hpp_list__for_each_sort_list_safe'
- 'perf_tool_event__for_each_event'
- 'plist_for_each' - 'plist_for_each'
- 'plist_for_each_continue' - 'plist_for_each_continue'
- 'plist_for_each_entry' - 'plist_for_each_entry'
@ -627,7 +655,6 @@ ForEachMacros:
- 'rdma_for_each_block' - 'rdma_for_each_block'
- 'rdma_for_each_port' - 'rdma_for_each_port'
- 'rdma_umem_for_each_dma_block' - 'rdma_umem_for_each_dma_block'
- 'resort_rb__for_each_entry'
- 'resource_list_for_each_entry' - 'resource_list_for_each_entry'
- 'resource_list_for_each_entry_safe' - 'resource_list_for_each_entry_safe'
- 'rhl_for_each_entry_rcu' - 'rhl_for_each_entry_rcu'
@ -658,6 +685,7 @@ ForEachMacros:
- 'shost_for_each_device' - 'shost_for_each_device'
- 'sk_for_each' - 'sk_for_each'
- 'sk_for_each_bound' - 'sk_for_each_bound'
- 'sk_for_each_bound_safe'
- 'sk_for_each_entry_offset_rcu' - 'sk_for_each_entry_offset_rcu'
- 'sk_for_each_from' - 'sk_for_each_from'
- 'sk_for_each_rcu' - 'sk_for_each_rcu'
@ -680,7 +708,11 @@ ForEachMacros:
- 'tb_property_for_each' - 'tb_property_for_each'
- 'tcf_act_for_each_action' - 'tcf_act_for_each_action'
- 'tcf_exts_for_each_action' - 'tcf_exts_for_each_action'
- 'test_suite__for_each_test_case'
- 'tool_pmu__for_each_event'
- 'ttm_bo_lru_for_each_reserved_guarded'
- 'ttm_resource_manager_for_each_res' - 'ttm_resource_manager_for_each_res'
- 'udp_lrpa_for_each_entry_rcu'
- 'udp_portaddr_for_each_entry' - 'udp_portaddr_for_each_entry'
- 'udp_portaddr_for_each_entry_rcu' - 'udp_portaddr_for_each_entry_rcu'
- 'usb_hub_for_each_child' - 'usb_hub_for_each_child'
@ -691,6 +723,7 @@ ForEachMacros:
- 'v4l2_m2m_for_each_src_buf_safe' - 'v4l2_m2m_for_each_src_buf_safe'
- 'virtio_device_for_each_vq' - 'virtio_device_for_each_vq'
- 'while_for_each_ftrace_op' - 'while_for_each_ftrace_op'
- 'workloads__for_each'
- 'xa_for_each' - 'xa_for_each'
- 'xa_for_each_marked' - 'xa_for_each_marked'
- 'xa_for_each_range' - 'xa_for_each_range'

View File

@ -322,6 +322,7 @@ Jayachandran C <c.jayachandran@gmail.com> <jchandra@broadcom.com>
Jayachandran C <c.jayachandran@gmail.com> <jchandra@digeo.com> Jayachandran C <c.jayachandran@gmail.com> <jchandra@digeo.com>
Jayachandran C <c.jayachandran@gmail.com> <jnair@caviumnetworks.com> Jayachandran C <c.jayachandran@gmail.com> <jnair@caviumnetworks.com>
<jean-philippe@linaro.org> <jean-philippe.brucker@arm.com> <jean-philippe@linaro.org> <jean-philippe.brucker@arm.com>
Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org> <jeanmichel.hautbois@ideasonboard.com>
Jean Tourrilhes <jt@hpl.hp.com> Jean Tourrilhes <jt@hpl.hp.com>
Jeevan Shriram <quic_jshriram@quicinc.com> <jshriram@codeaurora.org> Jeevan Shriram <quic_jshriram@quicinc.com> <jshriram@codeaurora.org>
Jeff Garzik <jgarzik@pretzel.yyz.us> Jeff Garzik <jgarzik@pretzel.yyz.us>
@ -438,6 +439,8 @@ Linus Lüssing <linus.luessing@c0d3.blue> <ll@simonwunderlich.de>
Li Yang <leoyang.li@nxp.com> <leoli@freescale.com> Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org> Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
Lior David <quic_liord@quicinc.com> <liord@codeaurora.org> Lior David <quic_liord@quicinc.com> <liord@codeaurora.org>
Loic Poulain <loic.poulain@oss.qualcomm.com> <loic.poulain@linaro.org>
Loic Poulain <loic.poulain@oss.qualcomm.com> <loic.poulain@intel.com>
Lorenzo Pieralisi <lpieralisi@kernel.org> <lorenzo.pieralisi@arm.com> Lorenzo Pieralisi <lpieralisi@kernel.org> <lorenzo.pieralisi@arm.com>
Lorenzo Stoakes <lorenzo.stoakes@oracle.com> <lstoakes@gmail.com> Lorenzo Stoakes <lorenzo.stoakes@oracle.com> <lstoakes@gmail.com>
Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net> Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net>

View File

@ -2071,6 +2071,10 @@ S: 660 Harvard Ave. #7
S: Santa Clara, CA 95051 S: Santa Clara, CA 95051
S: USA S: USA
N: Joonsoo Kim
E: iamjoonsoo.kim@lge.com
D: Slab allocators
N: Kukjin Kim N: Kukjin Kim
E: kgene@kernel.org E: kgene@kernel.org
D: Samsung S3C, S5P and Exynos ARM architectures D: Samsung S3C, S5P and Exynos ARM architectures

View File

@ -77,7 +77,7 @@ Description:
What: /sys/block/<disk>/diskseq What: /sys/block/<disk>/diskseq
Date: February 2021 Date: February 2021
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: Description:
The /sys/block/<disk>/diskseq files reports the disk The /sys/block/<disk>/diskseq files reports the disk
sequence number, which is a monotonically increasing sequence number, which is a monotonically increasing

View File

@ -1604,3 +1604,35 @@ Description:
prevent the UFS from frequently performing clock gating/ungating. prevent the UFS from frequently performing clock gating/ungating.
The attribute is read/write. The attribute is read/write.
What: /sys/bus/platform/drivers/ufshcd/*/device_lvl_exception_count
What: /sys/bus/platform/devices/*.ufs/device_lvl_exception_count
Date: March 2025
Contact: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Description:
This attribute is applicable to ufs devices compliant to the
JEDEC specifications version 4.1 or later. The
device_lvl_exception_count is a counter indicating the number of
times the device level exceptions have occurred since the last
time this variable is reset. Writing a 0 value to this
attribute will reset the device_lvl_exception_count. If the
device_lvl_exception_count reads a positive value, the user
application should read the device_lvl_exception_id attribute to
know more information about the exception.
The attribute is read/write.
What: /sys/bus/platform/drivers/ufshcd/*/device_lvl_exception_id
What: /sys/bus/platform/devices/*.ufs/device_lvl_exception_id
Date: March 2025
Contact: Bao D. Nguyen <quic_nguyenb@quicinc.com>
Description:
Reading the device_lvl_exception_id returns the
qDeviceLevelExceptionID attribute of the ufs device JEDEC
specification version 4.1. The definition of the
qDeviceLevelExceptionID is the ufs device vendor specific
implementation. Refer to the device manufacturer datasheet for
more information on the meaning of the qDeviceLevelExceptionID
attribute value.
The attribute is read only.

View File

@ -1,7 +1,7 @@
What: /sys/kernel/reboot What: /sys/kernel/reboot
Date: November 2020 Date: November 2020
KernelVersion: 5.11 KernelVersion: 5.11
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: Interface to set the kernel reboot behavior, similarly to Description: Interface to set the kernel reboot behavior, similarly to
what can be done via the reboot= cmdline option. what can be done via the reboot= cmdline option.
(see Documentation/admin-guide/kernel-parameters.txt) (see Documentation/admin-guide/kernel-parameters.txt)
@ -9,25 +9,25 @@ Description: Interface to set the kernel reboot behavior, similarly to
What: /sys/kernel/reboot/mode What: /sys/kernel/reboot/mode
Date: November 2020 Date: November 2020
KernelVersion: 5.11 KernelVersion: 5.11
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: Reboot mode. Valid values are: cold warm hard soft gpio Description: Reboot mode. Valid values are: cold warm hard soft gpio
What: /sys/kernel/reboot/type What: /sys/kernel/reboot/type
Date: November 2020 Date: November 2020
KernelVersion: 5.11 KernelVersion: 5.11
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: Reboot type. Valid values are: bios acpi kbd triple efi pci Description: Reboot type. Valid values are: bios acpi kbd triple efi pci
What: /sys/kernel/reboot/cpu What: /sys/kernel/reboot/cpu
Date: November 2020 Date: November 2020
KernelVersion: 5.11 KernelVersion: 5.11
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: CPU number to use to reboot. Description: CPU number to use to reboot.
What: /sys/kernel/reboot/force What: /sys/kernel/reboot/force
Date: November 2020 Date: November 2020
KernelVersion: 5.11 KernelVersion: 5.11
Contact: Matteo Croce <mcroce@microsoft.com> Contact: Matteo Croce <teknoraver@meta.com>
Description: Don't wait for any other CPUs on reboot and Description: Don't wait for any other CPUs on reboot and
avoid anything that could hang. avoid anything that could hang.

View File

@ -22,3 +22,4 @@ are configurable at compile, boot or run time.
srso srso
gather_data_sampling gather_data_sampling
reg-file-data-sampling reg-file-data-sampling
rsb

View File

@ -0,0 +1,268 @@
.. SPDX-License-Identifier: GPL-2.0
=======================
RSB-related mitigations
=======================
.. warning::
Please keep this document up-to-date, otherwise you will be
volunteered to update it and convert it to a very long comment in
bugs.c!
Since 2018 there have been many Spectre CVEs related to the Return Stack
Buffer (RSB) (sometimes referred to as the Return Address Stack (RAS) or
Return Address Predictor (RAP) on AMD).
Information about these CVEs and how to mitigate them is scattered
amongst a myriad of microarchitecture-specific documents.
This document attempts to consolidate all the relevant information in
once place and clarify the reasoning behind the current RSB-related
mitigations. It's meant to be as concise as possible, focused only on
the current kernel mitigations: what are the RSB-related attack vectors
and how are they currently being mitigated?
It's *not* meant to describe how the RSB mechanism operates or how the
exploits work. More details about those can be found in the references
below.
Rather, this is basically a glorified comment, but too long to actually
be one. So when the next CVE comes along, a kernel developer can
quickly refer to this as a refresher to see what we're actually doing
and why.
At a high level, there are two classes of RSB attacks: RSB poisoning
(Intel and AMD) and RSB underflow (Intel only). They must each be
considered individually for each attack vector (and microarchitecture
where applicable).
----
RSB poisoning (Intel and AMD)
=============================
SpectreRSB
~~~~~~~~~~
RSB poisoning is a technique used by SpectreRSB [#spectre-rsb]_ where
an attacker poisons an RSB entry to cause a victim's return instruction
to speculate to an attacker-controlled address. This can happen when
there are unbalanced CALLs/RETs after a context switch or VMEXIT.
* All attack vectors can potentially be mitigated by flushing out any
poisoned RSB entries using an RSB filling sequence
[#intel-rsb-filling]_ [#amd-rsb-filling]_ when transitioning between
untrusted and trusted domains. But this has a performance impact and
should be avoided whenever possible.
.. DANGER::
**FIXME**: Currently we're flushing 32 entries. However, some CPU
models have more than 32 entries. The loop count needs to be
increased for those. More detailed information is needed about RSB
sizes.
* On context switch, the user->user mitigation requires ensuring the
RSB gets filled or cleared whenever IBPB gets written [#cond-ibpb]_
during a context switch:
* AMD:
On Zen 4+, IBPB (or SBPB [#amd-sbpb]_ if used) clears the RSB.
This is indicated by IBPB_RET in CPUID [#amd-ibpb-rsb]_.
On Zen < 4, the RSB filling sequence [#amd-rsb-filling]_ must be
always be done in addition to IBPB [#amd-ibpb-no-rsb]_. This is
indicated by X86_BUG_IBPB_NO_RET.
* Intel:
IBPB always clears the RSB:
"Software that executed before the IBPB command cannot control
the predicted targets of indirect branches executed after the
command on the same logical processor. The term indirect branch
in this context includes near return instructions, so these
predicted targets may come from the RSB." [#intel-ibpb-rsb]_
* On context switch, user->kernel attacks are prevented by SMEP. User
space can only insert user space addresses into the RSB. Even
non-canonical addresses can't be inserted due to the page gap at the
end of the user canonical address space reserved by TASK_SIZE_MAX.
A SMEP #PF at instruction fetch prevents the kernel from speculatively
executing user space.
* AMD:
"Finally, branches that are predicted as 'ret' instructions get
their predicted targets from the Return Address Predictor (RAP).
AMD recommends software use a RAP stuffing sequence (mitigation
V2-3 in [2]) and/or Supervisor Mode Execution Protection (SMEP)
to ensure that the addresses in the RAP are safe for
speculation. Collectively, we refer to these mitigations as "RAP
Protection"." [#amd-smep-rsb]_
* Intel:
"On processors with enhanced IBRS, an RSB overwrite sequence may
not suffice to prevent the predicted target of a near return
from using an RSB entry created in a less privileged predictor
mode. Software can prevent this by enabling SMEP (for
transitions from user mode to supervisor mode) and by having
IA32_SPEC_CTRL.IBRS set during VM exits." [#intel-smep-rsb]_
* On VMEXIT, guest->host attacks are mitigated by eIBRS (and PBRSB
mitigation if needed):
* AMD:
"When Automatic IBRS is enabled, the internal return address
stack used for return address predictions is cleared on VMEXIT."
[#amd-eibrs-vmexit]_
* Intel:
"On processors with enhanced IBRS, an RSB overwrite sequence may
not suffice to prevent the predicted target of a near return
from using an RSB entry created in a less privileged predictor
mode. Software can prevent this by enabling SMEP (for
transitions from user mode to supervisor mode) and by having
IA32_SPEC_CTRL.IBRS set during VM exits. Processors with
enhanced IBRS still support the usage model where IBRS is set
only in the OS/VMM for OSes that enable SMEP. To do this, such
processors will ensure that guest behavior cannot control the
RSB after a VM exit once IBRS is set, even if IBRS was not set
at the time of the VM exit." [#intel-eibrs-vmexit]_
Note that some Intel CPUs are susceptible to Post-barrier Return
Stack Buffer Predictions (PBRSB) [#intel-pbrsb]_, where the last
CALL from the guest can be used to predict the first unbalanced RET.
In this case the PBRSB mitigation is needed in addition to eIBRS.
AMD RETBleed / SRSO / Branch Type Confusion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
On AMD, poisoned RSB entries can also be created by the AMD RETBleed
variant [#retbleed-paper]_ [#amd-btc]_ or by Speculative Return Stack
Overflow [#amd-srso]_ (Inception [#inception-paper]_). The kernel
protects itself by replacing every RET in the kernel with a branch to a
single safe RET.
----
RSB underflow (Intel only)
==========================
RSB Alternate (RSBA) ("Intel Retbleed")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some Intel Skylake-generation CPUs are susceptible to the Intel variant
of RETBleed [#retbleed-paper]_ (Return Stack Buffer Underflow
[#intel-rsbu]_). If a RET is executed when the RSB buffer is empty due
to mismatched CALLs/RETs or returning from a deep call stack, the branch
predictor can fall back to using the Branch Target Buffer (BTB). If a
user forces a BTB collision then the RET can speculatively branch to a
user-controlled address.
* Note that RSB filling doesn't fully mitigate this issue. If there
are enough unbalanced RETs, the RSB may still underflow and fall back
to using a poisoned BTB entry.
* On context switch, user->user underflow attacks are mitigated by the
conditional IBPB [#cond-ibpb]_ on context switch which effectively
clears the BTB:
* "The indirect branch predictor barrier (IBPB) is an indirect branch
control mechanism that establishes a barrier, preventing software
that executed before the barrier from controlling the predicted
targets of indirect branches executed after the barrier on the same
logical processor." [#intel-ibpb-btb]_
* On context switch and VMEXIT, user->kernel and guest->host RSB
underflows are mitigated by IBRS or eIBRS:
* "Enabling IBRS (including enhanced IBRS) will mitigate the "RSBU"
attack demonstrated by the researchers. As previously documented,
Intel recommends the use of enhanced IBRS, where supported. This
includes any processor that enumerates RRSBA but not RRSBA_DIS_S."
[#intel-rsbu]_
However, note that eIBRS and IBRS do not mitigate intra-mode attacks.
Like RRSBA below, this is mitigated by clearing the BHB on kernel
entry.
As an alternative to classic IBRS, call depth tracking (combined with
retpolines) can be used to track kernel returns and fill the RSB when
it gets close to being empty.
Restricted RSB Alternate (RRSBA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some newer Intel CPUs have Restricted RSB Alternate (RRSBA) behavior,
which, similar to RSBA described above, also falls back to using the BTB
on RSB underflow. The only difference is that the predicted targets are
restricted to the current domain when eIBRS is enabled:
* "Restricted RSB Alternate (RRSBA) behavior allows alternate branch
predictors to be used by near RET instructions when the RSB is
empty. When eIBRS is enabled, the predicted targets of these
alternate predictors are restricted to those belonging to the
indirect branch predictor entries of the current prediction domain.
[#intel-eibrs-rrsba]_
When a CPU with RRSBA is vulnerable to Branch History Injection
[#bhi-paper]_ [#intel-bhi]_, an RSB underflow could be used for an
intra-mode BTI attack. This is mitigated by clearing the BHB on
kernel entry.
However if the kernel uses retpolines instead of eIBRS, it needs to
disable RRSBA:
* "Where software is using retpoline as a mitigation for BHI or
intra-mode BTI, and the processor both enumerates RRSBA and
enumerates RRSBA_DIS controls, it should disable this behavior."
[#intel-retpoline-rrsba]_
----
References
==========
.. [#spectre-rsb] `Spectre Returns! Speculation Attacks using the Return Stack Buffer <https://arxiv.org/pdf/1807.07940.pdf>`_
.. [#intel-rsb-filling] "Empty RSB Mitigation on Skylake-generation" in `Retpoline: A Branch Target Injection Mitigation <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/retpoline-branch-target-injection-mitigation.html#inpage-nav-5-1>`_
.. [#amd-rsb-filling] "Mitigation V2-3" in `Software Techniques for Managing Speculation <https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/software-techniques-for-managing-speculation.pdf>`_
.. [#cond-ibpb] Whether IBPB is written depends on whether the prev and/or next task is protected from Spectre attacks. It typically requires opting in per task or system-wide. For more details see the documentation for the ``spectre_v2_user`` cmdline option in Documentation/admin-guide/kernel-parameters.txt.
.. [#amd-sbpb] IBPB without flushing of branch type predictions. Only exists for AMD.
.. [#amd-ibpb-rsb] "Function 8000_0008h -- Processor Capacity Parameters and Extended Feature Identification" in `AMD64 Architecture Programmer's Manual Volume 3: General-Purpose and System Instructions <https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24594.pdf>`_. SBPB behaves the same way according to `this email <https://lore.kernel.org/5175b163a3736ca5fd01cedf406735636c99a>`_.
.. [#amd-ibpb-no-rsb] `Spectre Attacks: Exploiting Speculative Execution <https://comsec.ethz.ch/wp-content/files/ibpb_sp25.pdf>`_
.. [#intel-ibpb-rsb] "Introduction" in `Post-barrier Return Stack Buffer Predictions / CVE-2022-26373 / INTEL-SA-00706 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/post-barrier-return-stack-buffer-predictions.html>`_
.. [#amd-smep-rsb] "Existing Mitigations" in `Technical Guidance for Mitigating Branch Type Confusion <https://www.amd.com/content/dam/amd/en/documents/resources/technical-guidance-for-mitigating-branch-type-confusion.pdf>`_
.. [#intel-smep-rsb] "Enhanced IBRS" in `Indirect Branch Restricted Speculation <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/indirect-branch-restricted-speculation.html>`_
.. [#amd-eibrs-vmexit] "Extended Feature Enable Register (EFER)" in `AMD64 Architecture Programmer's Manual Volume 2: System Programming <https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24593.pdf>`_
.. [#intel-eibrs-vmexit] "Enhanced IBRS" in `Indirect Branch Restricted Speculation <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/indirect-branch-restricted-speculation.html>`_
.. [#intel-pbrsb] `Post-barrier Return Stack Buffer Predictions / CVE-2022-26373 / INTEL-SA-00706 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/post-barrier-return-stack-buffer-predictions.html>`_
.. [#retbleed-paper] `RETBleed: Arbitrary Speculative Code Execution with Return Instruction <https://comsec.ethz.ch/wp-content/files/retbleed_sec22.pdf>`_
.. [#amd-btc] `Technical Guidance for Mitigating Branch Type Confusion <https://www.amd.com/content/dam/amd/en/documents/resources/technical-guidance-for-mitigating-branch-type-confusion.pdf>`_
.. [#amd-srso] `Technical Update Regarding Speculative Return Stack Overflow <https://www.amd.com/content/dam/amd/en/documents/corporate/cr/speculative-return-stack-overflow-whitepaper.pdf>`_
.. [#inception-paper] `Inception: Exposing New Attack Surfaces with Training in Transient Execution <https://comsec.ethz.ch/wp-content/files/inception_sec23.pdf>`_
.. [#intel-rsbu] `Return Stack Buffer Underflow / Return Stack Buffer Underflow / CVE-2022-29901, CVE-2022-28693 / INTEL-SA-00702 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/return-stack-buffer-underflow.html>`_
.. [#intel-ibpb-btb] `Indirect Branch Predictor Barrier' <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/indirect-branch-predictor-barrier.html>`_
.. [#intel-eibrs-rrsba] "Guidance for RSBU" in `Return Stack Buffer Underflow / Return Stack Buffer Underflow / CVE-2022-29901, CVE-2022-28693 / INTEL-SA-00702 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/return-stack-buffer-underflow.html>`_
.. [#bhi-paper] `Branch History Injection: On the Effectiveness of Hardware Mitigations Against Cross-Privilege Spectre-v2 Attacks <http://download.vusec.net/papers/bhi-spectre-bhb_sec22.pdf>`_
.. [#intel-bhi] `Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/branch-history-injection.html>`_
.. [#intel-retpoline-rrsba] "Retpoline" in `Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598 <https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/branch-history-injection.html>`_

View File

@ -1407,18 +1407,15 @@
earlyprintk=serial[,0x...[,baudrate]] earlyprintk=serial[,0x...[,baudrate]]
earlyprintk=ttySn[,baudrate] earlyprintk=ttySn[,baudrate]
earlyprintk=dbgp[debugController#] earlyprintk=dbgp[debugController#]
earlyprintk=mmio32,membase[,{nocfg|baudrate}]
earlyprintk=pciserial[,force],bus:device.function[,{nocfg|baudrate}] earlyprintk=pciserial[,force],bus:device.function[,{nocfg|baudrate}]
earlyprintk=xdbc[xhciController#] earlyprintk=xdbc[xhciController#]
earlyprintk=bios earlyprintk=bios
earlyprintk=mmio,membase[,{nocfg|baudrate}]
earlyprintk is useful when the kernel crashes before earlyprintk is useful when the kernel crashes before
the normal console is initialized. It is not enabled by the normal console is initialized. It is not enabled by
default because it has some cosmetic problems. default because it has some cosmetic problems.
Only 32-bit memory addresses are supported for "mmio"
and "pciserial" devices.
Use "nocfg" to skip UART configuration, assume Use "nocfg" to skip UART configuration, assume
BIOS/firmware has configured UART correctly. BIOS/firmware has configured UART correctly.

View File

@ -124,6 +124,14 @@ When mounting an XFS filesystem, the following options are accepted.
controls the size of each buffer and so is also relevant to controls the size of each buffer and so is also relevant to
this case. this case.
lifetime (default) or nolifetime
Enable data placement based on write life time hints provided
by the user. This turns on co-allocation of data of similar
life times when statistically favorable to reduce garbage
collection cost.
These options are only available for zoned rt file systems.
logbsize=value logbsize=value
Set the size of each in-memory log buffer. The size may be Set the size of each in-memory log buffer. The size may be
specified in bytes, or in kilobytes with a "k" suffix. specified in bytes, or in kilobytes with a "k" suffix.
@ -143,6 +151,14 @@ When mounting an XFS filesystem, the following options are accepted.
optional, and the log section can be separate from the data optional, and the log section can be separate from the data
section or contained within it. section or contained within it.
max_open_zones=value
Specify the max number of zones to keep open for writing on a
zoned rt device. Many open zones aids file data separation
but may impact performance on HDDs.
If ``max_open_zones`` is not specified, the value is determined
by the capabilities and the size of the zoned rt device.
noalign noalign
Data allocations will not be aligned at stripe unit Data allocations will not be aligned at stripe unit
boundaries. This is only relevant to filesystems created boundaries. This is only relevant to filesystems created
@ -542,3 +558,24 @@ The interesting knobs for XFS workqueues are as follows:
nice Relative priority of scheduling the threads. These are the nice Relative priority of scheduling the threads. These are the
same nice levels that can be applied to userspace processes. same nice levels that can be applied to userspace processes.
============ =========== ============ ===========
Zoned Filesystems
=================
For zoned file systems, the following attributes are exposed in:
/sys/fs/xfs/<dev>/zoned/
max_open_zones (Min: 1 Default: Varies Max: UINTMAX)
This read-only attribute exposes the maximum number of open zones
available for data placement. The value is determined at mount time and
is limited by the capabilities of the backing zoned device, file system
size and the max_open_zones mount option.
zonegc_low_space (Min: 0 Default: 0 Max: 100)
Define a percentage for how much of the unused space that GC should keep
available for writing. A high value will reclaim more of the space
occupied by unused blocks, creating a larger buffer against write
bursts at the cost of increased write amplification. Regardless
of this value, garbage collection will always aim to free a minimum
amount of blocks to keep max_open_zones open for data placement purposes.

View File

@ -7,10 +7,10 @@ target architecture, specifically, is the 32-bit OpenRISC 1000 family (or1k).
For information about OpenRISC processors and ongoing development: For information about OpenRISC processors and ongoing development:
======= ============================= ======= ==============================
website https://openrisc.io website https://openrisc.io
email openrisc@lists.librecores.org email linux-openrisc@vger.kernel.org
======= ============================= ======= ==============================
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -27,11 +27,11 @@ Toolchain binaries can be obtained from openrisc.io or our github releases page.
Instructions for building the different toolchains can be found on openrisc.io Instructions for building the different toolchains can be found on openrisc.io
or Stafford's toolchain build and release scripts. or Stafford's toolchain build and release scripts.
========== ================================================= ========== ==========================================================
binaries https://github.com/openrisc/or1k-gcc/releases binaries https://github.com/stffrdhrn/or1k-toolchain-build/releases
toolchains https://openrisc.io/software toolchains https://openrisc.io/software
building https://github.com/stffrdhrn/or1k-toolchain-build building https://github.com/stffrdhrn/or1k-toolchain-build
========== ================================================= ========== ==========================================================
2) Building 2) Building

View File

@ -51,7 +51,7 @@ The following keys are defined:
* :c:macro:`RISCV_HWPROBE_KEY_MARCHID`: Contains the value of ``marchid``, as * :c:macro:`RISCV_HWPROBE_KEY_MARCHID`: Contains the value of ``marchid``, as
defined by the RISC-V privileged architecture specification. defined by the RISC-V privileged architecture specification.
* :c:macro:`RISCV_HWPROBE_KEY_MIMPLID`: Contains the value of ``mimplid``, as * :c:macro:`RISCV_HWPROBE_KEY_MIMPID`: Contains the value of ``mimpid``, as
defined by the RISC-V privileged architecture specification. defined by the RISC-V privileged architecture specification.
* :c:macro:`RISCV_HWPROBE_KEY_BASE_BEHAVIOR`: A bitmask containing the base * :c:macro:`RISCV_HWPROBE_KEY_BASE_BEHAVIOR`: A bitmask containing the base

View File

@ -79,8 +79,9 @@ feature flags.
How are feature flags created? How are feature flags created?
============================== ==============================
a: Feature flags can be derived from the contents of CPUID leaves. Feature flags can be derived from the contents of CPUID leaves
------------------------------------------------------------------ --------------------------------------------------------------
These feature definitions are organized mirroring the layout of CPUID These feature definitions are organized mirroring the layout of CPUID
leaves and grouped in words with offsets as mapped in enum cpuid_leafs leaves and grouped in words with offsets as mapped in enum cpuid_leafs
in cpufeatures.h (see arch/x86/include/asm/cpufeatures.h for details). in cpufeatures.h (see arch/x86/include/asm/cpufeatures.h for details).
@ -89,8 +90,9 @@ cpufeatures.h, and if it is detected at run time, the flags will be
displayed accordingly in /proc/cpuinfo. For example, the flag "avx2" displayed accordingly in /proc/cpuinfo. For example, the flag "avx2"
comes from X86_FEATURE_AVX2 in cpufeatures.h. comes from X86_FEATURE_AVX2 in cpufeatures.h.
b: Flags can be from scattered CPUID-based features. Flags can be from scattered CPUID-based features
---------------------------------------------------- ------------------------------------------------
Hardware features enumerated in sparsely populated CPUID leaves get Hardware features enumerated in sparsely populated CPUID leaves get
software-defined values. Still, CPUID needs to be queried to determine software-defined values. Still, CPUID needs to be queried to determine
if a given feature is present. This is done in init_scattered_cpuid_features(). if a given feature is present. This is done in init_scattered_cpuid_features().
@ -104,8 +106,9 @@ has only one feature and would waste 31 bits of space in the x86_capability[]
array. Since there is a struct cpuinfo_x86 for each possible CPU, the wasted array. Since there is a struct cpuinfo_x86 for each possible CPU, the wasted
memory is not trivial. memory is not trivial.
c: Flags can be created synthetically under certain conditions for hardware features. Flags can be created synthetically under certain conditions for hardware features
------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------
Examples of conditions include whether certain features are present in Examples of conditions include whether certain features are present in
MSR_IA32_CORE_CAPS or specific CPU models are identified. If the needed MSR_IA32_CORE_CAPS or specific CPU models are identified. If the needed
conditions are met, the features are enabled by the set_cpu_cap or conditions are met, the features are enabled by the set_cpu_cap or
@ -114,8 +117,8 @@ the feature X86_FEATURE_SPLIT_LOCK_DETECT will be enabled and
"split_lock_detect" will be displayed. The flag "ring3mwait" will be "split_lock_detect" will be displayed. The flag "ring3mwait" will be
displayed only when running on INTEL_XEON_PHI_[KNL|KNM] processors. displayed only when running on INTEL_XEON_PHI_[KNL|KNM] processors.
d: Flags can represent purely software features. Flags can represent purely software features
------------------------------------------------ --------------------------------------------
These flags do not represent hardware features. Instead, they represent a These flags do not represent hardware features. Instead, they represent a
software feature implemented in the kernel. For example, Kernel Page Table software feature implemented in the kernel. For example, Kernel Page Table
Isolation is purely software feature and its feature flag X86_FEATURE_PTI is Isolation is purely software feature and its feature flag X86_FEATURE_PTI is
@ -130,14 +133,18 @@ x86_cap/bug_flags[] arrays in kernel/cpu/capflags.c. The names in the
resulting x86_cap/bug_flags[] are used to populate /proc/cpuinfo. The naming resulting x86_cap/bug_flags[] are used to populate /proc/cpuinfo. The naming
of flags in the x86_cap/bug_flags[] are as follows: of flags in the x86_cap/bug_flags[] are as follows:
a: The name of the flag is from the string in X86_FEATURE_<name> by default. Flags do not appear by default in /proc/cpuinfo
---------------------------------------------------------------------------- -----------------------------------------------
By default, the flag <name> in /proc/cpuinfo is extracted from the respective
X86_FEATURE_<name> in cpufeatures.h. For example, the flag "avx2" is from Feature flags are omitted by default from /proc/cpuinfo as it does not make
X86_FEATURE_AVX2. sense for the feature to be exposed to userspace in most cases. For example,
X86_FEATURE_ALWAYS is defined in cpufeatures.h but that flag is an internal
kernel feature used in the alternative runtime patching functionality. So the
flag does not appear in /proc/cpuinfo.
Specify a flag name if absolutely needed
----------------------------------------
b: The naming can be overridden.
--------------------------------
If the comment on the line for the #define X86_FEATURE_* starts with a If the comment on the line for the #define X86_FEATURE_* starts with a
double-quote character (""), the string inside the double-quote characters double-quote character (""), the string inside the double-quote characters
will be the name of the flags. For example, the flag "sse4_1" comes from will be the name of the flags. For example, the flag "sse4_1" comes from
@ -148,36 +155,31 @@ needed. For instance, /proc/cpuinfo is a userspace interface and must remain
constant. If, for some reason, the naming of X86_FEATURE_<name> changes, one constant. If, for some reason, the naming of X86_FEATURE_<name> changes, one
shall override the new naming with the name already used in /proc/cpuinfo. shall override the new naming with the name already used in /proc/cpuinfo.
c: The naming override can be "", which means it will not appear in /proc/cpuinfo.
----------------------------------------------------------------------------------
The feature shall be omitted from /proc/cpuinfo if it does not make sense for
the feature to be exposed to userspace. For example, X86_FEATURE_ALWAYS is
defined in cpufeatures.h but that flag is an internal kernel feature used
in the alternative runtime patching functionality. So, its name is overridden
with "". Its flag will not appear in /proc/cpuinfo.
Flags are missing when one or more of these happen Flags are missing when one or more of these happen
================================================== ==================================================
a: The hardware does not enumerate support for it. The hardware does not enumerate support for it
-------------------------------------------------- ----------------------------------------------
For example, when a new kernel is running on old hardware or the feature is For example, when a new kernel is running on old hardware or the feature is
not enabled by boot firmware. Even if the hardware is new, there might be a not enabled by boot firmware. Even if the hardware is new, there might be a
problem enabling the feature at run time, the flag will not be displayed. problem enabling the feature at run time, the flag will not be displayed.
b: The kernel does not know about the flag. The kernel does not know about the flag
------------------------------------------- ---------------------------------------
For example, when an old kernel is running on new hardware. For example, when an old kernel is running on new hardware.
c: The kernel disabled support for it at compile-time. The kernel disabled support for it at compile-time
------------------------------------------------------ --------------------------------------------------
For example, if 5-level-paging is not enabled when building (i.e., For example, if 5-level-paging is not enabled when building (i.e.,
CONFIG_X86_5LEVEL is not selected) the flag "la57" will not show up [#f1]_. CONFIG_X86_5LEVEL is not selected) the flag "la57" will not show up [#f1]_.
Even though the feature will still be detected via CPUID, the kernel disables Even though the feature will still be detected via CPUID, the kernel disables
it by clearing via setup_clear_cpu_cap(X86_FEATURE_LA57). it by clearing via setup_clear_cpu_cap(X86_FEATURE_LA57).
d: The feature is disabled at boot-time. The feature is disabled at boot-time
---------------------------------------- ------------------------------------
A feature can be disabled either using a command-line parameter or because A feature can be disabled either using a command-line parameter or because
it failed to be enabled. The command-line parameter clearcpuid= can be used it failed to be enabled. The command-line parameter clearcpuid= can be used
to disable features using the feature number as defined in to disable features using the feature number as defined in
@ -190,8 +192,9 @@ disable specific features. The list of parameters includes, but is not limited
to, nofsgsbase, nosgx, noxsave, etc. 5-level paging can also be disabled using to, nofsgsbase, nosgx, noxsave, etc. 5-level paging can also be disabled using
"no5lvl". "no5lvl".
e: The feature was known to be non-functional. The feature was known to be non-functional
---------------------------------------------- ------------------------------------------
The feature was known to be non-functional because a dependency was The feature was known to be non-functional because a dependency was
missing at runtime. For example, AVX flags will not show up if XSAVE feature missing at runtime. For example, AVX flags will not show up if XSAVE feature
is disabled since they depend on XSAVE feature. Another example would be broken is disabled since they depend on XSAVE feature. Another example would be broken

View File

@ -382,6 +382,14 @@ In case of new BPF instructions, once the changes have been accepted
into the Linux kernel, please implement support into LLVM's BPF back into the Linux kernel, please implement support into LLVM's BPF back
end. See LLVM_ section below for further information. end. See LLVM_ section below for further information.
Q: What "BPF_INTERNAL" symbol namespace is for?
-----------------------------------------------
A: Symbols exported as BPF_INTERNAL can only be used by BPF infrastructure
like preload kernel modules with light skeleton. Most symbols outside
of BPF_INTERNAL are not expected to be used by code outside of BPF either.
Symbols may lack the designation because they predate the namespaces,
or due to an oversight.
Stable submission Stable submission
================= =================

View File

@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ceva AHCI SATA Controller title: Ceva AHCI SATA Controller
maintainers: maintainers:
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
description: | description: |

View File

@ -111,11 +111,27 @@ properties:
unevaluatedProperties: false unevaluatedProperties: false
port@1: port@1:
$ref: /schemas/graph.yaml#/properties/port $ref: /schemas/graph.yaml#/$defs/port-base
unevaluatedProperties: false
description: description:
DSI output port node to the panel or the next bridge DSI output port node to the panel or the next bridge
in the chain in the chain
properties:
endpoint:
$ref: /schemas/media/video-interfaces.yaml#
unevaluatedProperties: false
properties:
data-lanes:
description: array of physical DSI data lane indexes.
minItems: 1
items:
- const: 1
- const: 2
- const: 3
- const: 4
required: required:
- port@0 - port@0
- port@1 - port@1

View File

@ -12,7 +12,6 @@ description:
PS_MODE). Every pin can be configured as input/output. PS_MODE). Every pin can be configured as input/output.
maintainers: maintainers:
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
properties: properties:

View File

@ -19,6 +19,7 @@ properties:
- fsl,imx8mp-irqsteer - fsl,imx8mp-irqsteer
- fsl,imx8qm-irqsteer - fsl,imx8qm-irqsteer
- fsl,imx8qxp-irqsteer - fsl,imx8qxp-irqsteer
- fsl,imx94-irqsteer
- const: fsl,imx-irqsteer - const: fsl,imx-irqsteer
reg: reg:

View File

@ -27,7 +27,7 @@ properties:
$ref: /schemas/types.yaml#/definitions/uint32-array $ref: /schemas/types.yaml#/definitions/uint32-array
items: items:
- minimum: 0 - minimum: 0
maximum: 7 maximum: 31
description: description:
Offset in bit within the address range specified by reg. Offset in bit within the address range specified by reg.
- minimum: 1 - minimum: 1

View File

@ -19,6 +19,7 @@ properties:
- enum: - enum:
- qcom,apq8064-qfprom - qcom,apq8064-qfprom
- qcom,apq8084-qfprom - qcom,apq8084-qfprom
- qcom,ipq5018-qfprom
- qcom,ipq5332-qfprom - qcom,ipq5332-qfprom
- qcom,ipq5424-qfprom - qcom,ipq5424-qfprom
- qcom,ipq6018-qfprom - qcom,ipq6018-qfprom
@ -28,6 +29,8 @@ properties:
- qcom,msm8226-qfprom - qcom,msm8226-qfprom
- qcom,msm8916-qfprom - qcom,msm8916-qfprom
- qcom,msm8917-qfprom - qcom,msm8917-qfprom
- qcom,msm8937-qfprom
- qcom,msm8960-qfprom
- qcom,msm8974-qfprom - qcom,msm8974-qfprom
- qcom,msm8976-qfprom - qcom,msm8976-qfprom
- qcom,msm8996-qfprom - qcom,msm8996-qfprom
@ -51,6 +54,7 @@ properties:
- qcom,sm8450-qfprom - qcom,sm8450-qfprom
- qcom,sm8550-qfprom - qcom,sm8550-qfprom
- qcom,sm8650-qfprom - qcom,sm8650-qfprom
- qcom,x1e80100-qfprom
- const: qcom,qfprom - const: qcom,qfprom
reg: reg:

View File

@ -14,6 +14,7 @@ properties:
enum: enum:
- rockchip,px30-otp - rockchip,px30-otp
- rockchip,rk3308-otp - rockchip,rk3308-otp
- rockchip,rk3576-otp
- rockchip,rk3588-otp - rockchip,rk3588-otp
reg: reg:
@ -62,12 +63,34 @@ allOf:
properties: properties:
clocks: clocks:
maxItems: 3 maxItems: 3
clock-names:
maxItems: 3
resets: resets:
maxItems: 1 maxItems: 1
reset-names: reset-names:
items: items:
- const: phy - const: phy
- if:
properties:
compatible:
contains:
enum:
- rockchip,rk3576-otp
then:
properties:
clocks:
maxItems: 3
clock-names:
maxItems: 3
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: otp
- const: apb
- if: - if:
properties: properties:
compatible: compatible:
@ -78,6 +101,8 @@ allOf:
properties: properties:
clocks: clocks:
minItems: 4 minItems: 4
clock-names:
minItems: 4
resets: resets:
minItems: 3 minItems: 3
reset-names: reset-names:

View File

@ -9,15 +9,6 @@ title: Renesas R-Car Timer Pulse Unit PWM Controller
maintainers: maintainers:
- Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
select:
properties:
compatible:
contains:
const: renesas,tpu
required:
- compatible
- '#pwm-cells'
properties: properties:
compatible: compatible:
items: items:

View File

@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Zynq UltraScale+ MPSoC and Versal reset title: Zynq UltraScale+ MPSoC and Versal reset
maintainers: maintainers:
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
description: | description: |

View File

@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale Layerscape Reset Registers Module title: Freescale Layerscape Reset Registers Module
maintainers: maintainers:
- Frank Li - Frank Li <Frank.Li@nxp.com>
description: description:
Reset Module includes chip reset, service processor control and Reset Control Reset Module includes chip reset, service processor control and Reset Control

View File

@ -18,9 +18,14 @@ description: |
properties: properties:
compatible: compatible:
enum: oneOf:
- nxp,imx95-sysctr-timer - enum:
- nxp,sysctr-timer - nxp,imx95-sysctr-timer
- nxp,sysctr-timer
- items:
- enum:
- nxp,imx94-sysctr-timer
- const: nxp,imx95-sysctr-timer
reg: reg:
maxItems: 1 maxItems: 1

View File

@ -1,56 +0,0 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/renesas,tpu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Renesas H8/300 Timer Pulse Unit
maintainers:
- Yoshinori Sato <ysato@users.sourceforge.jp>
description:
The TPU is a 16bit timer/counter with configurable clock inputs and
programmable compare match.
This implementation supports only cascade mode.
select:
properties:
compatible:
contains:
const: renesas,tpu
'#pwm-cells': false
required:
- compatible
properties:
compatible:
const: renesas,tpu
reg:
items:
- description: First channel
- description: Second channel
clocks:
maxItems: 1
clock-names:
const: fck
required:
- compatible
- reg
- clocks
- clock-names
additionalProperties: false
examples:
- |
tpu: tpu@ffffe0 {
compatible = "renesas,tpu";
reg = <0xffffe0 16>, <0xfffff0 12>;
clocks = <&pclk>;
clock-names = "fck";
};

View File

@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx SuperSpeed DWC3 USB SoC controller title: Xilinx SuperSpeed DWC3 USB SoC controller
maintainers: maintainers:
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
properties: properties:

View File

@ -17,7 +17,6 @@ description:
maintainers: maintainers:
- Michal Simek <michal.simek@amd.com> - Michal Simek <michal.simek@amd.com>
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
properties: properties:

View File

@ -7,7 +7,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Xilinx udc controller title: Xilinx udc controller
maintainers: maintainers:
- Mubin Sayyed <mubin.sayyed@amd.com>
- Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
properties: properties:

View File

@ -328,9 +328,13 @@ The ext4 superblock is laid out as follows in
- s_checksum_type - s_checksum_type
- Metadata checksum algorithm type. The only valid value is 1 (crc32c). - Metadata checksum algorithm type. The only valid value is 1 (crc32c).
* - 0x176 * - 0x176
- __le16 - \_\_u8
- s_reserved_pad - s\_encryption\_level
- - Versioning level for encryption.
* - 0x177
- \_\_u8
- s\_reserved\_pad
- Padding to next 32bits.
* - 0x178 * - 0x178
- __le64 - __le64
- s_kbytes_written - s_kbytes_written
@ -466,9 +470,13 @@ The ext4 superblock is laid out as follows in
- s_last_error_time_hi - s_last_error_time_hi
- Upper 8 bits of the s_last_error_time field. - Upper 8 bits of the s_last_error_time field.
* - 0x27A * - 0x27A
- __u8 - \_\_u8
- s_pad[2] - s\_first\_error\_errcode
- Zero padding. -
* - 0x27B
- \_\_u8
- s\_last\_error\_errcode
-
* - 0x27C * - 0x27C
- __le16 - __le16
- s_encoding - s_encoding

View File

@ -123,12 +123,12 @@ attribute-sets:
operations: operations:
name-prefix: ovs-vport-cmd- name-prefix: ovs-vport-cmd-
fixed-header: ovs-header
list: list:
- -
name: new name: new
doc: Create a new OVS vport doc: Create a new OVS vport
attribute-set: vport attribute-set: vport
fixed-header: ovs-header
do: do:
request: request:
attributes: attributes:
@ -141,7 +141,6 @@ operations:
name: del name: del
doc: Delete existing OVS vport from a data path doc: Delete existing OVS vport from a data path
attribute-set: vport attribute-set: vport
fixed-header: ovs-header
do: do:
request: request:
attributes: attributes:
@ -152,7 +151,6 @@ operations:
name: get name: get
doc: Get / dump OVS vport configuration and state doc: Get / dump OVS vport configuration and state
attribute-set: vport attribute-set: vport
fixed-header: ovs-header
do: &vport-get-op do: &vport-get-op
request: request:
attributes: attributes:

View File

@ -1113,11 +1113,10 @@ attribute-sets:
- -
name: prop-list name: prop-list
type: nest type: nest
nested-attributes: link-attrs nested-attributes: prop-list-link-attrs
- -
name: alt-ifname name: alt-ifname
type: string type: string
multi-attr: true
- -
name: perm-address name: perm-address
type: binary type: binary
@ -1163,6 +1162,13 @@ attribute-sets:
- -
name: netns-immutable name: netns-immutable
type: u8 type: u8
-
name: prop-list-link-attrs
subset-of: link-attrs
attributes:
-
name: alt-ifname
multi-attr: true
- -
name: af-spec-attrs name: af-spec-attrs
attributes: attributes:
@ -1585,7 +1591,7 @@ attribute-sets:
name: nf-call-iptables name: nf-call-iptables
type: u8 type: u8
- -
name: nf-call-ip6-tables name: nf-call-ip6tables
type: u8 type: u8
- -
name: nf-call-arptables name: nf-call-arptables
@ -2077,7 +2083,7 @@ attribute-sets:
name: id name: id
type: u16 type: u16
- -
name: flag name: flags
type: binary type: binary
struct: ifla-vlan-flags struct: ifla-vlan-flags
- -
@ -2165,7 +2171,7 @@ attribute-sets:
type: binary type: binary
struct: ifla-cacheinfo struct: ifla-cacheinfo
- -
name: icmp6-stats name: icmp6stats
type: binary type: binary
struct: ifla-icmp6-stats struct: ifla-icmp6-stats
- -
@ -2179,9 +2185,10 @@ attribute-sets:
type: u32 type: u32
- -
name: mctp-attrs name: mctp-attrs
name-prefix: ifla-mctp-
attributes: attributes:
- -
name: mctp-net name: net
type: u32 type: u32
- -
name: phys-binding name: phys-binding
@ -2453,7 +2460,6 @@ operations:
- min-mtu - min-mtu
- max-mtu - max-mtu
- prop-list - prop-list
- alt-ifname
- perm-address - perm-address
- proto-down-reason - proto-down-reason
- parent-dev-name - parent-dev-name

View File

@ -13,25 +13,25 @@ definitions:
type: struct type: struct
members: members:
- -
name: family name: ndm-family
type: u8 type: u8
- -
name: pad name: ndm-pad
type: pad type: pad
len: 3 len: 3
- -
name: ifindex name: ndm-ifindex
type: s32 type: s32
- -
name: state name: ndm-state
type: u16 type: u16
enum: nud-state enum: nud-state
- -
name: flags name: ndm-flags
type: u8 type: u8
enum: ntf-flags enum: ntf-flags
- -
name: type name: ndm-type
type: u8 type: u8
enum: rtm-type enum: rtm-type
- -
@ -189,7 +189,7 @@ attribute-sets:
type: binary type: binary
display-hint: ipv4 display-hint: ipv4
- -
name: lladr name: lladdr
type: binary type: binary
display-hint: mac display-hint: mac
- -

View File

@ -338,10 +338,11 @@ operations directly under the netdev instance lock.
Devices drivers are encouraged to rely on the instance lock where possible. Devices drivers are encouraged to rely on the instance lock where possible.
For the (mostly software) drivers that need to interact with the core stack, For the (mostly software) drivers that need to interact with the core stack,
there are two sets of interfaces: ``dev_xxx`` and ``netif_xxx`` (e.g., there are two sets of interfaces: ``dev_xxx``/``netdev_xxx`` and ``netif_xxx``
``dev_set_mtu`` and ``netif_set_mtu``). The ``dev_xxx`` functions handle (e.g., ``dev_set_mtu`` and ``netif_set_mtu``). The ``dev_xxx``/``netdev_xxx``
acquiring the instance lock themselves, while the ``netif_xxx`` functions functions handle acquiring the instance lock themselves, while the
assume that the driver has already acquired the instance lock. ``netif_xxx`` functions assume that the driver has already acquired
the instance lock.
Notifiers and netdev instance lock Notifiers and netdev instance lock
================================== ==================================
@ -354,6 +355,7 @@ For devices with locked ops, currently only the following notifiers are
running under the lock: running under the lock:
* ``NETDEV_REGISTER`` * ``NETDEV_REGISTER``
* ``NETDEV_UP`` * ``NETDEV_UP``
* ``NETDEV_CHANGE``
The following notifiers are running without the lock: The following notifiers are running without the lock:
* ``NETDEV_UNREGISTER`` * ``NETDEV_UNREGISTER``

View File

@ -154,7 +154,7 @@ suspending the device are satisfied) and to queue up a suspend request for the
device in that case. If there is no idle callback, or if the callback returns device in that case. If there is no idle callback, or if the callback returns
0, then the PM core will attempt to carry out a runtime suspend of the device, 0, then the PM core will attempt to carry out a runtime suspend of the device,
also respecting devices configured for autosuspend. In essence this means a also respecting devices configured for autosuspend. In essence this means a
call to __pm_runtime_autosuspend() (do note that drivers needs to update the call to pm_runtime_autosuspend() (do note that drivers needs to update the
device last busy mark, pm_runtime_mark_last_busy(), to control the delay under device last busy mark, pm_runtime_mark_last_busy(), to control the delay under
this circumstance). To prevent this (for example, if the callback routine has this circumstance). To prevent this (for example, if the callback routine has
started a delayed suspend), the routine must return a non-zero value. Negative started a delayed suspend), the routine must return a non-zero value. Negative

View File

@ -17,10 +17,10 @@ OpenRISC 1000系列或1k
关于OpenRISC处理器和正在进行中的开发的信息: 关于OpenRISC处理器和正在进行中的开发的信息:
======= ============================= ======= ==============================
网站 https://openrisc.io 网站 https://openrisc.io
邮箱 openrisc@lists.librecores.org 邮箱 linux-openrisc@vger.kernel.org
======= ============================= ======= ==============================
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -36,11 +36,11 @@ OpenRISC工具链和Linux的构建指南
工具链的构建指南可以在openrisc.io或Stafford的工具链构建和发布脚本 工具链的构建指南可以在openrisc.io或Stafford的工具链构建和发布脚本
中找到。 中找到。
====== ================================================= ====== ==========================================================
二进制 https://github.com/openrisc/or1k-gcc/releases 二进制 https://github.com/stffrdhrn/or1k-toolchain-build/releases
工具链 https://openrisc.io/software 工具链 https://openrisc.io/software
构建 https://github.com/stffrdhrn/or1k-toolchain-build 构建 https://github.com/stffrdhrn/or1k-toolchain-build
====== ================================================= ====== ==========================================================
2) 构建 2) 构建

View File

@ -17,10 +17,10 @@ OpenRISC 1000系列或1k
關於OpenRISC處理器和正在進行中的開發的信息: 關於OpenRISC處理器和正在進行中的開發的信息:
======= ============================= ======= ==============================
網站 https://openrisc.io 網站 https://openrisc.io
郵箱 openrisc@lists.librecores.org 郵箱 linux-openrisc@vger.kernel.org
======= ============================= ======= ==============================
--------------------------------------------------------------------- ---------------------------------------------------------------------
@ -36,11 +36,11 @@ OpenRISC工具鏈和Linux的構建指南
工具鏈的構建指南可以在openrisc.io或Stafford的工具鏈構建和發佈腳本 工具鏈的構建指南可以在openrisc.io或Stafford的工具鏈構建和發佈腳本
中找到。 中找到。
====== ================================================= ====== ==========================================================
二進制 https://github.com/openrisc/or1k-gcc/releases 二進制 https://github.com/stffrdhrn/or1k-toolchain-build/releases
工具鏈 https://openrisc.io/software 工具鏈 https://openrisc.io/software
構建 https://github.com/stffrdhrn/or1k-toolchain-build 構建 https://github.com/stffrdhrn/or1k-toolchain-build
====== ================================================= ====== ==========================================================
2) 構建 2) 構建

View File

@ -27,7 +27,7 @@ SYSCALL
======= =======
mseal syscall signature mseal syscall signature
----------------------- -----------------------
``int mseal(void \* addr, size_t len, unsigned long flags)`` ``int mseal(void *addr, size_t len, unsigned long flags)``
**addr**/**len**: virtual memory address range. **addr**/**len**: virtual memory address range.
The address range set by **addr**/**len** must meet: The address range set by **addr**/**len** must meet:

File diff suppressed because it is too large Load Diff

View File

@ -138,6 +138,10 @@ input data, the meaning of which depends on the subfeature being accessed.
The output buffer contains a single byte which signals success or failure (``0x00`` on failure) The output buffer contains a single byte which signals success or failure (``0x00`` on failure)
and 31 bytes of output data, the meaning if which depends on the subfeature being accessed. and 31 bytes of output data, the meaning if which depends on the subfeature being accessed.
.. note::
The ACPI control method responsible for handling the WMI method calls is not thread-safe.
This is a firmware bug that needs to be handled inside the driver itself.
WMI method Get_EC() WMI method Get_EC()
------------------- -------------------

View File

@ -3191,6 +3191,12 @@ M: Dinh Nguyen <dinguyen@kernel.org>
S: Maintained S: Maintained
F: drivers/clk/socfpga/ F: drivers/clk/socfpga/
ARM/SOCFPGA DWMAC GLUE LAYER
M: Maxime Chevallier <maxime.chevallier@bootlin.com>
S: Maintained
F: Documentation/devicetree/bindings/net/socfpga-dwmac.txt
F: drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
ARM/SOCFPGA EDAC BINDINGS ARM/SOCFPGA EDAC BINDINGS
M: Matthew Gerlach <matthew.gerlach@altera.com> M: Matthew Gerlach <matthew.gerlach@altera.com>
S: Maintained S: Maintained
@ -3867,8 +3873,9 @@ AUXILIARY BUS DRIVER
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org> M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
R: Dave Ertman <david.m.ertman@intel.com> R: Dave Ertman <david.m.ertman@intel.com>
R: Ira Weiny <ira.weiny@intel.com> R: Ira Weiny <ira.weiny@intel.com>
R: Leon Romanovsky <leon@kernel.org>
S: Supported S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git
F: Documentation/driver-api/auxiliary_bus.rst F: Documentation/driver-api/auxiliary_bus.rst
F: drivers/base/auxiliary.c F: drivers/base/auxiliary.c
F: include/linux/auxiliary_bus.h F: include/linux/auxiliary_bus.h
@ -6335,6 +6342,7 @@ F: Documentation/process/cve.rst
CW1200 WLAN driver CW1200 WLAN driver
S: Orphan S: Orphan
L: linux-wireless@vger.kernel.org
F: drivers/net/wireless/st/ F: drivers/net/wireless/st/
F: include/linux/platform_data/net-cw1200.h F: include/linux/platform_data/net-cw1200.h
@ -7020,6 +7028,7 @@ L: rust-for-linux@vger.kernel.org
S: Supported S: Supported
W: https://rust-for-linux.com W: https://rust-for-linux.com
T: git https://github.com/Rust-for-Linux/linux.git alloc-next T: git https://github.com/Rust-for-Linux/linux.git alloc-next
F: rust/helpers/dma.c
F: rust/kernel/dma.rs F: rust/kernel/dma.rs
F: samples/rust/rust_dma.rs F: samples/rust/rust_dma.rs
@ -7225,7 +7234,7 @@ M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
M: "Rafael J. Wysocki" <rafael@kernel.org> M: "Rafael J. Wysocki" <rafael@kernel.org>
M: Danilo Krummrich <dakr@kernel.org> M: Danilo Krummrich <dakr@kernel.org>
S: Supported S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git
F: Documentation/core-api/kobject.rst F: Documentation/core-api/kobject.rst
F: drivers/base/ F: drivers/base/
F: fs/debugfs/ F: fs/debugfs/
@ -10151,6 +10160,8 @@ F: include/linux/gpio.h
F: include/linux/gpio/ F: include/linux/gpio/
F: include/linux/of_gpio.h F: include/linux/of_gpio.h
K: (devm_)?gpio_(request|free|direction|get|set) K: (devm_)?gpio_(request|free|direction|get|set)
K: GPIOD_FLAGS_BIT_NONEXCLUSIVE
K: devm_gpiod_unhinge
GPIO UAPI GPIO UAPI
M: Bartosz Golaszewski <brgl@bgdev.pl> M: Bartosz Golaszewski <brgl@bgdev.pl>
@ -10453,14 +10464,20 @@ S: Supported
F: drivers/infiniband/hw/hfi1 F: drivers/infiniband/hw/hfi1
HFS FILESYSTEM HFS FILESYSTEM
M: Viacheslav Dubeyko <slava@dubeyko.com>
M: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
M: Yangtao Li <frank.li@vivo.com>
L: linux-fsdevel@vger.kernel.org L: linux-fsdevel@vger.kernel.org
S: Orphan S: Maintained
F: Documentation/filesystems/hfs.rst F: Documentation/filesystems/hfs.rst
F: fs/hfs/ F: fs/hfs/
HFSPLUS FILESYSTEM HFSPLUS FILESYSTEM
M: Viacheslav Dubeyko <slava@dubeyko.com>
M: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
M: Yangtao Li <frank.li@vivo.com>
L: linux-fsdevel@vger.kernel.org L: linux-fsdevel@vger.kernel.org
S: Orphan S: Maintained
F: Documentation/filesystems/hfsplus.rst F: Documentation/filesystems/hfsplus.rst
F: fs/hfsplus/ F: fs/hfsplus/
@ -10954,6 +10971,7 @@ F: include/linux/platform_data/huawei-gaokun-ec.h
HUGETLB SUBSYSTEM HUGETLB SUBSYSTEM
M: Muchun Song <muchun.song@linux.dev> M: Muchun Song <muchun.song@linux.dev>
R: Oscar Salvador <osalvador@suse.de>
L: linux-mm@kvack.org L: linux-mm@kvack.org
S: Maintained S: Maintained
F: Documentation/ABI/testing/sysfs-kernel-mm-hugepages F: Documentation/ABI/testing/sysfs-kernel-mm-hugepages
@ -12810,6 +12828,7 @@ F: lib/Kconfig.kcsan
F: scripts/Makefile.kcsan F: scripts/Makefile.kcsan
KDUMP KDUMP
M: Andrew Morton <akpm@linux-foundation.org>
M: Baoquan He <bhe@redhat.com> M: Baoquan He <bhe@redhat.com>
R: Vivek Goyal <vgoyal@redhat.com> R: Vivek Goyal <vgoyal@redhat.com>
R: Dave Young <dyoung@redhat.com> R: Dave Young <dyoung@redhat.com>
@ -13106,11 +13125,13 @@ KERNFS
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org> M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
M: Tejun Heo <tj@kernel.org> M: Tejun Heo <tj@kernel.org>
S: Supported S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git
F: fs/kernfs/ F: fs/kernfs/
F: include/linux/kernfs.h F: include/linux/kernfs.h
KEXEC KEXEC
M: Andrew Morton <akpm@linux-foundation.org>
M: Baoquan He <bhe@redhat.com>
L: kexec@lists.infradead.org L: kexec@lists.infradead.org
W: http://kernel.org/pub/linux/utils/kernel/kexec/ W: http://kernel.org/pub/linux/utils/kernel/kexec/
F: include/linux/kexec.h F: include/linux/kexec.h
@ -14283,6 +14304,7 @@ S: Odd fixes
F: drivers/net/ethernet/marvell/sk* F: drivers/net/ethernet/marvell/sk*
MARVELL LIBERTAS WIRELESS DRIVER MARVELL LIBERTAS WIRELESS DRIVER
L: linux-wireless@vger.kernel.org
L: libertas-dev@lists.infradead.org L: libertas-dev@lists.infradead.org
S: Orphan S: Orphan
F: drivers/net/wireless/marvell/libertas/ F: drivers/net/wireless/marvell/libertas/
@ -15508,6 +15530,21 @@ F: mm/numa.c
F: mm/numa_emulation.c F: mm/numa_emulation.c
F: mm/numa_memblks.c F: mm/numa_memblks.c
MEMORY MANAGEMENT - PAGE ALLOCATOR
M: Andrew Morton <akpm@linux-foundation.org>
R: Vlastimil Babka <vbabka@suse.cz>
R: Suren Baghdasaryan <surenb@google.com>
R: Michal Hocko <mhocko@suse.com>
R: Brendan Jackman <jackmanb@google.com>
R: Johannes Weiner <hannes@cmpxchg.org>
R: Zi Yan <ziy@nvidia.com>
L: linux-mm@kvack.org
S: Maintained
F: mm/compaction.c
F: mm/page_alloc.c
F: include/linux/gfp.h
F: include/linux/compaction.h
MEMORY MANAGEMENT - SECRETMEM MEMORY MANAGEMENT - SECRETMEM
M: Andrew Morton <akpm@linux-foundation.org> M: Andrew Morton <akpm@linux-foundation.org>
M: Mike Rapoport <rppt@kernel.org> M: Mike Rapoport <rppt@kernel.org>
@ -15535,10 +15572,12 @@ M: Liam R. Howlett <Liam.Howlett@oracle.com>
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
R: Vlastimil Babka <vbabka@suse.cz> R: Vlastimil Babka <vbabka@suse.cz>
R: Jann Horn <jannh@google.com> R: Jann Horn <jannh@google.com>
R: Pedro Falcato <pfalcato@suse.de>
L: linux-mm@kvack.org L: linux-mm@kvack.org
S: Maintained S: Maintained
W: http://www.linux-mm.org W: http://www.linux-mm.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
F: include/trace/events/mmap.h
F: mm/mlock.c F: mm/mlock.c
F: mm/mmap.c F: mm/mmap.c
F: mm/mprotect.c F: mm/mprotect.c
@ -15549,6 +15588,36 @@ F: mm/vma.h
F: mm/vma_internal.h F: mm/vma_internal.h
F: tools/testing/vma/ F: tools/testing/vma/
MEMORY MAPPING - LOCKING
M: Andrew Morton <akpm@linux-foundation.org>
M: Suren Baghdasaryan <surenb@google.com>
M: Liam R. Howlett <Liam.Howlett@oracle.com>
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
R: Vlastimil Babka <vbabka@suse.cz>
R: Shakeel Butt <shakeel.butt@linux.dev>
L: linux-mm@kvack.org
S: Maintained
W: http://www.linux-mm.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
F: Documentation/mm/process_addrs.rst
F: include/linux/mmap_lock.h
F: include/trace/events/mmap_lock.h
F: mm/mmap_lock.c
MEMORY MAPPING - MADVISE (MEMORY ADVICE)
M: Andrew Morton <akpm@linux-foundation.org>
M: Liam R. Howlett <Liam.Howlett@oracle.com>
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
M: David Hildenbrand <david@redhat.com>
R: Vlastimil Babka <vbabka@suse.cz>
R: Jann Horn <jannh@google.com>
L: linux-mm@kvack.org
S: Maintained
W: http://www.linux-mm.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
F: include/uapi/asm-generic/mman-common.h
F: mm/madvise.c
MEMORY TECHNOLOGY DEVICES (MTD) MEMORY TECHNOLOGY DEVICES (MTD)
M: Miquel Raynal <miquel.raynal@bootlin.com> M: Miquel Raynal <miquel.raynal@bootlin.com>
M: Richard Weinberger <richard@nod.at> M: Richard Weinberger <richard@nod.at>
@ -16756,6 +16825,7 @@ F: Documentation/networking/net_cachelines/net_device.rst
F: drivers/connector/ F: drivers/connector/
F: drivers/net/ F: drivers/net/
F: drivers/ptp/ F: drivers/ptp/
F: drivers/s390/net/
F: include/dt-bindings/net/ F: include/dt-bindings/net/
F: include/linux/cn_proc.h F: include/linux/cn_proc.h
F: include/linux/etherdevice.h F: include/linux/etherdevice.h
@ -16765,6 +16835,7 @@ F: include/linux/fddidevice.h
F: include/linux/hippidevice.h F: include/linux/hippidevice.h
F: include/linux/if_* F: include/linux/if_*
F: include/linux/inetdevice.h F: include/linux/inetdevice.h
F: include/linux/ism.h
F: include/linux/netdev* F: include/linux/netdev*
F: include/linux/platform_data/wiznet.h F: include/linux/platform_data/wiznet.h
F: include/uapi/linux/cn_proc.h F: include/uapi/linux/cn_proc.h
@ -18633,7 +18704,7 @@ F: drivers/pci/controller/pci-xgene-msi.c
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
M: Lorenzo Pieralisi <lpieralisi@kernel.org> M: Lorenzo Pieralisi <lpieralisi@kernel.org>
M: Krzysztof Wilczyński <kw@linux.com> M: Krzysztof Wilczyński <kw@linux.com>
R: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
R: Rob Herring <robh@kernel.org> R: Rob Herring <robh@kernel.org>
L: linux-pci@vger.kernel.org L: linux-pci@vger.kernel.org
S: Supported S: Supported
@ -18686,6 +18757,16 @@ F: include/asm-generic/pci*
F: include/linux/of_pci.h F: include/linux/of_pci.h
F: include/linux/pci* F: include/linux/pci*
F: include/uapi/linux/pci* F: include/uapi/linux/pci*
PCI SUBSYSTEM [RUST]
M: Danilo Krummrich <dakr@kernel.org>
R: Bjorn Helgaas <bhelgaas@google.com>
R: Krzysztof Wilczyński <kwilczynski@kernel.org>
L: linux-pci@vger.kernel.org
S: Maintained
C: irc://irc.oftc.net/linux-pci
T: git git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git
F: rust/helpers/pci.c
F: rust/kernel/pci.rs F: rust/kernel/pci.rs
F: samples/rust/rust_driver_pci.rs F: samples/rust/rust_driver_pci.rs
@ -19746,6 +19827,7 @@ F: drivers/media/tuners/qt1010*
QUALCOMM ATH12K WIRELESS DRIVER QUALCOMM ATH12K WIRELESS DRIVER
M: Jeff Johnson <jjohnson@kernel.org> M: Jeff Johnson <jjohnson@kernel.org>
L: linux-wireless@vger.kernel.org
L: ath12k@lists.infradead.org L: ath12k@lists.infradead.org
S: Supported S: Supported
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k W: https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
@ -19755,6 +19837,7 @@ N: ath12k
QUALCOMM ATHEROS ATH10K WIRELESS DRIVER QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
M: Jeff Johnson <jjohnson@kernel.org> M: Jeff Johnson <jjohnson@kernel.org>
L: linux-wireless@vger.kernel.org
L: ath10k@lists.infradead.org L: ath10k@lists.infradead.org
S: Supported S: Supported
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
@ -19764,6 +19847,7 @@ N: ath10k
QUALCOMM ATHEROS ATH11K WIRELESS DRIVER QUALCOMM ATHEROS ATH11K WIRELESS DRIVER
M: Jeff Johnson <jjohnson@kernel.org> M: Jeff Johnson <jjohnson@kernel.org>
L: linux-wireless@vger.kernel.org
L: ath11k@lists.infradead.org L: ath11k@lists.infradead.org
S: Supported S: Supported
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k W: https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
@ -21253,6 +21337,7 @@ L: linux-s390@vger.kernel.org
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Supported S: Supported
F: drivers/s390/net/ F: drivers/s390/net/
F: include/linux/ism.h
S390 PCI SUBSYSTEM S390 PCI SUBSYSTEM
M: Niklas Schnelle <schnelle@linux.ibm.com> M: Niklas Schnelle <schnelle@linux.ibm.com>
@ -22137,6 +22222,7 @@ F: drivers/platform/x86/touchscreen_dmi.c
SILICON LABS WIRELESS DRIVERS (for WFxxx series) SILICON LABS WIRELESS DRIVERS (for WFxxx series)
M: Jérôme Pouiller <jerome.pouiller@silabs.com> M: Jérôme Pouiller <jerome.pouiller@silabs.com>
L: linux-wireless@vger.kernel.org
S: Supported S: Supported
F: Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml F: Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
F: drivers/net/wireless/silabs/ F: drivers/net/wireless/silabs/
@ -22237,9 +22323,7 @@ F: drivers/nvmem/layouts/sl28vpd.c
SLAB ALLOCATOR SLAB ALLOCATOR
M: Christoph Lameter <cl@linux.com> M: Christoph Lameter <cl@linux.com>
M: Pekka Enberg <penberg@kernel.org>
M: David Rientjes <rientjes@google.com> M: David Rientjes <rientjes@google.com>
M: Joonsoo Kim <iamjoonsoo.kim@lge.com>
M: Andrew Morton <akpm@linux-foundation.org> M: Andrew Morton <akpm@linux-foundation.org>
M: Vlastimil Babka <vbabka@suse.cz> M: Vlastimil Babka <vbabka@suse.cz>
R: Roman Gushchin <roman.gushchin@linux.dev> R: Roman Gushchin <roman.gushchin@linux.dev>
@ -22654,9 +22738,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
F: Documentation/devicetree/bindings/sound/ F: Documentation/devicetree/bindings/sound/
F: Documentation/sound/soc/ F: Documentation/sound/soc/
F: include/dt-bindings/sound/ F: include/dt-bindings/sound/
F: include/sound/cs-amp-lib.h
F: include/sound/cs35l*
F: include/sound/cs4271.h
F: include/sound/cs42l*
F: include/sound/madera-pdata.h
F: include/sound/soc* F: include/sound/soc*
F: include/sound/sof.h F: include/sound/sof.h
F: include/sound/sof/ F: include/sound/sof/
F: include/sound/wm*.h
F: include/trace/events/sof*.h F: include/trace/events/sof*.h
F: include/uapi/sound/asoc.h F: include/uapi/sound/asoc.h
F: sound/soc/ F: sound/soc/
@ -25126,9 +25216,13 @@ S: Maintained
F: drivers/usb/typec/mux/pi3usb30532.c F: drivers/usb/typec/mux/pi3usb30532.c
USB TYPEC PORT CONTROLLER DRIVERS USB TYPEC PORT CONTROLLER DRIVERS
M: Badhri Jagan Sridharan <badhri@google.com>
L: linux-usb@vger.kernel.org L: linux-usb@vger.kernel.org
S: Orphan S: Maintained
F: drivers/usb/typec/tcpm/ F: drivers/usb/typec/tcpm/tcpci.c
F: drivers/usb/typec/tcpm/tcpm.c
F: include/linux/usb/tcpci.h
F: include/linux/usb/tcpm.h
USB TYPEC TUSB1046 MUX DRIVER USB TYPEC TUSB1046 MUX DRIVER
M: Romain Gantois <romain.gantois@bootlin.com> M: Romain Gantois <romain.gantois@bootlin.com>

View File

@ -2,7 +2,7 @@
VERSION = 6 VERSION = 6
PATCHLEVEL = 15 PATCHLEVEL = 15
SUBLEVEL = 0 SUBLEVEL = 0
EXTRAVERSION = -rc1 EXTRAVERSION = -rc4
NAME = Baby Opossum Posse NAME = Baby Opossum Posse
# *DOCUMENTATION* # *DOCUMENTATION*
@ -477,7 +477,6 @@ export rust_common_flags := --edition=2021 \
-Wclippy::ignored_unit_patterns \ -Wclippy::ignored_unit_patterns \
-Wclippy::mut_mut \ -Wclippy::mut_mut \
-Wclippy::needless_bitwise_bool \ -Wclippy::needless_bitwise_bool \
-Wclippy::needless_continue \
-Aclippy::needless_lifetimes \ -Aclippy::needless_lifetimes \
-Wclippy::no_mangle_with_rust_abi \ -Wclippy::no_mangle_with_rust_abi \
-Wclippy::undocumented_unsafe_blocks \ -Wclippy::undocumented_unsafe_blocks \
@ -1054,9 +1053,12 @@ NOSTDINC_FLAGS += -nostdinc
KBUILD_CFLAGS += $(call cc-option, -fstrict-flex-arrays=3) KBUILD_CFLAGS += $(call cc-option, -fstrict-flex-arrays=3)
#Currently, disable -Wstringop-overflow for GCC 11, globally. #Currently, disable -Wstringop-overflow for GCC 11, globally.
KBUILD_CFLAGS-$(CONFIG_CC_NO_STRINGOP_OVERFLOW) += $(call cc-option, -Wno-stringop-overflow) KBUILD_CFLAGS-$(CONFIG_CC_NO_STRINGOP_OVERFLOW) += $(call cc-disable-warning, stringop-overflow)
KBUILD_CFLAGS-$(CONFIG_CC_STRINGOP_OVERFLOW) += $(call cc-option, -Wstringop-overflow) KBUILD_CFLAGS-$(CONFIG_CC_STRINGOP_OVERFLOW) += $(call cc-option, -Wstringop-overflow)
#Currently, disable -Wunterminated-string-initialization as broken
KBUILD_CFLAGS += $(call cc-disable-warning, unterminated-string-initialization)
# disable invalid "can't wrap" optimizations for signed / pointers # disable invalid "can't wrap" optimizations for signed / pointers
KBUILD_CFLAGS += -fno-strict-overflow KBUILD_CFLAGS += -fno-strict-overflow
@ -1068,6 +1070,9 @@ ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += -fconserve-stack KBUILD_CFLAGS += -fconserve-stack
endif endif
# Ensure compilers do not transform certain loops into calls to wcslen()
KBUILD_CFLAGS += -fno-builtin-wcslen
# change __FILE__ to the relative path to the source directory # change __FILE__ to the relative path to the source directory
ifdef building_out_of_srctree ifdef building_out_of_srctree
KBUILD_CPPFLAGS += $(call cc-option,-ffile-prefix-map=$(srcroot)/=) KBUILD_CPPFLAGS += $(call cc-option,-ffile-prefix-map=$(srcroot)/=)

View File

@ -232,7 +232,6 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_DEV_ATMEL_AES=y CONFIG_CRYPTO_DEV_ATMEL_AES=y
CONFIG_CRYPTO_DEV_ATMEL_TDES=y CONFIG_CRYPTO_DEV_ATMEL_TDES=y
CONFIG_CRYPTO_DEV_ATMEL_SHA=y CONFIG_CRYPTO_DEV_ATMEL_SHA=y
CONFIG_CRC_CCITT=y
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y
CONFIG_FONT_ACORN_8x8=y CONFIG_FONT_ACORN_8x8=y

View File

@ -78,7 +78,6 @@ CONFIG_ROMFS_FS=y
CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_CRC_CCITT=y
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_MINI_4x6=y CONFIG_FONT_MINI_4x6=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set

View File

@ -249,7 +249,6 @@ CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_CRC_T10DIF=m
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_RT_MUTEXES=y

View File

@ -128,7 +128,6 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_DEV_MARVELL_CESA=y CONFIG_CRYPTO_DEV_MARVELL_CESA=y
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -370,7 +370,6 @@ CONFIG_CRYPTO_AES_ARM_BS=m
CONFIG_CRYPTO_CHACHA20_NEON=m CONFIG_CRYPTO_CHACHA20_NEON=m
CONFIG_CRYPTO_DEV_EXYNOS_RNG=y CONFIG_CRYPTO_DEV_EXYNOS_RNG=y
CONFIG_CRYPTO_DEV_S5P=y CONFIG_CRYPTO_DEV_S5P=y
CONFIG_CRC_CCITT=y
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=96 CONFIG_CMA_SIZE_MBYTES=96
CONFIG_FONTS=y CONFIG_FONTS=y

View File

@ -481,8 +481,6 @@ CONFIG_SECURITYFS=y
CONFIG_CRYPTO_DEV_FSL_CAAM=y CONFIG_CRYPTO_DEV_FSL_CAAM=y
CONFIG_CRYPTO_DEV_SAHARA=y CONFIG_CRYPTO_DEV_SAHARA=y
CONFIG_CRYPTO_DEV_MXS_DCP=y CONFIG_CRYPTO_DEV_MXS_DCP=y
CONFIG_CRC_CCITT=m
CONFIG_CRC_T10DIF=y
CONFIG_CMA_SIZE_MBYTES=64 CONFIG_CMA_SIZE_MBYTES=64
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y

View File

@ -147,7 +147,6 @@ CONFIG_EXT2_FS=y
# CONFIG_INOTIFY_USER is not set # CONFIG_INOTIFY_USER is not set
CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS=y
# CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_CRC_ITU_T=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_MUST_CHECK is not set # CONFIG_ENABLE_MUST_CHECK is not set
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set

View File

@ -179,7 +179,6 @@ CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_ANSI_CPRNG=y
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DYNAMIC_DEBUG=y CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -108,8 +108,6 @@ CONFIG_CRYPTO_AES_ARM_BS=m
CONFIG_CRYPTO_AES_ARM_CE=m CONFIG_CRYPTO_AES_ARM_CE=m
CONFIG_CRYPTO_CHACHA20_NEON=m CONFIG_CRYPTO_CHACHA20_NEON=m
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_CRC_CCITT=m
CONFIG_CRC_ITU_T=m
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=64 CONFIG_CMA_SIZE_MBYTES=64
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y

View File

@ -67,7 +67,6 @@ CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y CONFIG_ROOT_NFS=y
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -91,6 +91,5 @@ CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_CRAMFS=y CONFIG_CRAMFS=y
CONFIG_MINIX_FS=y CONFIG_MINIX_FS=y
CONFIG_CRC_CCITT=y
# CONFIG_FTRACE is not set # CONFIG_FTRACE is not set
CONFIG_DEBUG_USER=y CONFIG_DEBUG_USER=y

View File

@ -289,7 +289,6 @@ CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_DEV_MARVELL_CESA=y CONFIG_CRYPTO_DEV_MARVELL_CESA=y
CONFIG_CRC_CCITT=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y

View File

@ -187,7 +187,6 @@ CONFIG_NLS_UTF8=y
CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_DEV_MARVELL_CESA=y CONFIG_CRYPTO_DEV_MARVELL_CESA=y
CONFIG_CRC_CCITT=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y

View File

@ -160,7 +160,6 @@ CONFIG_NLS_CODEPAGE_850=y
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=y CONFIG_NLS_ISO8859_15=y
CONFIG_CRYPTO_DEV_MXS_DCP=y CONFIG_CRYPTO_DEV_MXS_DCP=y
CONFIG_CRC_ITU_T=m
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y

View File

@ -706,9 +706,6 @@ CONFIG_CRYPTO_DEV_OMAP=m
CONFIG_CRYPTO_DEV_OMAP_SHAM=m CONFIG_CRYPTO_DEV_OMAP_SHAM=m
CONFIG_CRYPTO_DEV_OMAP_AES=m CONFIG_CRYPTO_DEV_OMAP_AES=m
CONFIG_CRYPTO_DEV_OMAP_DES=m CONFIG_CRYPTO_DEV_OMAP_DES=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_T10DIF=y
CONFIG_CRC_ITU_T=y
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y

View File

@ -136,7 +136,6 @@ CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_DEV_MARVELL_CESA=y CONFIG_CRYPTO_DEV_MARVELL_CESA=y
CONFIG_CRC_T10DIF=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y

View File

@ -41,7 +41,6 @@ CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y CONFIG_ROOT_NFS=y
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -50,7 +50,6 @@ CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y CONFIG_ROOT_NFS=y
CONFIG_CRC_CCITT=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -663,8 +663,6 @@ CONFIG_CRYPTO_SHA1_ARM=m
CONFIG_CRYPTO_SHA256_ARM=m CONFIG_CRYPTO_SHA256_ARM=m
CONFIG_CRYPTO_SHA512_ARM=m CONFIG_CRYPTO_SHA512_ARM=m
CONFIG_CRYPTO_AES_ARM=m CONFIG_CRYPTO_AES_ARM=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_T10DIF=m
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y CONFIG_FONT_8x16=y

View File

@ -113,7 +113,6 @@ CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y CONFIG_NLS_UTF8=y
CONFIG_CRC_CCITT=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y

View File

@ -227,8 +227,6 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_DEV_ATMEL_AES=y CONFIG_CRYPTO_DEV_ATMEL_AES=y
CONFIG_CRYPTO_DEV_ATMEL_TDES=y CONFIG_CRYPTO_DEV_ATMEL_TDES=y
CONFIG_CRYPTO_DEV_ATMEL_SHA=y CONFIG_CRYPTO_DEV_ATMEL_SHA=y
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=y
CONFIG_DMA_CMA=y CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=32 CONFIG_CMA_SIZE_MBYTES=32
CONFIG_CMA_ALIGNMENT=9 CONFIG_CMA_ALIGNMENT=9

View File

@ -234,7 +234,6 @@ CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_WP512=m
CONFIG_CRC_CCITT=y
CONFIG_FONTS=y CONFIG_FONTS=y
CONFIG_FONT_8x8=y CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y CONFIG_FONT_8x16=y

View File

@ -74,7 +74,6 @@ CONFIG_EXT3_FS=y
# CONFIG_DNOTIFY is not set # CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set # CONFIG_INOTIFY_USER is not set
CONFIG_NLS=y CONFIG_NLS=y
CONFIG_CRC_ITU_T=y
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
# CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y

View File

@ -191,8 +191,6 @@ CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y CONFIG_X509_CERTIFICATE_PARSER=y
CONFIG_PKCS7_MESSAGE_PARSER=y CONFIG_PKCS7_MESSAGE_PARSER=y
CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y

View File

@ -121,6 +121,15 @@
#define ESR_ELx_FSC_SEA_TTW(n) (0x14 + (n)) #define ESR_ELx_FSC_SEA_TTW(n) (0x14 + (n))
#define ESR_ELx_FSC_SECC (0x18) #define ESR_ELx_FSC_SECC (0x18)
#define ESR_ELx_FSC_SECC_TTW(n) (0x1c + (n)) #define ESR_ELx_FSC_SECC_TTW(n) (0x1c + (n))
#define ESR_ELx_FSC_ADDRSZ (0x00)
/*
* Annoyingly, the negative levels for Address size faults aren't laid out
* contiguously (or in the desired order)
*/
#define ESR_ELx_FSC_ADDRSZ_nL(n) ((n) == -1 ? 0x25 : 0x2C)
#define ESR_ELx_FSC_ADDRSZ_L(n) ((n) < 0 ? ESR_ELx_FSC_ADDRSZ_nL(n) : \
(ESR_ELx_FSC_ADDRSZ + (n)))
/* Status codes for individual page table levels */ /* Status codes for individual page table levels */
#define ESR_ELx_FSC_ACCESS_L(n) (ESR_ELx_FSC_ACCESS + (n)) #define ESR_ELx_FSC_ACCESS_L(n) (ESR_ELx_FSC_ACCESS + (n))
@ -161,8 +170,6 @@
#define ESR_ELx_Xs_MASK (GENMASK_ULL(4, 0)) #define ESR_ELx_Xs_MASK (GENMASK_ULL(4, 0))
/* ISS field definitions for exceptions taken in to Hyp */ /* ISS field definitions for exceptions taken in to Hyp */
#define ESR_ELx_FSC_ADDRSZ (0x00)
#define ESR_ELx_FSC_ADDRSZ_L(n) (ESR_ELx_FSC_ADDRSZ + (n))
#define ESR_ELx_CV (UL(1) << 24) #define ESR_ELx_CV (UL(1) << 24)
#define ESR_ELx_COND_SHIFT (20) #define ESR_ELx_COND_SHIFT (20)
#define ESR_ELx_COND_MASK (UL(0xF) << ESR_ELx_COND_SHIFT) #define ESR_ELx_COND_MASK (UL(0xF) << ESR_ELx_COND_SHIFT)
@ -464,6 +471,39 @@ static inline bool esr_fsc_is_access_flag_fault(unsigned long esr)
(esr == ESR_ELx_FSC_ACCESS_L(0)); (esr == ESR_ELx_FSC_ACCESS_L(0));
} }
static inline bool esr_fsc_is_addr_sz_fault(unsigned long esr)
{
esr &= ESR_ELx_FSC;
return (esr == ESR_ELx_FSC_ADDRSZ_L(3)) ||
(esr == ESR_ELx_FSC_ADDRSZ_L(2)) ||
(esr == ESR_ELx_FSC_ADDRSZ_L(1)) ||
(esr == ESR_ELx_FSC_ADDRSZ_L(0)) ||
(esr == ESR_ELx_FSC_ADDRSZ_L(-1));
}
static inline bool esr_fsc_is_sea_ttw(unsigned long esr)
{
esr = esr & ESR_ELx_FSC;
return (esr == ESR_ELx_FSC_SEA_TTW(3)) ||
(esr == ESR_ELx_FSC_SEA_TTW(2)) ||
(esr == ESR_ELx_FSC_SEA_TTW(1)) ||
(esr == ESR_ELx_FSC_SEA_TTW(0)) ||
(esr == ESR_ELx_FSC_SEA_TTW(-1));
}
static inline bool esr_fsc_is_secc_ttw(unsigned long esr)
{
esr = esr & ESR_ELx_FSC;
return (esr == ESR_ELx_FSC_SECC_TTW(3)) ||
(esr == ESR_ELx_FSC_SECC_TTW(2)) ||
(esr == ESR_ELx_FSC_SECC_TTW(1)) ||
(esr == ESR_ELx_FSC_SECC_TTW(0)) ||
(esr == ESR_ELx_FSC_SECC_TTW(-1));
}
/* Indicate whether ESR.EC==0x1A is for an ERETAx instruction */ /* Indicate whether ESR.EC==0x1A is for an ERETAx instruction */
static inline bool esr_iss_is_eretax(unsigned long esr) static inline bool esr_iss_is_eretax(unsigned long esr)
{ {

View File

@ -305,7 +305,12 @@ static __always_inline unsigned long kvm_vcpu_get_hfar(const struct kvm_vcpu *vc
static __always_inline phys_addr_t kvm_vcpu_get_fault_ipa(const struct kvm_vcpu *vcpu) static __always_inline phys_addr_t kvm_vcpu_get_fault_ipa(const struct kvm_vcpu *vcpu)
{ {
return ((phys_addr_t)vcpu->arch.fault.hpfar_el2 & HPFAR_MASK) << 8; u64 hpfar = vcpu->arch.fault.hpfar_el2;
if (unlikely(!(hpfar & HPFAR_EL2_NS)))
return INVALID_GPA;
return FIELD_GET(HPFAR_EL2_FIPA, hpfar) << 12;
} }
static inline u64 kvm_vcpu_get_disr(const struct kvm_vcpu *vcpu) static inline u64 kvm_vcpu_get_disr(const struct kvm_vcpu *vcpu)

View File

@ -1588,4 +1588,9 @@ void kvm_set_vm_id_reg(struct kvm *kvm, u32 reg, u64 val);
#define kvm_has_s1poe(k) \ #define kvm_has_s1poe(k) \
(kvm_has_feat((k), ID_AA64MMFR3_EL1, S1POE, IMP)) (kvm_has_feat((k), ID_AA64MMFR3_EL1, S1POE, IMP))
static inline bool kvm_arch_has_irq_bypass(void)
{
return true;
}
#endif /* __ARM64_KVM_HOST_H__ */ #endif /* __ARM64_KVM_HOST_H__ */

View File

@ -14,7 +14,7 @@
* Was this synchronous external abort a RAS notification? * Was this synchronous external abort a RAS notification?
* Returns '0' for errors handled by some RAS subsystem, or -ENOENT. * Returns '0' for errors handled by some RAS subsystem, or -ENOENT.
*/ */
static inline int kvm_handle_guest_sea(phys_addr_t addr, u64 esr) static inline int kvm_handle_guest_sea(void)
{ {
/* apei_claim_sea(NULL) expects to mask interrupts itself */ /* apei_claim_sea(NULL) expects to mask interrupts itself */
lockdep_assert_irqs_enabled(); lockdep_assert_irqs_enabled();

View File

@ -94,17 +94,6 @@ static inline bool kaslr_requires_kpti(void)
return false; return false;
} }
/*
* Systems affected by Cavium erratum 24756 are incompatible
* with KPTI.
*/
if (IS_ENABLED(CONFIG_CAVIUM_ERRATUM_27456)) {
extern const struct midr_range cavium_erratum_27456_cpus[];
if (is_midr_in_range_list(cavium_erratum_27456_cpus))
return false;
}
return true; return true;
} }

View File

@ -86,7 +86,7 @@
#endif #endif
#define res_smp_cond_load_acquire_timewait(v, c) smp_cond_load_acquire_timewait(v, c, 0, 1) #define res_smp_cond_load_acquire(v, c) smp_cond_load_acquire_timewait(v, c, 0, 1)
#include <asm-generic/rqspinlock.h> #include <asm-generic/rqspinlock.h>

View File

@ -335,7 +335,7 @@ static const struct midr_range cavium_erratum_23154_cpus[] = {
#endif #endif
#ifdef CONFIG_CAVIUM_ERRATUM_27456 #ifdef CONFIG_CAVIUM_ERRATUM_27456
const struct midr_range cavium_erratum_27456_cpus[] = { static const struct midr_range cavium_erratum_27456_cpus[] = {
/* Cavium ThunderX, T88 pass 1.x - 2.1 */ /* Cavium ThunderX, T88 pass 1.x - 2.1 */
MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 1), MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 1),
/* Cavium ThunderX, T81 pass 1.0 */ /* Cavium ThunderX, T81 pass 1.0 */

View File

@ -47,10 +47,6 @@ PROVIDE(__pi_id_aa64smfr0_override = id_aa64smfr0_override);
PROVIDE(__pi_id_aa64zfr0_override = id_aa64zfr0_override); PROVIDE(__pi_id_aa64zfr0_override = id_aa64zfr0_override);
PROVIDE(__pi_arm64_sw_feature_override = arm64_sw_feature_override); PROVIDE(__pi_arm64_sw_feature_override = arm64_sw_feature_override);
PROVIDE(__pi_arm64_use_ng_mappings = arm64_use_ng_mappings); PROVIDE(__pi_arm64_use_ng_mappings = arm64_use_ng_mappings);
#ifdef CONFIG_CAVIUM_ERRATUM_27456
PROVIDE(__pi_cavium_erratum_27456_cpus = cavium_erratum_27456_cpus);
PROVIDE(__pi_is_midr_in_range_list = is_midr_in_range_list);
#endif
PROVIDE(__pi__ctype = _ctype); PROVIDE(__pi__ctype = _ctype);
PROVIDE(__pi_memstart_offset_seed = memstart_offset_seed); PROVIDE(__pi_memstart_offset_seed = memstart_offset_seed);

View File

@ -207,6 +207,29 @@ static void __init map_fdt(u64 fdt)
dsb(ishst); dsb(ishst);
} }
/*
* PI version of the Cavium Eratum 27456 detection, which makes it
* impossible to use non-global mappings.
*/
static bool __init ng_mappings_allowed(void)
{
static const struct midr_range cavium_erratum_27456_cpus[] __initconst = {
/* Cavium ThunderX, T88 pass 1.x - 2.1 */
MIDR_RANGE(MIDR_THUNDERX, 0, 0, 1, 1),
/* Cavium ThunderX, T81 pass 1.0 */
MIDR_REV(MIDR_THUNDERX_81XX, 0, 0),
{},
};
for (const struct midr_range *r = cavium_erratum_27456_cpus; r->model; r++) {
if (midr_is_cpu_model_range(read_cpuid_id(), r->model,
r->rv_min, r->rv_max))
return false;
}
return true;
}
asmlinkage void __init early_map_kernel(u64 boot_status, void *fdt) asmlinkage void __init early_map_kernel(u64 boot_status, void *fdt)
{ {
static char const chosen_str[] __initconst = "/chosen"; static char const chosen_str[] __initconst = "/chosen";
@ -246,7 +269,7 @@ asmlinkage void __init early_map_kernel(u64 boot_status, void *fdt)
u64 kaslr_seed = kaslr_early_init(fdt, chosen); u64 kaslr_seed = kaslr_early_init(fdt, chosen);
if (kaslr_seed && kaslr_requires_kpti()) if (kaslr_seed && kaslr_requires_kpti())
arm64_use_ng_mappings = true; arm64_use_ng_mappings = ng_mappings_allowed();
kaslr_offset |= kaslr_seed & ~(MIN_KIMG_ALIGN - 1); kaslr_offset |= kaslr_seed & ~(MIN_KIMG_ALIGN - 1);
} }

View File

@ -2743,11 +2743,6 @@ bool kvm_arch_irqchip_in_kernel(struct kvm *kvm)
return irqchip_in_kernel(kvm); return irqchip_in_kernel(kvm);
} }
bool kvm_arch_has_irq_bypass(void)
{
return true;
}
int kvm_arch_irq_bypass_add_producer(struct irq_bypass_consumer *cons, int kvm_arch_irq_bypass_add_producer(struct irq_bypass_consumer *cons,
struct irq_bypass_producer *prod) struct irq_bypass_producer *prod)
{ {

View File

@ -12,6 +12,16 @@
#include <asm/kvm_hyp.h> #include <asm/kvm_hyp.h>
#include <asm/kvm_mmu.h> #include <asm/kvm_mmu.h>
static inline bool __fault_safe_to_translate(u64 esr)
{
u64 fsc = esr & ESR_ELx_FSC;
if (esr_fsc_is_sea_ttw(esr) || esr_fsc_is_secc_ttw(esr))
return false;
return !(fsc == ESR_ELx_FSC_EXTABT && (esr & ESR_ELx_FnV));
}
static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar) static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar)
{ {
int ret; int ret;
@ -44,34 +54,50 @@ static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar)
return true; return true;
} }
/*
* Checks for the conditions when HPFAR_EL2 is written, per ARM ARM R_FKLWR.
*/
static inline bool __hpfar_valid(u64 esr)
{
/*
* CPUs affected by ARM erratum #834220 may incorrectly report a
* stage-2 translation fault when a stage-1 permission fault occurs.
*
* Re-walk the page tables to determine if a stage-1 fault actually
* occurred.
*/
if (cpus_have_final_cap(ARM64_WORKAROUND_834220) &&
esr_fsc_is_translation_fault(esr))
return false;
if (esr_fsc_is_translation_fault(esr) || esr_fsc_is_access_flag_fault(esr))
return true;
if ((esr & ESR_ELx_S1PTW) && esr_fsc_is_permission_fault(esr))
return true;
return esr_fsc_is_addr_sz_fault(esr);
}
static inline bool __get_fault_info(u64 esr, struct kvm_vcpu_fault_info *fault) static inline bool __get_fault_info(u64 esr, struct kvm_vcpu_fault_info *fault)
{ {
u64 hpfar, far; u64 hpfar;
far = read_sysreg_el2(SYS_FAR); fault->far_el2 = read_sysreg_el2(SYS_FAR);
fault->hpfar_el2 = 0;
if (__hpfar_valid(esr))
hpfar = read_sysreg(hpfar_el2);
else if (unlikely(!__fault_safe_to_translate(esr)))
return true;
else if (!__translate_far_to_hpfar(fault->far_el2, &hpfar))
return false;
/* /*
* The HPFAR can be invalid if the stage 2 fault did not * Hijack HPFAR_EL2.NS (RES0 in Non-secure) to indicate a valid
* happen during a stage 1 page table walk (the ESR_EL2.S1PTW * HPFAR value.
* bit is clear) and one of the two following cases are true:
* 1. The fault was due to a permission fault
* 2. The processor carries errata 834220
*
* Therefore, for all non S1PTW faults where we either have a
* permission fault or the errata workaround is enabled, we
* resolve the IPA using the AT instruction.
*/ */
if (!(esr & ESR_ELx_S1PTW) && fault->hpfar_el2 = hpfar | HPFAR_EL2_NS;
(cpus_have_final_cap(ARM64_WORKAROUND_834220) ||
esr_fsc_is_permission_fault(esr))) {
if (!__translate_far_to_hpfar(far, &hpfar))
return false;
} else {
hpfar = read_sysreg(hpfar_el2);
}
fault->far_el2 = far;
fault->hpfar_el2 = hpfar;
return true; return true;
} }

View File

@ -730,10 +730,10 @@ static void do_ffa_version(struct arm_smccc_res *res,
hyp_ffa_version = ffa_req_version; hyp_ffa_version = ffa_req_version;
} }
if (hyp_ffa_post_init()) if (hyp_ffa_post_init()) {
res->a0 = FFA_RET_NOT_SUPPORTED; res->a0 = FFA_RET_NOT_SUPPORTED;
else { } else {
has_version_negotiated = true; smp_store_release(&has_version_negotiated, true);
res->a0 = hyp_ffa_version; res->a0 = hyp_ffa_version;
} }
unlock: unlock:
@ -809,7 +809,8 @@ bool kvm_host_ffa_handler(struct kvm_cpu_context *host_ctxt, u32 func_id)
if (!is_ffa_call(func_id)) if (!is_ffa_call(func_id))
return false; return false;
if (!has_version_negotiated && func_id != FFA_VERSION) { if (func_id != FFA_VERSION &&
!smp_load_acquire(&has_version_negotiated)) {
ffa_to_smccc_error(&res, FFA_RET_INVALID_PARAMETERS); ffa_to_smccc_error(&res, FFA_RET_INVALID_PARAMETERS);
goto out_handled; goto out_handled;
} }

View File

@ -578,7 +578,14 @@ void handle_host_mem_abort(struct kvm_cpu_context *host_ctxt)
return; return;
} }
addr = (fault.hpfar_el2 & HPFAR_MASK) << 8;
/*
* Yikes, we couldn't resolve the fault IPA. This should reinject an
* abort into the host when we figure out how to do that.
*/
BUG_ON(!(fault.hpfar_el2 & HPFAR_EL2_NS));
addr = FIELD_GET(HPFAR_EL2_FIPA, fault.hpfar_el2) << 12;
ret = host_stage2_idmap(addr); ret = host_stage2_idmap(addr);
BUG_ON(ret && ret != -EAGAIN); BUG_ON(ret && ret != -EAGAIN);
} }

View File

@ -1794,9 +1794,28 @@ int kvm_handle_guest_abort(struct kvm_vcpu *vcpu)
gfn_t gfn; gfn_t gfn;
int ret, idx; int ret, idx;
/* Synchronous External Abort? */
if (kvm_vcpu_abt_issea(vcpu)) {
/*
* For RAS the host kernel may handle this abort.
* There is no need to pass the error into the guest.
*/
if (kvm_handle_guest_sea())
kvm_inject_vabt(vcpu);
return 1;
}
esr = kvm_vcpu_get_esr(vcpu); esr = kvm_vcpu_get_esr(vcpu);
/*
* The fault IPA should be reliable at this point as we're not dealing
* with an SEA.
*/
ipa = fault_ipa = kvm_vcpu_get_fault_ipa(vcpu); ipa = fault_ipa = kvm_vcpu_get_fault_ipa(vcpu);
if (KVM_BUG_ON(ipa == INVALID_GPA, vcpu->kvm))
return -EFAULT;
is_iabt = kvm_vcpu_trap_is_iabt(vcpu); is_iabt = kvm_vcpu_trap_is_iabt(vcpu);
if (esr_fsc_is_translation_fault(esr)) { if (esr_fsc_is_translation_fault(esr)) {
@ -1818,18 +1837,6 @@ int kvm_handle_guest_abort(struct kvm_vcpu *vcpu)
} }
} }
/* Synchronous External Abort? */
if (kvm_vcpu_abt_issea(vcpu)) {
/*
* For RAS the host kernel may handle this abort.
* There is no need to pass the error into the guest.
*/
if (kvm_handle_guest_sea(fault_ipa, kvm_vcpu_get_esr(vcpu)))
kvm_inject_vabt(vcpu);
return 1;
}
trace_kvm_guest_fault(*vcpu_pc(vcpu), kvm_vcpu_get_esr(vcpu), trace_kvm_guest_fault(*vcpu_pc(vcpu), kvm_vcpu_get_esr(vcpu),
kvm_vcpu_get_hfar(vcpu), fault_ipa); kvm_vcpu_get_hfar(vcpu), fault_ipa);

View File

@ -3536,3 +3536,10 @@ Field 5 F
Field 4 P Field 4 P
Field 3:0 Align Field 3:0 Align
EndSysreg EndSysreg
Sysreg HPFAR_EL2 3 4 6 0 4
Field 63 NS
Res0 62:48
Field 47:4 FIPA
Res0 3:0
EndSysreg

View File

@ -72,9 +72,6 @@ CONFIG_INET=y
CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_CRC_CCITT=y
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
CONFIG_FRAME_WARN=0 CONFIG_FRAME_WARN=0
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y

View File

@ -73,6 +73,7 @@ config LOONGARCH
select ARCH_SUPPORTS_RT select ARCH_SUPPORTS_RT
select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_BUILTIN_BSWAP
select ARCH_USE_CMPXCHG_LOCKREF select ARCH_USE_CMPXCHG_LOCKREF
select ARCH_USE_MEMTEST
select ARCH_USE_QUEUED_RWLOCKS select ARCH_USE_QUEUED_RWLOCKS
select ARCH_USE_QUEUED_SPINLOCKS select ARCH_USE_QUEUED_SPINLOCKS
select ARCH_WANT_DEFAULT_BPF_JIT select ARCH_WANT_DEFAULT_BPF_JIT

View File

@ -22,22 +22,29 @@
struct sigcontext; struct sigcontext;
#define kernel_fpu_available() cpu_has_fpu #define kernel_fpu_available() cpu_has_fpu
extern void kernel_fpu_begin(void);
extern void kernel_fpu_end(void);
extern void _init_fpu(unsigned int); void kernel_fpu_begin(void);
extern void _save_fp(struct loongarch_fpu *); void kernel_fpu_end(void);
extern void _restore_fp(struct loongarch_fpu *);
extern void _save_lsx(struct loongarch_fpu *fpu); asmlinkage void _init_fpu(unsigned int);
extern void _restore_lsx(struct loongarch_fpu *fpu); asmlinkage void _save_fp(struct loongarch_fpu *);
extern void _init_lsx_upper(void); asmlinkage void _restore_fp(struct loongarch_fpu *);
extern void _restore_lsx_upper(struct loongarch_fpu *fpu); asmlinkage int _save_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
asmlinkage int _restore_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern void _save_lasx(struct loongarch_fpu *fpu); asmlinkage void _save_lsx(struct loongarch_fpu *fpu);
extern void _restore_lasx(struct loongarch_fpu *fpu); asmlinkage void _restore_lsx(struct loongarch_fpu *fpu);
extern void _init_lasx_upper(void); asmlinkage void _init_lsx_upper(void);
extern void _restore_lasx_upper(struct loongarch_fpu *fpu); asmlinkage void _restore_lsx_upper(struct loongarch_fpu *fpu);
asmlinkage int _save_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage int _restore_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage void _save_lasx(struct loongarch_fpu *fpu);
asmlinkage void _restore_lasx(struct loongarch_fpu *fpu);
asmlinkage void _init_lasx_upper(void);
asmlinkage void _restore_lasx_upper(struct loongarch_fpu *fpu);
asmlinkage int _save_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
asmlinkage int _restore_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
static inline void enable_lsx(void); static inline void enable_lsx(void);
static inline void disable_lsx(void); static inline void disable_lsx(void);

View File

@ -12,9 +12,13 @@
#include <asm/loongarch.h> #include <asm/loongarch.h>
#include <asm/processor.h> #include <asm/processor.h>
extern void _init_lbt(void); asmlinkage void _init_lbt(void);
extern void _save_lbt(struct loongarch_lbt *); asmlinkage void _save_lbt(struct loongarch_lbt *);
extern void _restore_lbt(struct loongarch_lbt *); asmlinkage void _restore_lbt(struct loongarch_lbt *);
asmlinkage int _save_lbt_context(void __user *regs, void __user *eflags);
asmlinkage int _restore_lbt_context(void __user *regs, void __user *eflags);
asmlinkage int _save_ftop_context(void __user *ftop);
asmlinkage int _restore_ftop_context(void __user *ftop);
static inline int is_lbt_enabled(void) static inline int is_lbt_enabled(void)
{ {

View File

@ -33,9 +33,9 @@ struct pt_regs {
unsigned long __last[]; unsigned long __last[];
} __aligned(8); } __aligned(8);
static inline int regs_irqs_disabled(struct pt_regs *regs) static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
{ {
return arch_irqs_disabled_flags(regs->csr_prmd); return !(regs->csr_prmd & CSR_PRMD_PIE);
} }
static inline unsigned long kernel_stack_pointer(struct pt_regs *regs) static inline unsigned long kernel_stack_pointer(struct pt_regs *regs)

View File

@ -21,10 +21,10 @@ obj-$(CONFIG_CPU_HAS_LBT) += lbt.o
obj-$(CONFIG_ARCH_STRICT_ALIGN) += unaligned.o obj-$(CONFIG_ARCH_STRICT_ALIGN) += unaligned.o
CFLAGS_module.o += $(call cc-option,-Wno-override-init,) CFLAGS_module.o += $(call cc-disable-warning, override-init)
CFLAGS_syscall.o += $(call cc-option,-Wno-override-init,) CFLAGS_syscall.o += $(call cc-disable-warning, override-init)
CFLAGS_traps.o += $(call cc-option,-Wno-override-init,) CFLAGS_traps.o += $(call cc-disable-warning, override-init)
CFLAGS_perf_event.o += $(call cc-option,-Wno-override-init,) CFLAGS_perf_event.o += $(call cc-disable-warning, override-init)
ifdef CONFIG_FUNCTION_TRACER ifdef CONFIG_FUNCTION_TRACER
ifndef CONFIG_DYNAMIC_FTRACE ifndef CONFIG_DYNAMIC_FTRACE

View File

@ -458,6 +458,7 @@ SYM_FUNC_START(_save_fp_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_save_fp_context) SYM_FUNC_END(_save_fp_context)
EXPORT_SYMBOL_GPL(_save_fp_context)
/* /*
* a0: fpregs * a0: fpregs
@ -471,6 +472,7 @@ SYM_FUNC_START(_restore_fp_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_restore_fp_context) SYM_FUNC_END(_restore_fp_context)
EXPORT_SYMBOL_GPL(_restore_fp_context)
/* /*
* a0: fpregs * a0: fpregs
@ -484,6 +486,7 @@ SYM_FUNC_START(_save_lsx_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_save_lsx_context) SYM_FUNC_END(_save_lsx_context)
EXPORT_SYMBOL_GPL(_save_lsx_context)
/* /*
* a0: fpregs * a0: fpregs
@ -497,6 +500,7 @@ SYM_FUNC_START(_restore_lsx_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_restore_lsx_context) SYM_FUNC_END(_restore_lsx_context)
EXPORT_SYMBOL_GPL(_restore_lsx_context)
/* /*
* a0: fpregs * a0: fpregs
@ -510,6 +514,7 @@ SYM_FUNC_START(_save_lasx_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_save_lasx_context) SYM_FUNC_END(_save_lasx_context)
EXPORT_SYMBOL_GPL(_save_lasx_context)
/* /*
* a0: fpregs * a0: fpregs
@ -523,6 +528,7 @@ SYM_FUNC_START(_restore_lasx_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_restore_lasx_context) SYM_FUNC_END(_restore_lasx_context)
EXPORT_SYMBOL_GPL(_restore_lasx_context)
.L_fpu_fault: .L_fpu_fault:
li.w a0, -EFAULT # failure li.w a0, -EFAULT # failure

View File

@ -90,6 +90,7 @@ SYM_FUNC_START(_save_lbt_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_save_lbt_context) SYM_FUNC_END(_save_lbt_context)
EXPORT_SYMBOL_GPL(_save_lbt_context)
/* /*
* a0: scr * a0: scr
@ -110,6 +111,7 @@ SYM_FUNC_START(_restore_lbt_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_restore_lbt_context) SYM_FUNC_END(_restore_lbt_context)
EXPORT_SYMBOL_GPL(_restore_lbt_context)
/* /*
* a0: ftop * a0: ftop
@ -120,6 +122,7 @@ SYM_FUNC_START(_save_ftop_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_save_ftop_context) SYM_FUNC_END(_save_ftop_context)
EXPORT_SYMBOL_GPL(_save_ftop_context)
/* /*
* a0: ftop * a0: ftop
@ -150,6 +153,7 @@ SYM_FUNC_START(_restore_ftop_context)
li.w a0, 0 # success li.w a0, 0 # success
jr ra jr ra
SYM_FUNC_END(_restore_ftop_context) SYM_FUNC_END(_restore_ftop_context)
EXPORT_SYMBOL_GPL(_restore_ftop_context)
.L_lbt_fault: .L_lbt_fault:
li.w a0, -EFAULT # failure li.w a0, -EFAULT # failure

View File

@ -51,27 +51,6 @@
#define lock_lbt_owner() ({ preempt_disable(); pagefault_disable(); }) #define lock_lbt_owner() ({ preempt_disable(); pagefault_disable(); })
#define unlock_lbt_owner() ({ pagefault_enable(); preempt_enable(); }) #define unlock_lbt_owner() ({ pagefault_enable(); preempt_enable(); })
/* Assembly functions to move context to/from the FPU */
extern asmlinkage int
_save_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern asmlinkage int
_restore_fp_context(void __user *fpregs, void __user *fcc, void __user *csr);
extern asmlinkage int
_save_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_restore_lsx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_save_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
extern asmlinkage int
_restore_lasx_context(void __user *fpregs, void __user *fcc, void __user *fcsr);
#ifdef CONFIG_CPU_HAS_LBT
extern asmlinkage int _save_lbt_context(void __user *regs, void __user *eflags);
extern asmlinkage int _restore_lbt_context(void __user *regs, void __user *eflags);
extern asmlinkage int _save_ftop_context(void __user *ftop);
extern asmlinkage int _restore_ftop_context(void __user *ftop);
#endif
struct rt_sigframe { struct rt_sigframe {
struct siginfo rs_info; struct siginfo rs_info;
struct ucontext rs_uctx; struct ucontext rs_uctx;

View File

@ -553,9 +553,10 @@ asmlinkage void noinstr do_ale(struct pt_regs *regs)
die_if_kernel("Kernel ale access", regs); die_if_kernel("Kernel ale access", regs);
force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr); force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr);
#else #else
bool pie = regs_irqs_disabled(regs);
unsigned int *pc; unsigned int *pc;
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_enable(); local_irq_enable();
perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, regs->csr_badvaddr); perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, regs->csr_badvaddr);
@ -582,7 +583,7 @@ sigbus:
die_if_kernel("Kernel ale access", regs); die_if_kernel("Kernel ale access", regs);
force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr); force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *)regs->csr_badvaddr);
out: out:
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_disable(); local_irq_disable();
#endif #endif
irqentry_exit(regs, state); irqentry_exit(regs, state);
@ -621,12 +622,13 @@ static void bug_handler(struct pt_regs *regs)
asmlinkage void noinstr do_bce(struct pt_regs *regs) asmlinkage void noinstr do_bce(struct pt_regs *regs)
{ {
bool user = user_mode(regs); bool user = user_mode(regs);
bool pie = regs_irqs_disabled(regs);
unsigned long era = exception_era(regs); unsigned long era = exception_era(regs);
u64 badv = 0, lower = 0, upper = ULONG_MAX; u64 badv = 0, lower = 0, upper = ULONG_MAX;
union loongarch_instruction insn; union loongarch_instruction insn;
irqentry_state_t state = irqentry_enter(regs); irqentry_state_t state = irqentry_enter(regs);
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_enable(); local_irq_enable();
current->thread.trap_nr = read_csr_excode(); current->thread.trap_nr = read_csr_excode();
@ -692,7 +694,7 @@ asmlinkage void noinstr do_bce(struct pt_regs *regs)
force_sig_bnderr((void __user *)badv, (void __user *)lower, (void __user *)upper); force_sig_bnderr((void __user *)badv, (void __user *)lower, (void __user *)upper);
out: out:
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_disable(); local_irq_disable();
irqentry_exit(regs, state); irqentry_exit(regs, state);
@ -710,11 +712,12 @@ bad_era:
asmlinkage void noinstr do_bp(struct pt_regs *regs) asmlinkage void noinstr do_bp(struct pt_regs *regs)
{ {
bool user = user_mode(regs); bool user = user_mode(regs);
bool pie = regs_irqs_disabled(regs);
unsigned int opcode, bcode; unsigned int opcode, bcode;
unsigned long era = exception_era(regs); unsigned long era = exception_era(regs);
irqentry_state_t state = irqentry_enter(regs); irqentry_state_t state = irqentry_enter(regs);
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_enable(); local_irq_enable();
if (__get_inst(&opcode, (u32 *)era, user)) if (__get_inst(&opcode, (u32 *)era, user))
@ -780,7 +783,7 @@ asmlinkage void noinstr do_bp(struct pt_regs *regs)
} }
out: out:
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_disable(); local_irq_disable();
irqentry_exit(regs, state); irqentry_exit(regs, state);
@ -1015,6 +1018,7 @@ static void init_restore_lbt(void)
asmlinkage void noinstr do_lbt(struct pt_regs *regs) asmlinkage void noinstr do_lbt(struct pt_regs *regs)
{ {
bool pie = regs_irqs_disabled(regs);
irqentry_state_t state = irqentry_enter(regs); irqentry_state_t state = irqentry_enter(regs);
/* /*
@ -1024,7 +1028,7 @@ asmlinkage void noinstr do_lbt(struct pt_regs *regs)
* (including the user using 'MOVGR2GCSR' to turn on TM, which * (including the user using 'MOVGR2GCSR' to turn on TM, which
* will not trigger the BTE), we need to check PRMD first. * will not trigger the BTE), we need to check PRMD first.
*/ */
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_enable(); local_irq_enable();
if (!cpu_has_lbt) { if (!cpu_has_lbt) {
@ -1038,7 +1042,7 @@ asmlinkage void noinstr do_lbt(struct pt_regs *regs)
preempt_enable(); preempt_enable();
out: out:
if (regs->csr_prmd & CSR_PRMD_PIE) if (!pie)
local_irq_disable(); local_irq_disable();
irqentry_exit(regs, state); irqentry_exit(regs, state);

View File

@ -21,4 +21,4 @@ kvm-y += intc/eiointc.o
kvm-y += intc/pch_pic.o kvm-y += intc/pch_pic.o
kvm-y += irqfd.o kvm-y += irqfd.o
CFLAGS_exit.o += $(call cc-option,-Wno-override-init,) CFLAGS_exit.o += $(call cc-disable-warning, override-init)

View File

@ -111,7 +111,7 @@ static int send_ipi_data(struct kvm_vcpu *vcpu, gpa_t addr, uint64_t data)
ret = kvm_io_bus_read(vcpu, KVM_IOCSR_BUS, addr, sizeof(val), &val); ret = kvm_io_bus_read(vcpu, KVM_IOCSR_BUS, addr, sizeof(val), &val);
srcu_read_unlock(&vcpu->kvm->srcu, idx); srcu_read_unlock(&vcpu->kvm->srcu, idx);
if (unlikely(ret)) { if (unlikely(ret)) {
kvm_err("%s: : read date from addr %llx failed\n", __func__, addr); kvm_err("%s: : read data from addr %llx failed\n", __func__, addr);
return ret; return ret;
} }
/* Construct the mask by scanning the bit 27-30 */ /* Construct the mask by scanning the bit 27-30 */
@ -127,7 +127,7 @@ static int send_ipi_data(struct kvm_vcpu *vcpu, gpa_t addr, uint64_t data)
ret = kvm_io_bus_write(vcpu, KVM_IOCSR_BUS, addr, sizeof(val), &val); ret = kvm_io_bus_write(vcpu, KVM_IOCSR_BUS, addr, sizeof(val), &val);
srcu_read_unlock(&vcpu->kvm->srcu, idx); srcu_read_unlock(&vcpu->kvm->srcu, idx);
if (unlikely(ret)) if (unlikely(ret))
kvm_err("%s: : write date to addr %llx failed\n", __func__, addr); kvm_err("%s: : write data to addr %llx failed\n", __func__, addr);
return ret; return ret;
} }

View File

@ -296,10 +296,10 @@ int kvm_arch_enable_virtualization_cpu(void)
/* /*
* Enable virtualization features granting guest direct control of * Enable virtualization features granting guest direct control of
* certain features: * certain features:
* GCI=2: Trap on init or unimplement cache instruction. * GCI=2: Trap on init or unimplemented cache instruction.
* TORU=0: Trap on Root Unimplement. * TORU=0: Trap on Root Unimplement.
* CACTRL=1: Root control cache. * CACTRL=1: Root control cache.
* TOP=0: Trap on Previlege. * TOP=0: Trap on Privilege.
* TOE=0: Trap on Exception. * TOE=0: Trap on Exception.
* TIT=0: Trap on Timer. * TIT=0: Trap on Timer.
*/ */

View File

@ -294,6 +294,7 @@ static int kvm_pre_enter_guest(struct kvm_vcpu *vcpu)
vcpu->arch.aux_inuse &= ~KVM_LARCH_SWCSR_LATEST; vcpu->arch.aux_inuse &= ~KVM_LARCH_SWCSR_LATEST;
if (kvm_request_pending(vcpu) || xfer_to_guest_mode_work_pending()) { if (kvm_request_pending(vcpu) || xfer_to_guest_mode_work_pending()) {
kvm_lose_pmu(vcpu);
/* make sure the vcpu mode has been written */ /* make sure the vcpu mode has been written */
smp_store_mb(vcpu->mode, OUTSIDE_GUEST_MODE); smp_store_mb(vcpu->mode, OUTSIDE_GUEST_MODE);
local_irq_enable(); local_irq_enable();
@ -902,6 +903,13 @@ static int kvm_set_one_reg(struct kvm_vcpu *vcpu,
vcpu->arch.st.guest_addr = 0; vcpu->arch.st.guest_addr = 0;
memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending)); memset(&vcpu->arch.irq_pending, 0, sizeof(vcpu->arch.irq_pending));
memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear)); memset(&vcpu->arch.irq_clear, 0, sizeof(vcpu->arch.irq_clear));
/*
* When vCPU reset, clear the ESTAT and GINTC registers
* Other CSR registers are cleared with function _kvm_setcsr().
*/
kvm_write_sw_gcsr(vcpu->arch.csr, LOONGARCH_CSR_GINTC, 0);
kvm_write_sw_gcsr(vcpu->arch.csr, LOONGARCH_CSR_ESTAT, 0);
break; break;
default: default:
ret = -EINVAL; ret = -EINVAL;

View File

@ -47,7 +47,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr,
pmd = pmd_offset(pud, addr); pmd = pmd_offset(pud, addr);
} }
} }
return (pte_t *) pmd; return pmd_none(pmdp_get(pmd)) ? NULL : (pte_t *) pmd;
} }
uint64_t pmd_to_entrylo(unsigned long pmd_val) uint64_t pmd_to_entrylo(unsigned long pmd_val)

View File

@ -65,9 +65,6 @@ void __init paging_init(void)
{ {
unsigned long max_zone_pfns[MAX_NR_ZONES]; unsigned long max_zone_pfns[MAX_NR_ZONES];
#ifdef CONFIG_ZONE_DMA
max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
#endif
#ifdef CONFIG_ZONE_DMA32 #ifdef CONFIG_ZONE_DMA32
max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN; max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
#endif #endif

View File

@ -89,4 +89,3 @@ CONFIG_PANIC_ON_OOPS=y
# CONFIG_CRYPTO_ECHAINIV is not set # CONFIG_CRYPTO_ECHAINIV is not set
CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_ANSI_CPRNG=y
# CONFIG_CRYPTO_HW is not set # CONFIG_CRYPTO_HW is not set
CONFIG_CRC16=y

View File

@ -82,7 +82,6 @@ CONFIG_LEDS_GPIO=y
# CONFIG_IOMMU_SUPPORT is not set # CONFIG_IOMMU_SUPPORT is not set
# CONFIG_DNOTIFY is not set # CONFIG_DNOTIFY is not set
# CONFIG_PROC_PAGE_MONITOR is not set # CONFIG_PROC_PAGE_MONITOR is not set
CONFIG_CRC_ITU_T=m
CONFIG_STRIP_ASM_SYMS=y CONFIG_STRIP_ASM_SYMS=y
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_SCHED_DEBUG is not set # CONFIG_SCHED_DEBUG is not set

View File

@ -238,7 +238,6 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_LZO=m CONFIG_CRYPTO_LZO=m
CONFIG_CRC_T10DIF=m
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_MEMORY_INIT=y CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DETECT_HUNG_TASK=y CONFIG_DETECT_HUNG_TASK=y

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