From e9d91d5df3bf35daed3d22c5f142dac6851a26a0 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 3 Dec 2020 03:35:19 +0000 Subject: [PATCH] iscsi-scst: Port to Linux kernel v5.9 (merge r9149 from trunk) git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.4.x@9203 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/kernel/conn.c | 2 +- iscsi-scst/kernel/iscsi.c | 2 +- scst/include/backport.h | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/iscsi-scst/kernel/conn.c b/iscsi-scst/kernel/conn.c index 7e6a96611..8435e0c84 100644 --- a/iscsi-scst/kernel/conn.c +++ b/iscsi-scst/kernel/conn.c @@ -789,7 +789,7 @@ static int conn_setup_sock(struct iscsi_conn *conn) oldfs = get_fs(); set_fs(KERNEL_DS); conn->sock->ops->setsockopt(conn->sock, SOL_TCP, TCP_NODELAY, - (void __force __user *)&opt, sizeof(opt)); + KERNEL_SOCKPTR(&opt), sizeof(opt)); set_fs(oldfs); out: diff --git a/iscsi-scst/kernel/iscsi.c b/iscsi-scst/kernel/iscsi.c index e24fb7e18..a85ec5508 100644 --- a/iscsi-scst/kernel/iscsi.c +++ b/iscsi-scst/kernel/iscsi.c @@ -2890,7 +2890,7 @@ static inline void set_cork(struct socket *sock, int on) oldfs = get_fs(); set_fs(KERNEL_DS); sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, - (void __force __user *)&opt, sizeof(opt)); + KERNEL_SOCKPTR(&opt), sizeof(opt)); set_fs(oldfs); return; } diff --git a/scst/include/backport.h b/scst/include/backport.h index 4a75ae20d..4493f5e0f 100644 --- a/scst/include/backport.h +++ b/scst/include/backport.h @@ -1452,6 +1452,16 @@ static inline struct kmem_cache *kmem_cache_create_usercopy(const char *name, sizeof_field(struct __struct, __field), NULL) #endif +/* */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0) +/* See also commit ba423fdaa589 ("net: add a new sockptr_t type") # v5.9 */ +static inline void __user *KERNEL_SOCKPTR(void *p) +{ + return (void __force __user *)p; +} +#endif + /* */ #ifndef sizeof_field