Module Name: src Committed By: riastradh Date: Mon Sep 3 18:02:11 UTC 2018
Modified Files: src/sys/external/bsd/drm2/linux: linux_reservation.c Log Message: Preserve signedness to return failure from fence_wait_timeout. >From mrg@. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 \ src/sys/external/bsd/drm2/linux/linux_reservation.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/linux/linux_reservation.c diff -u src/sys/external/bsd/drm2/linux/linux_reservation.c:1.10 src/sys/external/bsd/drm2/linux/linux_reservation.c:1.11 --- src/sys/external/bsd/drm2/linux/linux_reservation.c:1.10 Mon Aug 27 15:28:27 2018 +++ src/sys/external/bsd/drm2/linux/linux_reservation.c Mon Sep 3 18:02:11 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_reservation.c,v 1.10 2018/08/27 15:28:27 riastradh Exp $ */ +/* $NetBSD: linux_reservation.c,v 1.11 2018/09/03 18:02:11 riastradh Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_reservation.c,v 1.10 2018/08/27 15:28:27 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_reservation.c,v 1.11 2018/09/03 18:02:11 riastradh Exp $"); #include <sys/param.h> #include <sys/poll.h> @@ -711,6 +711,7 @@ reservation_object_wait_timeout_rcu(stru struct reservation_object_list *list; struct fence *fence; uint32_t i, shared_count; + long ret; if (timeout == 0) return reservation_object_test_signaled_rcu(robj, shared); @@ -792,9 +793,11 @@ wait: */ KASSERT(fence != NULL); rcu_read_unlock(); - timeout = fence_wait_timeout(fence, intr, timeout); - if (timeout <= 0) - return timeout; + ret = fence_wait_timeout(fence, intr, timeout); + if (ret <= 0) + return ret; + KASSERT(ret <= timeout); + timeout = ret; goto top; }