Message ID | 20190829111843.41003-5-vincenzo.frascino@arm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | vdso: Complete the conversion to 32bit syscalls | expand |
On Thu, Aug 29, 2019 at 4:19 AM Vincenzo Frascino <vincenzo.frascino@arm.com> wrote: > > VDSO_HAS_32BIT_FALLBACK was introduced to address a regression which > caused seccomp to deny access to the applications to clock_gettime64() > and clock_getres64() because they are not enabled in the existing > filters. > > The purpose of VDSO_HAS_32BIT_FALLBACK was to simplify the conditional > implementation of __cvdso_clock_get*time32() variants. > > Now that all the architectures that support the generic vDSO library > have been converted to support the 32 bit fallbacks the conditional > can be removed. > > Cc: Thomas Gleixner <tglx@linutronix.de> > CC: Andy Lutomirski <luto@kernel.org> > References: c60a32ea4f45 ("lib/vdso/32: Provide legacy syscall fallbacks") > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > --- > lib/vdso/gettimeofday.c | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c > index a86e89e6dedc..2c4b311c226d 100644 > --- a/lib/vdso/gettimeofday.c > +++ b/lib/vdso/gettimeofday.c > @@ -126,13 +126,8 @@ __cvdso_clock_gettime32(clockid_t clock, struct old_timespec32 *res) > > ret = __cvdso_clock_gettime_common(clock, &ts); > > -#ifdef VDSO_HAS_32BIT_FALLBACK > if (unlikely(ret)) > return clock_gettime32_fallback(clock, res); > -#else > - if (unlikely(ret)) > - ret = clock_gettime_fallback(clock, &ts); > -#endif > > if (likely(!ret)) { > res->tv_sec = ts.tv_sec; I think you could have a little follow-up patch to remove the if statement -- by the time you get here, it's guaranteed that ret == 0. --Andy
On 29/08/2019 16:25, Andy Lutomirski wrote: > On Thu, Aug 29, 2019 at 4:19 AM Vincenzo Frascino > <vincenzo.frascino@arm.com> wrote: >> >> VDSO_HAS_32BIT_FALLBACK was introduced to address a regression which >> caused seccomp to deny access to the applications to clock_gettime64() >> and clock_getres64() because they are not enabled in the existing >> filters. >> >> The purpose of VDSO_HAS_32BIT_FALLBACK was to simplify the conditional >> implementation of __cvdso_clock_get*time32() variants. >> >> Now that all the architectures that support the generic vDSO library >> have been converted to support the 32 bit fallbacks the conditional >> can be removed. >> >> Cc: Thomas Gleixner <tglx@linutronix.de> >> CC: Andy Lutomirski <luto@kernel.org> >> References: c60a32ea4f45 ("lib/vdso/32: Provide legacy syscall fallbacks") >> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> >> --- >> lib/vdso/gettimeofday.c | 10 ---------- >> 1 file changed, 10 deletions(-) >> >> diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c >> index a86e89e6dedc..2c4b311c226d 100644 >> --- a/lib/vdso/gettimeofday.c >> +++ b/lib/vdso/gettimeofday.c >> @@ -126,13 +126,8 @@ __cvdso_clock_gettime32(clockid_t clock, struct old_timespec32 *res) >> >> ret = __cvdso_clock_gettime_common(clock, &ts); >> >> -#ifdef VDSO_HAS_32BIT_FALLBACK >> if (unlikely(ret)) >> return clock_gettime32_fallback(clock, res); >> -#else >> - if (unlikely(ret)) >> - ret = clock_gettime_fallback(clock, &ts); >> -#endif >> >> if (likely(!ret)) { >> res->tv_sec = ts.tv_sec; > > I think you could have a little follow-up patch to remove the if > statement -- by the time you get here, it's guaranteed that ret == 0. > Thanks, I will add a new patch that does that to v2 (with a comment). > --Andy >
diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c index a86e89e6dedc..2c4b311c226d 100644 --- a/lib/vdso/gettimeofday.c +++ b/lib/vdso/gettimeofday.c @@ -126,13 +126,8 @@ __cvdso_clock_gettime32(clockid_t clock, struct old_timespec32 *res) ret = __cvdso_clock_gettime_common(clock, &ts); -#ifdef VDSO_HAS_32BIT_FALLBACK if (unlikely(ret)) return clock_gettime32_fallback(clock, res); -#else - if (unlikely(ret)) - ret = clock_gettime_fallback(clock, &ts); -#endif if (likely(!ret)) { res->tv_sec = ts.tv_sec; @@ -240,13 +235,8 @@ __cvdso_clock_getres_time32(clockid_t clock, struct old_timespec32 *res) ret = __cvdso_clock_getres_common(clock, &ts); -#ifdef VDSO_HAS_32BIT_FALLBACK if (unlikely(ret)) return clock_getres32_fallback(clock, res); -#else - if (unlikely(ret)) - ret = clock_getres_fallback(clock, &ts); -#endif if (likely(!ret)) { res->tv_sec = ts.tv_sec;
VDSO_HAS_32BIT_FALLBACK was introduced to address a regression which caused seccomp to deny access to the applications to clock_gettime64() and clock_getres64() because they are not enabled in the existing filters. The purpose of VDSO_HAS_32BIT_FALLBACK was to simplify the conditional implementation of __cvdso_clock_get*time32() variants. Now that all the architectures that support the generic vDSO library have been converted to support the 32 bit fallbacks the conditional can be removed. Cc: Thomas Gleixner <tglx@linutronix.de> CC: Andy Lutomirski <luto@kernel.org> References: c60a32ea4f45 ("lib/vdso/32: Provide legacy syscall fallbacks") Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- lib/vdso/gettimeofday.c | 10 ---------- 1 file changed, 10 deletions(-)