Skip to content

Commit fba07cd

Browse files
Alexander GordeevVasily Gorbik
authored andcommitted
s390/mm: uninline copy_oldmem_kernel() function
Uninline copy_oldmem_kernel() function and make it consistent with a very similar memcpy_real() implementation, by moving to code to crash_dump.c, where it actually belongs. Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]>
1 parent c0ceb94 commit fba07cd

File tree

5 files changed

+19
-15
lines changed

5 files changed

+19
-15
lines changed

arch/s390/include/asm/maccess.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,8 @@ extern unsigned long __memcpy_real_area;
1010
void memcpy_real_init(void);
1111
size_t memcpy_real_iter(struct iov_iter *iter, unsigned long src, size_t count);
1212
int memcpy_real(void *dest, unsigned long src, size_t count);
13+
#ifdef CONFIG_CRASH_DUMP
14+
int copy_oldmem_kernel(void *dst, unsigned long src, size_t count);
15+
#endif
1316

1417
#endif /* __ASM_S390_MACCESS_H */

arch/s390/include/asm/os_info.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,6 @@ u32 os_info_csum(struct os_info *os_info);
4141

4242
#ifdef CONFIG_CRASH_DUMP
4343
void *os_info_old_entry(int nr, unsigned long *size);
44-
size_t copy_oldmem_iter(struct iov_iter *iter, unsigned long src, size_t count);
45-
46-
static inline int copy_oldmem_kernel(void *dst, unsigned long src, size_t count)
47-
{
48-
struct iov_iter iter;
49-
struct kvec kvec;
50-
51-
kvec.iov_base = dst;
52-
kvec.iov_len = count;
53-
iov_iter_kvec(&iter, WRITE, &kvec, 1, count);
54-
if (copy_oldmem_iter(&iter, src, count) < count)
55-
return -EFAULT;
56-
return 0;
57-
}
5844
#else
5945
static inline void *os_info_old_entry(int nr, unsigned long *size)
6046
{

arch/s390/kernel/crash_dump.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void __init save_area_add_vxrs(struct save_area *sa, __vector128 *vxrs)
115115
memcpy(sa->vxrs_high, vxrs + 16, 16 * sizeof(__vector128));
116116
}
117117

118-
size_t copy_oldmem_iter(struct iov_iter *iter, unsigned long src, size_t count)
118+
static size_t copy_oldmem_iter(struct iov_iter *iter, unsigned long src, size_t count)
119119
{
120120
size_t len, copied, res = 0;
121121

@@ -146,6 +146,19 @@ size_t copy_oldmem_iter(struct iov_iter *iter, unsigned long src, size_t count)
146146
return res;
147147
}
148148

149+
int copy_oldmem_kernel(void *dst, unsigned long src, size_t count)
150+
{
151+
struct iov_iter iter;
152+
struct kvec kvec;
153+
154+
kvec.iov_base = dst;
155+
kvec.iov_len = count;
156+
iov_iter_kvec(&iter, WRITE, &kvec, 1, count);
157+
if (copy_oldmem_iter(&iter, src, count) < count)
158+
return -EFAULT;
159+
return 0;
160+
}
161+
149162
/*
150163
* Copy one page from "oldmem"
151164
*/

arch/s390/kernel/os_info.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <asm/checksum.h>
1616
#include <asm/abs_lowcore.h>
1717
#include <asm/os_info.h>
18+
#include <asm/maccess.h>
1819
#include <asm/asm-offsets.h>
1920

2021
/*

arch/s390/kernel/smp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
#include <asm/stacktrace.h>
5656
#include <asm/topology.h>
5757
#include <asm/vdso.h>
58+
#include <asm/maccess.h>
5859
#include "entry.h"
5960

6061
enum {

0 commit comments

Comments
 (0)