From nobody Wed Jan 08 08:33:33 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YSh5T5K9vz5jxg8; Wed, 08 Jan 2025 08:33:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YSh5T4W3Sz4BL7; Wed, 8 Jan 2025 08:33:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1736325213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cohj+Y6D1u3sKkMOoeLZoWIB6XVLKdA8peV/fKzjGmc=; b=jwnhK6rJuQL3SSwaK8OqkJZvPAxDtUp5zsT33Rk4ikqyILl9UWhE73DsHUCi8hhccvoj4R KPOJpMfyKyo1RICJxujnu8pFlgc6ECS3BieIOK79+lSnUbAFQGYAh5xA4xOCrdQ1oq75aK JmkwdAdNCUJ0c9wxqw/a0+KNqFgQKphTUUS/pUt/PBnmmfd+jefnvhxXjyr2p5J5AKUQqE RNDDIcGLawp4/ZUZwc3igDyNeIF/Ohi0zIrj0PFnkZ3r25qr7P4Nv8AoedGhFXttjyI5DO K6YGM1c5ZQQCu/UX1PgPB1+c4z63LGzbopL+W7Tmz4S38/SGiiWTSEmEqKMHUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1736325213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cohj+Y6D1u3sKkMOoeLZoWIB6XVLKdA8peV/fKzjGmc=; b=YZHeZ+yjDsxPQmoxzIRh/qtXUUlU65K8JM3gFwHNfH0F6afbFhy/LCQawCYtRSC/BZhLPu Lzg1oC8slpITy1LV+57xYQbHspglCKrRIHML/5mj9jTh5OKrWqr0XVGH0kHYYvnWKqDx8i k3EDlZeKhK+17W0vH7N7PQoyH1IqzFD1n5wL0+s47o5rCm+roBY4wYCPm3LeGP0jOjreQV QKcp783n1sMAHLm2vvjCoFi6Lz3Fgxj7c/1d+Ga+ShSTdYjM9vaICWkSNq4BiymHuA7cLU nXS7GgFEBe7wWD1dm4Fv/3/ZZVpew25EwuZglqn6t0JIiJrhAautQfR0u/im6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1736325213; a=rsa-sha256; cv=none; b=CkRvbeuYdAycN1OZ9nfYPfxH1sF8sbxBGupMrblL3/qXWDxx1LcthrbDH/VhJ9DR04/JQp nsPUCGTj+vvoaPsw0YpTFEI2oYsoOxX+6luZIqxEaGmWMC+3KCVCC39wcZQ4wlladyxg56 y41OLMA1MjkqekbH4Si0RD/b0hltxmzUCBBJkxKcAzU6iWG3fE5dGI8+88IadyOASM0Pm8 tJxht6L2MkpEqocW4dZn20Mxhr5w6nOI3aIqTAMSP8eyad+DgATFN3cIK9R/TPLVTfQ5cR IfxDlV8JW4sTBgoTCpt4DfYUjg7h4X4tTCp4wmWCEa8g1oFGtMBbjNGlPzuBSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YSh5T3wmgznj7; Wed, 08 Jan 2025 08:33:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5088XXLu035623; Wed, 8 Jan 2025 08:33:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5088XXUt035620; Wed, 8 Jan 2025 08:33:33 GMT (envelope-from git) Date: Wed, 8 Jan 2025 08:33:33 GMT Message-Id: <202501080833.5088XXUt035620@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 2bb0efbb7b64 - main - Revert: LinuxKPI: switch jiffies and timer->expire to unsigned long List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2bb0efbb7b64fa957d46d4f443b000f375fc03d4 Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=2bb0efbb7b64fa957d46d4f443b000f375fc03d4 commit 2bb0efbb7b64fa957d46d4f443b000f375fc03d4 Author: Bjoern A. Zeeb AuthorDate: 2025-01-08 08:30:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-01-08 08:30:14 +0000 Revert: LinuxKPI: switch jiffies and timer->expire to unsigned long There are possible problems when jiffies (ticks) which still are int wrap around. Also given this did not touch every single place some checks may be broken now. Reported by: markj This reverts commit fd27f86dd71b7ff1df6981297095b88d1d29652e. --- sys/compat/linuxkpi/common/include/linux/jiffies.h | 28 +++++++++++----------- sys/compat/linuxkpi/common/include/linux/timer.h | 4 ++-- sys/compat/linuxkpi/common/src/linux_compat.c | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/jiffies.h b/sys/compat/linuxkpi/common/include/linux/jiffies.h index 8346e74fb830..bd05a0db0767 100644 --- a/sys/compat/linuxkpi/common/include/linux/jiffies.h +++ b/sys/compat/linuxkpi/common/include/linux/jiffies.h @@ -38,7 +38,7 @@ #define jiffies ticks #define jiffies_64 ticks -#define jiffies_to_msecs(x) ((unsigned int)(((int64_t)(unsigned long)(x)) * 1000 / hz)) +#define jiffies_to_msecs(x) ((unsigned int)(((int64_t)(int)(x)) * 1000 / hz)) #define MAX_JIFFY_OFFSET ((INT_MAX >> 1) - 1) @@ -68,7 +68,7 @@ extern uint64_t lkpi_msec2hz_rem; extern uint64_t lkpi_msec2hz_div; extern uint64_t lkpi_msec2hz_max; -static inline unsigned long +static inline int timespec_to_jiffies(const struct timespec *ts) { u64 result; @@ -78,10 +78,10 @@ timespec_to_jiffies(const struct timespec *ts) if (result > MAX_JIFFY_OFFSET) result = MAX_JIFFY_OFFSET; - return ((unsigned long)result); + return ((int)result); } -static inline unsigned long +static inline int msecs_to_jiffies(uint64_t msec) { uint64_t result; @@ -92,10 +92,10 @@ msecs_to_jiffies(uint64_t msec) if (result > MAX_JIFFY_OFFSET) result = MAX_JIFFY_OFFSET; - return ((unsigned long)result); + return ((int)result); } -static inline unsigned long +static inline int usecs_to_jiffies(uint64_t usec) { uint64_t result; @@ -106,7 +106,7 @@ usecs_to_jiffies(uint64_t usec) if (result > MAX_JIFFY_OFFSET) result = MAX_JIFFY_OFFSET; - return ((unsigned long)result); + return ((int)result); } static inline uint64_t @@ -133,17 +133,17 @@ nsecs_to_jiffies(uint64_t nsec) } static inline uint64_t -jiffies_to_nsecs(const unsigned long j) +jiffies_to_nsecs(int j) { - return ((1000000000ULL / hz) * (const uint64_t)j); + return ((1000000000ULL / hz) * (uint64_t)(unsigned int)j); } static inline uint64_t -jiffies_to_usecs(const unsigned long j) +jiffies_to_usecs(int j) { - return ((1000000ULL / hz) * (const uint64_t)j); + return ((1000000ULL / hz) * (uint64_t)(unsigned int)j); } static inline uint64_t @@ -153,10 +153,10 @@ get_jiffies_64(void) return ((uint64_t)(unsigned int)ticks); } -static inline unsigned long -linux_timer_jiffies_until(unsigned long expires) +static inline int +linux_timer_jiffies_until(int expires) { - unsigned long delta = expires - jiffies; + int delta = expires - jiffies; /* guard against already expired values */ if (delta < 1) delta = 1; diff --git a/sys/compat/linuxkpi/common/include/linux/timer.h b/sys/compat/linuxkpi/common/include/linux/timer.h index f9c76222795c..8bea082c3e6c 100644 --- a/sys/compat/linuxkpi/common/include/linux/timer.h +++ b/sys/compat/linuxkpi/common/include/linux/timer.h @@ -42,7 +42,7 @@ struct timer_list { void (*function_415) (struct timer_list *); }; unsigned long data; - unsigned long expires; + int expires; }; extern unsigned long linux_timer_hz_mask; @@ -76,7 +76,7 @@ extern unsigned long linux_timer_hz_mask; callout_init(&(timer)->callout, 1); \ } while (0) -extern int mod_timer(struct timer_list *, unsigned long); +extern int mod_timer(struct timer_list *, int); extern void add_timer(struct timer_list *); extern void add_timer_on(struct timer_list *, int cpu); extern int del_timer(struct timer_list *); diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c index 35cb2fc2f3d7..ec3ccb16b47d 100644 --- a/sys/compat/linuxkpi/common/src/linux_compat.c +++ b/sys/compat/linuxkpi/common/src/linux_compat.c @@ -1938,7 +1938,7 @@ linux_timer_callback_wrapper(void *context) } int -mod_timer(struct timer_list *timer, unsigned long expires) +mod_timer(struct timer_list *timer, int expires) { int ret;