From 0b2ddc25845596ce47b26f73f7eef3734448373f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Pomp=C3=A9e?= Date: Mon, 18 Mar 2024 10:17:21 +0000 Subject: [PATCH 1/3] DEFINE_SEMAPHORE: use new signature for kernel >= 6.4.0 --- csr/os_linux/driver/drv.c | 4 +++- csr/os_linux/driver/io.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/csr/os_linux/driver/drv.c b/csr/os_linux/driver/drv.c index 8c6a11d..fc66731 100644 --- a/csr/os_linux/driver/drv.c +++ b/csr/os_linux/driver/drv.c @@ -128,7 +128,9 @@ static void udi_set_log_filter(ul_client_t *pcli, /* Mutex to protect access to priv->sme_cli */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0) +DEFINE_SEMAPHORE(udi_mutex,1); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) DEFINE_SEMAPHORE(udi_mutex); #else DECLARE_MUTEX(udi_mutex); diff --git a/csr/os_linux/driver/io.c b/csr/os_linux/driver/io.c index 41622b9..2650b48 100644 --- a/csr/os_linux/driver/io.c +++ b/csr/os_linux/driver/io.c @@ -71,7 +71,9 @@ static int In_use[MAX_UNIFI_DEVS]; * Mutex to prevent UDI clients to open the character device before the priv * is created and initialised. */ -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0) +DEFINE_SEMAPHORE(Unifi_instance_mutex,1); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) DEFINE_SEMAPHORE(Unifi_instance_mutex); #else DECLARE_MUTEX(Unifi_instance_mutex); From d7aba17f61c9a341b0715a0c975dbfc8fe9c2791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Pomp=C3=A9e?= Date: Mon, 18 Mar 2024 10:19:25 +0000 Subject: [PATCH 2/3] class_create: use new signature for kernel >= 6.4.0 --- csr/os_linux/driver/drv.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/csr/os_linux/driver/drv.c b/csr/os_linux/driver/drv.c index fc66731..36781e6 100644 --- a/csr/os_linux/driver/drv.c +++ b/csr/os_linux/driver/drv.c @@ -2134,7 +2134,11 @@ uf_create_debug_device(struct file_operations *fops) } /* Create a UniFi class */ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 0) + unifi_class = class_create(UNIFI_NAME); + #else unifi_class = class_create(THIS_MODULE, UNIFI_NAME); + #endif if (IS_ERR(unifi_class)) { unifi_error(NULL, "Failed to create UniFi class\n"); From 929ecf15429c8082defef70b7d3d30a514c557b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Pomp=C3=A9e?= Date: Fri, 4 Jul 2025 14:07:10 +0200 Subject: [PATCH 3/3] Replaces strlcpy by strscpy when available. --- csr/os_linux/driver/netdev.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/csr/os_linux/driver/netdev.c b/csr/os_linux/driver/netdev.c index 9ed880d..85a8baf 100644 --- a/csr/os_linux/driver/netdev.c +++ b/csr/os_linux/driver/netdev.c @@ -3428,7 +3428,12 @@ void uf_net_get_name(struct net_device *dev, char *name, int len) { *name = '\0'; if (dev) { - strlcpy(name, dev->name, (len > IFNAMSIZ) ? IFNAMSIZ : len); + int maxlen = (len > IFNAMSIZ) ? IFNAMSIZ : len; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0) + strscpy(name, dev->name, maxlen); +#else + strlcpy(name, dev->name, maxlen); +#endif } } /* uf_net_get_name */