xref: /linux/arch/riscv/kernel/vdso/flush_icache.S (revision e9f0878c4b2004ac19581274c1ae4c61ae3ca70e)
1/*
2 * Copyright (C) 2017 SiFive
3 *
4 *   This program is free software; you can redistribute it and/or
5 *   modify it under the terms of the GNU General Public License
6 *   as published by the Free Software Foundation, version 2.
7 *
8 *   This program is distributed in the hope that it will be useful,
9 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
10 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 *   GNU General Public License for more details.
12 */
13
14#include <linux/linkage.h>
15#include <asm/unistd.h>
16
17	.text
18/* int __vdso_flush_icache(void *start, void *end, unsigned long flags); */
19ENTRY(__vdso_flush_icache)
20	.cfi_startproc
21#ifdef CONFIG_SMP
22	li a7, __NR_riscv_flush_icache
23	ecall
24#else
25	fence.i
26	li a0, 0
27#endif
28	ret
29	.cfi_endproc
30ENDPROC(__vdso_flush_icache)
31