0001-util-udma_barrier.h-fix-mips4-build.patch 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. From 1b1ca539f6e1f0b774e989f1022477686e4fc77f Mon Sep 17 00:00:00 2001
  2. From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  3. Date: Sun, 21 Jan 2024 18:55:34 +0100
  4. Subject: [PATCH] util/udma_barrier.h: fix mips4 build
  5. The 'sync' instruction for MIPS was defined in MIPS-II as taking no
  6. operands. MIPS32 extended the define of 'sync' as taking an optional
  7. unsigned 5 bit immediate.
  8. As a result, replace "sync 0" by "sync" to fix the following build
  9. failure on mips4 raised since version 43.0 and
  10. https://github.com/linux-rdma/rdma-core/commit/b7c428344ea96d446f6ffe31c620a238a7f25c9e:
  11. /tmp/ccrBy9fV.s: Assembler messages:
  12. /tmp/ccrBy9fV.s:994: Error: invalid operands `sync 0'
  13. Fixes:
  14. - http://autobuild.buildroot.org/results/2ab22a3ec4287fc15ff6a90d8715b4897b32a933
  15. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  16. Upstream: https://github.com/linux-rdma/rdma-core/commit/f3f0c06014c6de845032e6fe9f152674919b3ec6
  17. ---
  18. util/udma_barrier.h | 6 +++---
  19. 1 file changed, 3 insertions(+), 3 deletions(-)
  20. diff --git a/util/udma_barrier.h b/util/udma_barrier.h
  21. index 0a1f8a45b..3793d2f18 100644
  22. --- a/util/udma_barrier.h
  23. +++ b/util/udma_barrier.h
  24. @@ -101,7 +101,7 @@
  25. #elif defined(__riscv)
  26. #define udma_to_device_barrier() asm volatile("fence ow,ow" ::: "memory")
  27. #elif defined(__mips__)
  28. -#define udma_to_device_barrier() asm volatile("sync 0" ::: "memory")
  29. +#define udma_to_device_barrier() asm volatile("sync" ::: "memory")
  30. #else
  31. #error No architecture specific memory barrier defines found!
  32. #endif
  33. @@ -139,7 +139,7 @@
  34. #elif defined(__riscv)
  35. #define udma_from_device_barrier() asm volatile("fence ir,ir" ::: "memory")
  36. #elif defined(__mips__)
  37. -#define udma_from_device_barrier() asm volatile("sync 0" ::: "memory")
  38. +#define udma_from_device_barrier() asm volatile("sync" ::: "memory")
  39. #else
  40. #error No architecture specific memory barrier defines found!
  41. #endif
  42. @@ -212,7 +212,7 @@
  43. #include "s390_mmio_insn.h"
  44. #define mmio_flush_writes() s390_pciwb()
  45. #elif defined(__mips__)
  46. -#define mmio_flush_writes() asm volatile("sync 0" ::: "memory")
  47. +#define mmio_flush_writes() asm volatile("sync" ::: "memory")
  48. #else
  49. #error No architecture specific memory barrier defines found!
  50. #endif