mips: Fix gettimeofday() in the vdso library
authorVincenzo Frascino <vincenzo.frascino@arm.com>
Fri, 29 Nov 2019 14:36:58 +0000 (14:36 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2020 18:49:04 +0000 (19:49 +0100)
commit520e3bd3dee4266603b97ad5f5cedb88736a09c5
treeb8999cf83ba162c95cfca31e1f92facc4c194f19
parent7acc6f949d20f88faa2b3ce4b648ac8c4ede13f3
mips: Fix gettimeofday() in the vdso library

[ Upstream commit 7d2aa4bb90f5f6f1b8de8848c26042403f2d7bf9 ]

The libc provides a discovery mechanism for vDSO library and its
symbols. When a symbol is not exposed by the vDSOs the libc falls back
on the system calls.

With the introduction of the unified vDSO library on mips this behavior
is not honored anymore by the kernel in the case of gettimeofday().

The issue has been noticed and reported due to a dhclient failure on the
CI20 board:

root@letux:~# dhclient
../../../../lib/isc/unix/time.c:200: Operation not permitted
root@letux:~#

Restore the original behavior fixing gettimeofday() in the vDSO library.

Reported-by: H. Nikolaus Schaller <hns@goldelico.com>
Tested-by: H. Nikolaus Schaller <hns@goldelico.com> # CI20 with JZ4780
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: Paul Burton <paulburton@kernel.org>
Cc: mips-creator-ci20-dev@googlegroups.com
Cc: letux-kernel@openphoenux.org
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/mips/include/asm/vdso/gettimeofday.h
arch/mips/vdso/vgettimeofday.c