Currently the JIT completely removes things like `reg32 += 0`,
however, the BPF_ALU semantics requires the target register to be
zero-extended in such cases.
Fix by optimizing out only the arithmetic operation, but not the
subsequent zero-extension.
The JIT uses agfi for subtracting constants, but -(-0x80000000) cannot
be represented as a 32-bit signed binary integer. Fix by using algfi in
this particular case.
The commit 0ec4e55e9f57 ("ACPI: resources: Add checks for ACPI IRQ
override") introduces regression on some platforms, at least it makes
the UART can't get correct irq setting on two different platforms,
and it makes the kernel can't bootup on these two platforms.
This reverts commit 0ec4e55e9f571f08970ed115ec0addc691eda613.
Regression-discuss: https://bugzilla.kernel.org/show_bug.cgi?id=213031
Reported-by: PGNd <email address hidden>
Cc: 5.4+ <email address hidden> # 5.4+
Signed-off-by: Hui Wang <email address hidden>
Acked-by: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Rafael J. Wysocki <email address hidden>
(cherry picked from commit e0eef3690dc66b3ecc6e0f1267f332403eb22bea)
Signed-off-by: Kelsey Skunberg <email address hidden>
Acked-by: Colin Ian King <email address hidden>
Acked-by: Dimitri John Ledkov <email address hidden>
Signed-off-by: Kelsey Skunberg <email address hidden>