- Improve code generation in ACPI's global lock's acquisition function
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEzv7L6UO9uDPlPSfHEsHwGGHeVUoFAmRGhkcACgkQEsHwGGHe VUq2yQ//W1tCGznJ+xSDBwOPillqwPB9asMrIjN9jSMet6mNZlApu4N44BTMHnD7 Jex+MOfabSbVEgwJ+zUOla065/fWhO2kdPNLdOS9Pui3kftEnMkKwZMbx0v6erk0 3rckg8UVkfMSrskvWkyy1RftJY9D5xiCTVzRmRpIR8GWn6eCFrGdLLINbLzSX5K/ 96cXF5iiTkWzj+nKAJhqsQZaXA+k2ro/bae7onX1gzJ08lR5x+XDDKv1HzJhnPJW Kw9lte4con7FRAEk4X8Q2UPTBvQjtFlfG7F1ho1jayWVwUO7z020tomnL0BO7Umd Whh6j66ZTD3cV+0oG5xu/JIBgHLlLP3q/+gZyePSDIXmoZm8MKmWldQ84Xbv0h8F dRxQUxxDAoRypK6ZN6aZgA/twxeIu6ezYr3paQiX9sjtQzFEa9DKTsOnzgrO0fsi t9nu4nzE4jBQ41DP6+GVlZ+ATujTixmirHNUj72H/sPVnqmniRLKMPGnsMPo9yi+ +J+Yu382nuKl8O5koWC7zfUEZCQWZCPfvX7JCLir6YZl6qV36mPZGJknMX+ogquc CwDor5US71sExmEOSkQTog5YN7ldXKruWRsvuIl2yMH3xHWwCWw0VS0pHCAn3Fqe r/MdKXYjjDr1QOZWB9EyqrAUNbS2ftjI9/zrzq8wNsbT67gEHug= =ObsH -----END PGP SIGNATURE----- Merge tag 'x86_acpi_for_v6.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 ACPI update from Borislav Petkov: - Improve code generation in ACPI's global lock's acquisition function * tag 'x86_acpi_for_v6.4_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/ACPI/boot: Improve __acpi_acquire_global_lock
This commit is contained in:
commit
1699dbebf3
@ -1858,13 +1858,18 @@ early_param("acpi_sci", setup_acpi_sci);
|
|||||||
|
|
||||||
int __acpi_acquire_global_lock(unsigned int *lock)
|
int __acpi_acquire_global_lock(unsigned int *lock)
|
||||||
{
|
{
|
||||||
unsigned int old, new;
|
unsigned int old, new, val;
|
||||||
|
|
||||||
old = READ_ONCE(*lock);
|
old = READ_ONCE(*lock);
|
||||||
do {
|
do {
|
||||||
new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
|
val = (old >> 1) & 0x1;
|
||||||
|
new = (old & ~0x3) + 2 + val;
|
||||||
} while (!try_cmpxchg(lock, &old, new));
|
} while (!try_cmpxchg(lock, &old, new));
|
||||||
return ((new & 0x3) < 3) ? -1 : 0;
|
|
||||||
|
if (val)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __acpi_release_global_lock(unsigned int *lock)
|
int __acpi_release_global_lock(unsigned int *lock)
|
||||||
|
Loading…
Reference in New Issue
Block a user