Use sched_set_fifo on newer kernels The 5.9 kernel removed the export of sched_setscheduler, use the new sched_set_fifo API if building on 5.9 or newer. There is a slight difference in resulting priority level, the new API will yield a priority of 50 instead of the explicit value of 40 being used with sched_setscheduler, but this should not be an issue. Upstream-Status: Inappropriate [no upstream] Signed-off-by: Scott Murray --- diff --git a/sllin/sllin.c b/sllin/sllin.c index 133d6e9..92c52ad 100644 --- a/sllin/sllin.c +++ b/sllin/sllin.c @@ -1059,14 +1059,20 @@ static int sllin_kwthread(void *ptr) { struct sllin *sl = (struct sllin *)ptr; struct tty_struct *tty = sl->tty; +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) struct sched_param schparam = { .sched_priority = 40 }; +#endif int tx_bytes = 0; /* Used for Network statistics */ unsigned long flags; int lin_id; struct sllin_conf_entry *sce; netdev_dbg(sl->dev, "sllin_kwthread started.\n"); +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) sched_setscheduler(current, SCHED_FIFO, &schparam); +#else + sched_set_fifo(current); +#endif clear_bit(SLF_ERROR, &sl->flags); sltty_change_speed(tty, sl->lin_baud); @@ -1274,8 +1280,8 @@ slstate_response_wait: sl->lin_state = SLSTATE_RESPONSE_WAIT_BUS; } } + fallthrough; - /* Be aware, no BREAK here */ case SLSTATE_RESPONSE_WAIT_BUS: if (sl->rx_cnt < sl->rx_expect) continue;