From 09d3d381cc9e4fe1e74406a17826d820d6b011f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E6=99=93=E5=80=A9?= Date: Tue, 28 Dec 2021 11:35:08 +0800 Subject: [PATCH] add riscv patch --- rdma-core.spec | 9 ++++++++- riscv-barriers.patch | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 riscv-barriers.patch diff --git a/rdma-core.spec b/rdma-core.spec index 467159a..6ca87cc 100644 --- a/rdma-core.spec +++ b/rdma-core.spec @@ -1,6 +1,6 @@ Name: rdma-core Version: 35.1 -Release: 2 +Release: 3 Summary: RDMA core userspace libraries and daemons License: GPLv2 or BSD Url: https://github.com/linux-rdma/rdma-core @@ -15,6 +15,7 @@ Patch5: 0005-libhns-Avoid-using-WQE-indexes-that-exceed-the-SRQ-s.patch Patch6: 0006-libhns-Don-t-create-RQ-for-a-QP-that-associated-with.patch Patch7: 0007-libhns-Add-support-for-direct-wqe.patch Patch8: 0008-libhns-Use-new-SQ-doorbell-register-for-HIP09.patch +Patch9: riscv-barriers.patch BuildRequires: binutils cmake >= 2.8.11 gcc libudev-devel pkgconfig pkgconfig(libnl-3.0) BuildRequires: pkgconfig(libnl-route-3.0) valgrind-devel systemd systemd-devel @@ -259,6 +260,12 @@ fi %{_mandir}/* %changelog +* Thu Apr 21 2022 lvxiaoqian - 35.1-3 +- Type: requirement +- ID: NA +- SUG: NA +- DESC: add riscv patch, patch url:http://fedora.riscv.rocks/koji/buildinfo?buildID=87543 + * Thu Jan 10 2022 tangchengchang - 35.1-2 - Type: requirement - ID: NA diff --git a/riscv-barriers.patch b/riscv-barriers.patch new file mode 100644 index 0000000..0a07e08 --- /dev/null +++ b/riscv-barriers.patch @@ -0,0 +1,31 @@ +diff --git a/util/udma_barrier.h b/util/udma_barrier.h +index 23acf23..899acf5 100644 +--- a/util/udma_barrier.h ++++ b/util/udma_barrier.h +@@ -96,6 +96,8 @@ + #define udma_to_device_barrier() asm volatile("dsb st" ::: "memory"); + #elif defined(__sparc__) || defined(__s390x__) + #define udma_to_device_barrier() asm volatile("" ::: "memory") ++#elif defined(__riscv) ++#define udma_to_device_barrier() asm volatile("fence w,w" ::: "memory"); + #else + #error No architecture specific memory barrier defines found! + #endif +@@ -128,6 +130,8 @@ + #define udma_from_device_barrier() asm volatile("dsb ld" ::: "memory"); + #elif defined(__sparc__) || defined(__s390x__) + #define udma_from_device_barrier() asm volatile("" ::: "memory") ++#elif defined(__riscv) ++#define udma_from_device_barrier() asm volatile("fence r,rw" ::: "memory"); + #else + #error No architecture specific memory barrier defines found! + #endif +@@ -192,6 +196,8 @@ + #define mmio_flush_writes() asm volatile("dsb st" ::: "memory"); + #elif defined(__sparc__) || defined(__s390x__) + #define mmio_flush_writes() asm volatile("" ::: "memory") ++#elif defined(__riscv) ++#define mmio_flush_writes() asm volatile("fence w,w" ::: "memory"); + #else + #error No architecture specific memory barrier defines found! + #endif -- Gitee