On 13.06.25 09:31, Xin Li wrote:
On 6/11/2025 5:58 AM, Juergen Gross wrote:Here is a patch I cooked. I added an ALTERNATIVE() hack because the new instructions can't be more than 6 bytes long. But with the patch youjust sent, it shouldn't be needed.I have meanwhile dropped the patch copying the original indirect call. Reason is that I'm seeing a potential risk with current alternative patching when using ALTERNATIVE_[23](): depending on the tested features it might happen that an instruction sequence not suitable for the current runtime environment is patched in as an intermediate step. In case there is an interrupt happening just then AND the handling of the interrupt is using the patch site, this could result in crashes or undefined behavior.Oh, I had assumed that Linux disables interrupts during the patching process. Just out of curiosity, why are interrupts allowed in this case?
Interrupts are disabled within text_poke_early() while patching a single instance. I guess keeping interrupts disabled during the complete apply_alternatives() handling would potentially result in a too long period without handling any interrupts. Juergen
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature