summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-12-05 10:52:12 +0000
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2025-12-10 12:22:15 +0000
commitfd2dee1c6e2256f726ba33fd3083a7be0efc80d3 (patch)
tree432c35fe08ac086f84be27f7ddf28255c9aa863d /include/sound
parent7733bc7d299d682f2723dc38fc7f370b9bf973e9 (diff)
ARM: fix branch predictor hardeningfixes
__do_user_fault() may be called with indeterminent interrupt enable state, which means we may be preemptive at this point. This causes problems when calling harden_branch_predictor(). For example, when called from a data abort, do_alignment_fault()->do_bad_area(). Move harden_branch_predictor() out of __do_user_fault() and into the calling contexts. Moving it into do_kernel_address_page_fault(), we can be sure that interrupts will be disabled here. Converting do_translation_fault() to use do_kernel_address_page_fault() rather than do_bad_area() means that we keep branch predictor handling for translation faults. Interrupts will also be disabled at this call site. do_sect_fault() needs special handling, so detect user mode accesses to kernel-addresses, and add an explicit call to branch predictor hardening. Finally, add branch predictor hardening to do_alignment() for the faulting case (user mode accessing kernel addresses) before interrupts are enabled. This should cover all cases where harden_branch_predictor() is called, ensuring that it is always has interrupts disabled, also ensuring that it is called early in each call path. Reviewed-by: Xie Yuanbin <xieyuanbin1@huawei.com> Tested-by: Xie Yuanbin <xieyuanbin1@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'include/sound')
0 files changed, 0 insertions, 0 deletions
criptorsBoris Brezillon 2020-06-26mtd: rawnand: fsl_upm: Use platform_get_resource() + devm_ioremap_resource()Boris Brezillon 2020-06-26mtd: rawnand: fsl_upm: Use devm_kasprintf() to allocate the MTD nameBoris Brezillon 2020-06-26mtd: rawnand: fsl_upm: Allocate the fsl_upm_nand object using devm_kzalloc()Boris Brezillon 2020-06-26mtd: rawnand: fsl_upm: Get rid of the unused fsl_upm_nand.parts fieldBoris Brezillon 2020-06-26mtd: rawnand: fsl_upm: Remove unused mtd varBoris Brezillon 2020-05-31mtd: rawnand: fsl_upm: Stop using nand_release()Miquel Raynal 2020-01-06remove ioremap_nocache and devm_ioremap_nocacheChristoph Hellwig 2019-05-30treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152Thomas Gleixner 2018-12-07mtd: rawnand: Deprecate the ->select_chip() hookBoris Brezillon 2018-10-03mtd: rawnand: Deprecate ->chip_delayBoris Brezillon 2018-10-03mtd: rawnand: Deprecate ->dev_ready() and ->waitfunc()Boris Brezillon 2018-10-03mtd: rawnand: Deprecate ->cmd_ctrl() and ->cmdfunc()Boris Brezillon 2018-10-03mtd: rawnand: Deprecate ->{read, write}_{byte, buf}() hooksBoris Brezillon 2018-10-03mtd: rawnand: Create a legacy struct and move ->IO_ADDR_{R, W} thereBoris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to chip->dev_ready()Boris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to chip->cmd_ctrl()Boris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to chip->select_chip()Boris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to chip->write_xxx() hooksBoris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to chip->read_xxx() hooksBoris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to nand_release()Boris Brezillon 2018-10-03mtd: rawnand: Pass a nand_chip object to nand_scan()Boris Brezillon 2018-09-04mtd: rawnand: Convert to using %pOFn instead of device_node.nameRob Herring 2018-02-16mtd: nand: move raw NAND related code to the raw/ subdirBoris Brezillon