diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 14:39:44 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 14:39:44 -0700 |
commit | 9cf52b2921fbe62566b6b2ee79f71203749c9e5e (patch) | |
tree | 5705ab0af0adfb7043407b5a4ffbf43fcbff42bd /include/asm-sparc64/backoff.h | |
parent | 952184304fbf030f0133d8b66a91b2847dce729e (diff) | |
parent | 5c45708352a040f19caceb683c78bc86aad466f6 (diff) | |
download | lwn-9cf52b2921fbe62566b6b2ee79f71203749c9e5e.tar.gz lwn-9cf52b2921fbe62566b6b2ee79f71203749c9e5e.zip |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC/64]: Consolidate of_register_driver
[SPARC] Videopix Frame Grabber: Convert device_lock_sem to mutex
[SPARC]: Support for new termios.
[SPARC64]: Check of_get_property() return in pci_determine_mem_io_space().
[SPARC64]: Fix boot failures due to bootmem.
[SPARC64]: Implement atomic backoff.
Diffstat (limited to 'include/asm-sparc64/backoff.h')
-rw-r--r-- | include/asm-sparc64/backoff.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/asm-sparc64/backoff.h b/include/asm-sparc64/backoff.h new file mode 100644 index 000000000000..0e32f8b62fd2 --- /dev/null +++ b/include/asm-sparc64/backoff.h @@ -0,0 +1,28 @@ +#ifndef _SPARC64_BACKOFF_H +#define _SPARC64_BACKOFF_H + +#define BACKOFF_LIMIT (4 * 1024) + +#ifdef CONFIG_SMP + +#define BACKOFF_SETUP(reg) \ + mov 1, reg + +#define BACKOFF_SPIN(reg, tmp, label) \ + mov reg, tmp; \ +88: brnz,pt tmp, 88b; \ + sub tmp, 1, tmp; \ + cmp reg, BACKOFF_LIMIT; \ + bg,pn %xcc, label; \ + nop; \ + ba,pt %xcc, label; \ + sllx reg, 1, reg; + +#else + +#define BACKOFF_SETUP(reg) +#define BACKOFF_SPIN(reg, tmp, label) + +#endif + +#endif /* _SPARC64_BACKOFF_H */ |