/* Slow paths of read/write spinlocks. */12#include <linux/linkage.h>3#include <asm/rwlock.h>4#include <asm/alternative-asm.h>5#include <asm/dwarf2.h>67/* rdi: pointer to rwlock_t */8ENTRY(__write_lock_failed)9CFI_STARTPROC10LOCK_PREFIX11addl $RW_LOCK_BIAS,(%rdi)121: rep13nop14cmpl $RW_LOCK_BIAS,(%rdi)15jne 1b16LOCK_PREFIX17subl $RW_LOCK_BIAS,(%rdi)18jnz __write_lock_failed19ret20CFI_ENDPROC21END(__write_lock_failed)2223/* rdi: pointer to rwlock_t */24ENTRY(__read_lock_failed)25CFI_STARTPROC26LOCK_PREFIX27incl (%rdi)281: rep29nop30cmpl $1,(%rdi)31js 1b32LOCK_PREFIX33decl (%rdi)34js __read_lock_failed35ret36CFI_ENDPROC37END(__read_lock_failed)383940