commit 896842284c upstream.
fadvise64_64() has two 64-bit arguments at the wrong alignment
for hexagon, which turns them into a 7-argument syscall that is
not supported by Linux.
The downstream musl port for hexagon actually asks for a 6-argument
version the same way we do it on arm, csky, powerpc, so make the
kernel do it the same way to avoid having to change both.
Link: https://github.com/quic/musl/blob/hexagon/arch/hexagon/syscall_arch.h#L78
Cc: stable@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
27 lines
629 B
C
27 lines
629 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* System call table for Hexagon
|
|
*
|
|
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#include <linux/syscalls.h>
|
|
#include <linux/signal.h>
|
|
#include <linux/unistd.h>
|
|
|
|
#include <asm/syscall.h>
|
|
|
|
#undef __SYSCALL
|
|
#define __SYSCALL(nr, call) [nr] = (call),
|
|
|
|
SYSCALL_DEFINE6(hexagon_fadvise64_64, int, fd, int, advice,
|
|
SC_ARG64(offset), SC_ARG64(len))
|
|
{
|
|
return ksys_fadvise64_64(fd, SC_VAL64(loff_t, offset), SC_VAL64(loff_t, len), advice);
|
|
}
|
|
#define sys_fadvise64_64 sys_hexagon_fadvise64_64
|
|
|
|
void *sys_call_table[__NR_syscalls] = {
|
|
#include <asm/unistd.h>
|
|
};
|