mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
committed by
Christian Helmuth
parent
9ecbe51e34
commit
7b4556e546
@@ -18,7 +18,6 @@ SRC_C += $(notdir $(wildcard $(REL_PRG_DIR)/generated_dummies.c))
|
||||
SRC_C += fb.c
|
||||
SRC_C += lx_user.c
|
||||
SRC_C += gem.c
|
||||
SRC_C += timeout.c
|
||||
SRC_C += lx_emul/common_dummies.c
|
||||
SRC_C += lx_emul/spec/x86/pci.c
|
||||
SRC_C += lx_emul/shadow/kernel/softirq.c
|
||||
@@ -49,12 +48,6 @@ CC_OPT_generated_dummies += -include $(LX_SRC_DIR)/drivers/gpu/drm/i915/i915_drv
|
||||
|
||||
CC_C_OPT += -Wno-unused-label
|
||||
|
||||
#
|
||||
# Original symbol is renamed to __real_* and references to original symbol
|
||||
# are replaced by __wrap_*. Used to shadow schedule_timeout, see timeout.c
|
||||
#
|
||||
LD_OPT += --wrap=schedule_timeout
|
||||
|
||||
#
|
||||
# Genode C-API backends
|
||||
#
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* \brief Wrapper to update jiffies before invoking schedule_timeout().
|
||||
* Schedule_timeout() expects that the jiffie value is current,
|
||||
* in order to setup the timeouts. Without current jiffies,
|
||||
* the programmed timeouts are too short, which leads to timeouts
|
||||
* firing too early. The Intel driver uses this mechanism frequently
|
||||
* by utilizing wait_queue_timeout*() in order to wait for hardware
|
||||
* state changes, e.g. connectors hotplug. The schedule_timeout is
|
||||
* shadowed by the Linker feature '--wrap'. This code can be removed
|
||||
* as soon as the timeout handling is implemented by lx_emul/lx_kit
|
||||
* instead of using the original Linux sources of kernel/time/timer.c.
|
||||
* \author Alexander Boettcher
|
||||
* \date 2022-04-04
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2022 Genode Labs GmbH
|
||||
*
|
||||
* This file is distributed under the terms of the GNU General Public License
|
||||
* version 2.
|
||||
*/
|
||||
|
||||
#include <lx_emul/time.h>
|
||||
|
||||
|
||||
signed long __real_schedule_timeout(signed long timeout);
|
||||
|
||||
|
||||
signed long __wrap_schedule_timeout(signed long timeout)
|
||||
{
|
||||
lx_emul_force_jiffies_update();
|
||||
return __real_schedule_timeout(timeout);
|
||||
}
|
||||
Reference in New Issue
Block a user