diff options
author | Mathias Kresin <dev@kresin.me> | 2020-12-27 17:25:25 +0100 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2021-04-12 23:23:09 +0200 |
commit | 31f3f797004ad318a1de88ec9cfdece523ee46d9 (patch) | |
tree | e06b1988550e0e1692dd8f40f0de5717aa638a18 /package/kernel/lantiq | |
parent | f4acdf8c42c3ea27cee8f195a1aabf1f100a4c6e (diff) | |
download | upstream-31f3f797004ad318a1de88ec9cfdece523ee46d9.tar.gz upstream-31f3f797004ad318a1de88ec9cfdece523ee46d9.tar.bz2 upstream-31f3f797004ad318a1de88ec9cfdece523ee46d9.zip |
lantiq: ltq-tapi: add kernel 5.10 compatiblity
Due to SCHED_FIFO being a broken scheduler model, all users of
sched_setscheduler() are converted to sched_set_fifo_low() upstream and
sched_setscheduler() is no longer exported.
The callback handling of the tasklet API was redesigned and the macros
using the old syntax renamed to _OLD.
Signed-off-by: Mathias Kresin <dev@kresin.me>
ltq tapi
Diffstat (limited to 'package/kernel/lantiq')
-rw-r--r-- | package/kernel/lantiq/ltq-tapi/patches/500-linux-509.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/package/kernel/lantiq/ltq-tapi/patches/500-linux-509.patch b/package/kernel/lantiq/ltq-tapi/patches/500-linux-509.patch new file mode 100644 index 0000000000..586af59d85 --- /dev/null +++ b/package/kernel/lantiq/ltq-tapi/patches/500-linux-509.patch @@ -0,0 +1,50 @@ +--- a/src/drv_tapi_linux.c ++++ b/src/drv_tapi_linux.c +@@ -3287,10 +3287,13 @@ static IFX_void_t proc_EntriesRemove(IFX + */ + static IFX_void_t tapi_wq_setscheduler (IFX_int32_t foo) + { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) + struct sched_param sched_params; +- + sched_params.sched_priority = TAPI_OS_THREAD_PRIO_HIGH; + sched_setscheduler(current, SCHED_FIFO, &sched_params); ++#else ++ sched_set_fifo_low(current); ++#endif + } + #endif /* LINUX_2_6 */ + +@@ -3727,6 +3730,7 @@ static IFX_int32_t TAPI_SelectCh (TAPI_F + */ + IFX_int32_t TAPI_OS_ThreadPriorityModify(IFX_uint32_t newPriority) + { ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)) + struct sched_param sched_params; + IFX_int32_t ret; + +@@ -3744,6 +3748,10 @@ IFX_int32_t TAPI_OS_ThreadPriorityModify + } + + return (ret < 0) ? IFX_ERROR : IFX_SUCCESS; ++#else ++ sched_set_fifo_low(current); ++ return IFX_SUCCESS; ++#endif + } + + +--- a/src/drv_tapi_kpi.c ++++ b/src/drv_tapi_kpi.c +@@ -134,7 +134,11 @@ extern IFX_int32_t block_ingre + /* ========================================================================== */ + static IFX_void_t ifx_tapi_KPI_IngressHandler (IFX_ulong_t foo); + #ifdef KPI_TASKLET ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) + DECLARE_TASKLET(tl_kpi_ingress, ifx_tapi_KPI_IngressHandler, 0L); ++#else ++DECLARE_TASKLET_OLD(tl_kpi_ingress, ifx_tapi_KPI_IngressHandler); ++#endif + #endif /* KPI_TASKLET */ + static IFX_int32_t ifx_tapi_KPI_IngressThread (IFXOS_ThreadParams_t *pThread); + static IFX_return_t ifx_tapi_KPI_GroupInit(IFX_uint32_t nKpiGroup); |